fleet-telegram — Activation checklist (~15 minutes)¶
Everything in phases 1–2 is built, tested, and CI-green without a live bot. This checklist is the only part that needs you (a real Telegram account/token and an on-phone look). Development is done; this is turn-up.
1. Create the bot (BotFather) — 3 min¶
- In Telegram, message @BotFather →
/newbot→ name it (e.g. "Fleet HQ — Greatroom") → get the bot token (looks like1234567890:AA...). - (Per-machine): repeat
/newbotonce per PC you want a gateway on (greatroom first). One token per machine — that's the council-decided topology (blast radius = one PC).
2. Create "Fleet HQ" supergroup + enable Topics — 3 min¶
- New Group → add your bot → make it a supergroup → Group Settings → Topics: ON (forum mode).
- Promote the bot to admin with "Manage Topics" + "Post Messages".
- Get the chat ID: send any message in the group, then the gateway logs the chat ID on first run (or use @RawDataBot temporarily). Note it.
3. Get your Telegram user-ID — 1 min¶
Message @userinfobot → it replies with your numeric user ID. This is the allowlist — only this ID is ever processed.
4. Write the local config (NEVER in OneDrive/repo) — 2 min¶
Create %USERPROFILE%\.claude\fleet-telegram.json on the gateway PC:
{
"botToken": "PASTE_BOT_TOKEN",
"fleetHqChatId": -1001234567890,
"andrewUserId": 123456789
}
5. Ensure prerequisites are present (bootstrap already installs these)¶
- .NET 10 (build/publish the gateway):
dotnet publish src/FleetTelegram.Gateway -c Release. - ffmpeg on PATH — needed for voice notes (phase-2c) and recordings (phase-2d).
winget install Gyan.FFmpegif absent. - Whisper model:
ggml-base.en.binauto-downloads on first voice note (shared with audio-loop-mcp viaAUDIO_LOOP_WHISPER_MODEL). - FleetDispatch.exe published (for
@PCNAMEremote commands) — bootstrap does this; see the fleet-dispatch repo.
6. Run the gateway — 1 min¶
dotnet run --project src/FleetTelegram.Gateway
7. Smoke test on your phone — 5 min¶
In the Fleet HQ group:
- Type /status → should route to Claude and reply (compressed).
- /ls src → directory listing. /cat README.md → file head. /board → the board.
- /shot → a screenshot of the gateway PC.
- Type something dangerous like git push → you get a Confirm button; nothing runs until you tap it.
- Send a voice note saying "slash ls src" → it transcribes, echoes the transcript, and asks you to confirm (voice always confirms, even for read-only — council safeguard).
- @DESKTOP-D249KD4 status → routes the command to the gaming PC via fleet-dispatch (needs that PC's listener up + the shared key).
What each governor tier does to your commands¶
- GREEN/YELLOW: commands run (YELLOW notes the tier).
- RED/BLACKOUT: non-critical commands are refused; prefix with
!criticalto override (e.g.!critical restart the api).
Calibration you can only do live (note anything to tune)¶
- Digest cadence feel (GREEN 2m / YELLOW 5m / RED 15m) — adjust in FleetConfig if too chatty/quiet.
- Whisper confidence threshold for your voice/mic (
VoiceMinAvgLogProb) — if it rejects your real voice too often, loosen it. - Recording quality/size under the 50MB Telegram cap.
- NanoClaw has no persistent transcript today; when its wrapper tees output to a file, add a
FileTailSourceand it appears in Telegram with zero code.
Security recap (already enforced in code)¶
Allowlist = you only · token never in OneDrive/repo · long-poll only (no open ports) · every inbound audited + secrets redacted · dangerous commands + ALL voice require confirm · remote commands ride fleet-dispatch HMAC · never reboots a machine.