1
0
Fork
You've already forked courier
0
Chat and notification channel server for Claude Code sessions
  • Python 100%
Find a file
David Wilson 4a5ae2be92 Relock sigil-stdlib/lib/test to 0.17.2 (io.sgl async-log fix)
Bumps the 4 monorepo packages from 0.17.1 to 0.17.2 so courier picks up
the async-port logging-recursion fix. NOTE: rebuilding + re-enabling
Telegram sends still triggers a spam recurrence from a SECOND, unidentified
cause (the io.sgl fix alone is not sufficient). Deploy stays gated behind
COURIER_DISABLE_TELEGRAM_SEND until that is diagnosed off-device.
2026年07月01日 00:58:26 +03:00
src/courier Bump courier to 0.3.8: best-effort success + sync-log + dedup 2026年06月30日 15:17:20 +03:00
test Add pre-poll-heartbeat regression test 2026年06月29日 11:22:48 +03:00
.gitignore Refresh for sigil 0.14 ecosystem; bump to v0.2.0 2026年04月26日 15:15:25 +03:00
CLAUDE.md Isolate Telegram polling in a supervised child process 2026年06月10日 17:59:04 +03:00
DESIGN-relays.md Add relay support for leader-worker agent communication 2026年03月24日 05:28:02 +02:00
dev-redirects.sgl Bump to v0.3.1 (sigil-mcp 0.16.2 redirect; add dev package redirects) 2026年06月23日 11:00:51 +03:00
package.sgl Bump courier to 0.3.8: best-effort success + sync-log + dedup 2026年06月30日 15:17:20 +03:00
README.md Migrate to 0.9.1 transitive deps with version ranges and lockfile 2026年04月01日 13:25:30 +03:00
sigil.lock Relock sigil-stdlib/lib/test to 0.17.2 (io.sgl async-log fix) 2026年07月01日 00:58:26 +03:00

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

Tool Description
send-message Send a message via Telegram
send-notification Send 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