v0.4 · self-hosted, MIT-licensed · works with Pro & Max
Switchroom is a scaffolder, process manager, and Telegram plugin for the official claude CLI. Nothing patched, nothing forked. The other harnesses still run. What changed is the subscription tap. Anthropic cut third-party tools off Pro and Max. They’re on pay-per-token API keys now. Switchroom uses the CLI the way Anthropic ships it, so you stay on the subscription you’re already paying for.
You had agents in Telegram. Then the subscription tap got cut for third-party tools. You still pay for Pro or Max. You still want Claude on your phone, away from your machine, remembering things across sessions. Just not paying twice for it.
Claude Code is a terminal app. It sleeps when your laptop sleeps. It forgets when you close the window.
Mobile Claude is a chat app. No file access, no shell, no custom skills, no continuity with your desktop.
OpenClaw and the other harnesses still run. They just can’t ride your Pro or Max any more. It’s API keys now, billed per token. Switchroom calls the CLI Anthropic ships. Same OAuth, same limits, no middleman.
Switchroom drives the stock claude CLI, the binary Anthropic ships, and spins up one long-lived process per persona. Each process is a systemd service. Each service is plugged into its own Telegram bot, on its own topic. You wire the cords; Switchroom holds the panel.
Not a harness. Doesn’t patch the CLI, doesn’t intercept the protocol, doesn’t forge tokens. Just scaffolds files, starts processes, routes messages. Gets out of the way.
Switchroom runs the real claude CLI under your Pro or Max OAuth token, the same one the desktop app uses. No API meter, no per-token bill, no second invoice. Your subscription is the cap.
Each agent is its own systemd service with its own SOUL, its own memory, its own Telegram topic. One bot per agent keeps routing clean.
Progress cards show what each agent is doing in real time. Pinned, live-updating. Status reactions let you feel the agent's state without scrolling.
Memory that sticks around. Permissions that don't get in your way. A codebase you can actually read.
Workspace-backed long-term memory: MEMORY.md + daily notes, BM25-searchable via MCP tools. Optional Hindsight semantic memory for agents that want embeddings. Skills are plain markdown. Edit them like any other file in your repo.
Permission prompts surface in Telegram as ✅ Allow / ❌ Deny buttons. Read-only tools are pre-approved; Bash, Edit, Write, WebFetch gate through you. PI-safe envelopes sanitize inbound untrusted text.
TypeScript. MIT-licensed. Bun for dev, Node ≥20 at runtime. Profiles and skills live as .hbs templates you can fork. No vendor lock-in, no telemetry. Read the source, break it, send a PR.
switchroom-<name>.service, managed by the CLI: start, stop, restart, reset.
Uses CLAUDE_CODE_OAUTH_TOKEN from ~/.claude/.oauth-token. Run switchroom auth login once.
One bot per agent, one topic per agent. Inline approvals, slash commands, handoff briefings on restart.
Switchroom scaffolds .claude/agents/*.md. Sub-agents delegate through Claude Code's built-in machinery. Not a reimplementation.
Every agent gets AGENTS.md, SOUL.md, USER.md, MEMORY.md, daily notes, and an optional HEARTBEAT.md. Injected into the system prompt, budgeted.
# Persona: personal assistant name: assistant profile: executive-assistant telegram: bot_token_env: ASSISTANT_BOT_TOKEN topic_id: 4281 allowlist: [182934] workspace: ~/work/assistant skills: - calendar - notes - email-draft mcp: memory: true # BM25 over MEMORY.md hindsight: false # semantic recall permissions: auto_allow: [Read, Grep, Glob, LS] ask: [Bash, Edit, Write, WebFetch]
You pay for Pro or Max. You want Claude in Telegram, remembering your projects, available from the couch, without a second bill.
You have a Pi or a mini-PC humming in a closet. systemd is a friend, not a stranger. You'd rather edit a YAML than sign up for a SaaS.
You want a personal assistant that knows your docs, your calendar, your vibe. And a coding buddy. And a coach. Different personas, one panel.
You'll need a Linux box (VPS, Pi, old laptop), a Claude Pro or Max subscription, and a Telegram bot token from @BotFather for each persona.
ANTHROPIC_API_KEY anywhere in the stack.claude CLI, the same binary that ships with Claude Code. Your subscription covers it the same way it covers desktop usage.claude CLI, uses the same OAuth flow as the desktop app, and sits on top of Claude Code’s native sub-agent and MCP machinery. Nothing to patch, same subscription you’re already paying for.