Page Claude Code
from anywhere.
Every state change, every permission prompt, every completion — mirrored to Telegram in real time. Reply to inject prompts. Approve commands without touching your laptop.
Pick a moment. Watch it cross over.
Every Claude Code hook becomes a Telegram event, and every Telegram reply lands back in your session. Try one — or type your own prompt into the chat.
Scenarios
Yours
Type anything into the Telegram input on the right — it'll inject as a prompt and flow into the terminal.
Run a whole team of agents.
From one chat.
Launch parallel Claude sessions with /new, each with its own context and model. Tap a name to switch. Prefix any message with the session name to DM it without switching.
No scraping. No cloud.
Just hooks.
aipager is a small Python daemon on your machine. It hooks into Claude Code's native event API, runs your sessions under dtach for persistence, and pushes events to a Telegram bot you own.
Native Claude Code hooks
When Claude reads a file, edits, runs a tool, or asks permission, Claude Code fires a hook. aipager listens. Nothing is scraped from your terminal.
Sessions survive your laptop closing
Every session runs inside dtach — a tiny terminal multiplexer. SSH drops, lid closes, network blinks: the session keeps running. You re-attach instantly.
Your bot. Your chat. Your tokens.
You create the bot with @BotFather, paste the token, pick a chat ID. aipager talks to Telegram from your machine. Code, prompts, and outputs never touch a third party.
Reply-to-inject
Reply to any bot message and your text becomes the next prompt. Steer the session without opening your laptop.
Inline permission keyboard
Dangerous commands surface as Allow / Deny buttons. Decide once, the session resumes.
Persistent reply keyboard
Three tiers — sessions, commands, models — always one tap away at the bottom of the chat.
Smart notifications
Context warnings, stall alerts, completion pings — only what matters, throttled to not spam.
Templates
Save prompts you reuse — code reviews, commit messages, test diffs — and fire them with a tap.
Observer bots
Add a second read-only bot to a team chat or log channel. Same events, separate audience.
From zero to your pocket
in three commands.
Python ≥ 3.10. macOS, Linux, WSL. The installer fetches dtach for you if it isn't present.
One-shot installer. Detects your platform and uses the best available method (uv → pipx → brew). Pulls dtach if missing.
Need a different shell? fish and zsh users can aipager completion install after the first run.
Already running? aipager update picks up the latest release without touching your config.
Interactive wizard. Paste your bot token, pick a chat, aipager patches ~/.claude/settings.json for you.
Daemon launches. Telegram says hello. Open Claude Code and run normally — every event mirrors.
Optional. Adds a launchd / systemd unit so the daemon comes back after a reboot.