AtlatestRenderedmarkdown
Readme

Courier

Chat and notification channel server for Claude Code sessions, built with Sigil.

Courier bridges Telegram messages into a running Claude Code session via the MCP channel protocol and provides tools for sending replies and desktop notifications.

Installation

sigil app install codeberg:sigil/courier \
  --env COURIER_TELEGRAM_TOKEN=<bot-token> \
  --env COURIER_TELEGRAM_CHAT_ID=<chat-id>

Configuration

Telegram credentials via environment (.env-courier):

COURIER_TELEGRAM_TOKEN=<bot-token-from-botfather>
COURIER_TELEGRAM_CHAT_ID=<chat-id-for-replies>

Sender allowlist via courier.yaml (optional — all senders allowed if omitted):

allowed-senders:
  - "123456789"

Telegram Setup

  1. Create a bot via @BotFather in Telegram
  2. Copy the bot token
  3. Send a message to your bot to establish a chat
  4. Get your chat ID (send /start to your bot, then check https://api.telegram.org/bot<TOKEN>/getUpdates)

Running

Courier is designed to be spawned by Claude Code as a channel MCP server:

claude --channels server:courier

Register in .mcp.json:

{
  "mcpServers": {
    "courier": {
      "command": "./build/dev/bin/courier",
      "env": {}
    }
  }
}

MCP Tools

ToolDescription
send-messageSend a message via Telegram
send-notificationSend a desktop notification via notify-send

Building

sigil deps install
sigil build

A C toolchain is required. On Guix: guix shell -m ../sigil/manifest.scm

License

BSD-3-Clause