whatsup

Multi-transport project messaging for Afterburner sprints via Telegram, WhatsApp (planned), and console.

https://github.com/davidbmar/tool-telegram-whatsapp  ·  public  ·  shipped

What it is

A CLI and API tool that sends checkins and lifecycle notifications (sprint started, agent completed, tests failed) to project-specific group chats. It supports pluggable transports (Telegram, Console, planned WhatsApp) and exposes interfaces via CLI, REST API, MCP server, and Claude skills.

Features

Quickstart

git clone https://github.com/davidbmar/tool-telegram-whatsapp.git
cd tool-telegram-whatsapp
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
whatsup setup
whatsup send demo "Hello from whatsup!"

Architecture

flowchart TD
    subgraph Interfaces
        CLI[CLI: whatsup]
        REST[REST API :1202]
        MCP[MCP Server stdio]
        Skill[Claude Skill]
    end
    subgraph Core
        CoreMod[core.py]
        Config[config.json]
        History[history.jsonl]
    end
    subgraph Transports
        Telegram[Telegram Transport]
        Console[Console Transport]
        WhatsApp[WhatsApp Transport<br/>(Planned)]
    end
    CLI --> CoreMod
    REST --> CoreMod
    MCP --> CoreMod
    Skill --> CoreMod
    CoreMod --> Config
    CoreMod --> History
    CoreMod --> Telegram
    CoreMod --> Console
    CoreMod --> WhatsApp

How it's built

Python 3.11+ application with a core module handling configuration loading, event filtering, and message formatting. It uses a transport plugin architecture where specific modules (telegram.py, console.py) handle API interactions. Configuration is stored in JSON, and history is logged to JSONL files.

How it runs

sequenceDiagram
    participant User as User/Agent
    participant Interface as CLI/REST/MCP
    participant Core as core.py
    participant Config as config.json
    participant Transport as Transport Module
    participant External as Telegram/Console
    User->>Interface: send/notify command
    Interface->>Core: call send() or notify()
    Core->>Config: load_config()
    Config-->>Core: return project config
    Core->>Core: check event in notify list
    alt Event allowed
        Core->>Transport: format and send message
        Transport->>External: API call / stdout print
        External-->>Transport: response/ack
        Transport-->>Core: result status
        Core->>Core: log to history.jsonl
        Core-->>Interface: return result
    else Event blocked
        Core-->>Interface: return skipped status
    end

How to apply & reuse

Integrate into CI/CD pipelines or local development hooks to automatically notify team channels when sprints start, agents finish tasks, or tests fail. Use the REST API or MCP server to connect AI agents (like Afterburner) to team communication channels without hardcoding bot logic.

At a glance

CapabilitiesSend checkin messagesSend lifecycle notificationsFilter events by project configLog message historyCheck transport healthList configured projects
Componentscli.pycore.pyconfig.pymessages.pytransport/telegram.pytransport/console.pyserver.py
TechPython 3.11+argparserequestsJSONHTTP Server
Depends onPython 3.11+Telegram Bot APIAfterburner (optional integration)
Integrates withTelegramWhatsApp (planned)AfterburnerClaude SkillsMCP Servers
PatternsPlugin ArchitectureConfiguration-driven BehaviorEvent FilteringAudit Logging
Reuse tagsnotification-servicemulti-transportcli-toolrest-apimcp-servertelegram-botdevops-tooling

Repo hygiene

✓ all on main — nothing unmerged.