monitor

Monitor the Telegram daemon — check if it's alive, view recent logs, find the remote control URL, and diagnose MCP server issues. Use when the user asks "is the daemon running", "check the bot", "show daemon logs", "monitor telegram", or "what's happening with the bot".

/telegram:monitor — Telegram Daemon Monitor

Shows the health and status of the Telegram daemon at a glance.

What to check

Run these checks and present a clean summary:

1. Process status

ps aux | grep -E "telegram-supervisor|channels.*telegram|expect.*daemon|caffeinate.*supervisor|bun server.ts" | grep -v grep

Report:

  • Supervisor (bun telegram-supervisor.ts) — PID, uptime
  • Expect wrapper — PID
  • Claude bot (claude --channels ...) — PID, TTY, CPU/memory
  • MCP server (bun server.ts) — PID (if missing, the Telegram plugin didn't start)
  • Caffeinate — running or not

If no processes found, report "Daemon is NOT running."

2. Launchd status

launchctl list | grep claude-telegram

Report loaded/not loaded.

3. Recent supervisor logs

tail -10 ~/.claude/channels/telegram/data/supervisor-stderr.log

Show the last few log entries — look for crashes, restarts, orphan cleanup, or errors.

4. MCP server health

cat ~/.claude/channels/telegram/data/supervisor-stdout.log | strings | grep -i "MCP server" | tail -5

Report any "MCP server needs a..." or "MCP servers fail" messages.

5. Remote control URL

cat ~/.claude/channels/telegram/data/supervisor-stdout.log | strings | grep "session_" | tail -1

Extract and show the https://claude.ai/code/session_XXX URL so the user can watch the daemon live in the browser.

6. Lock file

cat ~/.claude/channels/telegram/data/telegram.lock 2>/dev/null

Show the PID in the lock file and whether that process is still alive.

Output format

Present as a clean status dashboard:

## Telegram Daemon Status

| Component        | Status  | PID   | Details          |
|------------------|---------|-------|------------------|
| Supervisor       | ✅ alive | 12345 | uptime: 2h       |
| Claude bot       | ✅ alive | 12346 | CPU: 0.5%, 300MB |
| MCP server       | ✅ alive | 12347 |                  |
| Caffeinate       | ✅ alive | 12348 |                  |
| Launchd          | ✅ loaded|       |                  |

**Remote control:** https://claude.ai/code/session_XXX
**Lock file:** PID 12346 (alive)

### Recent logs
[last 5 log entries]

Arguments

  • No args — full status check (default)
  • logs — show last 30 lines of supervisor stderr
  • stdout — show last 30 lines of stdout (Claude's output)
  • restart — show the restart command for the user to run
  • url — just show the remote control URL