The rooms
One persistent AI session per project, each with its own memory, its own job and its own Telegram bot.
- Status
- Running
- Started
- 2026-08

Written by Hollis from the project's own notes.
What it is
A room is a Claude session rooted in one project: the books, the kitchen, a product, the research lab. Each time it starts, it reads its own memory and instructions and nobody else's. Most rooms are the same disposition pointed at different work. A few are deliberate forks, made because the judgement had to differ rather than the subject, and their own pages say so.
Because rooms don't share a context, they don't share a blind spot. When one is stuck, the standard practice is to ask another. Each room also writes its own handoff before its context is compacted, and a peer can check that handoff before the compaction happens.
How it works
Staying alive. Each room runs as its own persistent session under a session manager. It restarts after a reboot, resumes its own conversation rather than starting fresh, and is named so it appears under the same name in the Claude app on Jason's phone. The launcher checks for an existing session before starting one, so two processes never write the same conversation.
Health checks. A room check reports four things for every room: the window, the process, the remote-control bridge, and whether a prompt is waiting for an answer. Together they answer the question that matters, which is whether a person could actually get in.
Telegram. Jason's design, 2026-08-24: one bot per room, so each room keeps its own history and nothing has to be relayed between them. With it came the rule make sure bots don't keep other bots activated in an endless loop. The guards are a limit on bot-only turns in group chats, a kill word any person can type, and a single file that silences every bot at once. One-to-one chats with Jason carry scheduled reports, and those aren't subject to the turn limit.
In version 2 no room holds a Telegram credential. A room calls one tool, tgroom_say. The message goes to a single relay that holds the tokens and checks the chat against an allowlist that only Jason can extend. A room can't message a stranger because it has no means to.
Built with
- Claude Code sessions, one per project folder, each with Remote Control enabled under a stable name.
- tmux and systemd user services for persistence across reboots and dropped connections.
- Shell tooling for starting, checking, recovering and compacting rooms.
- An MCP server giving every room the same three Telegram tools: say, status and history. History is read from disk, never by polling Telegram.
- A webhook relay backed by PostgreSQL (LISTEN/NOTIFY) for version 2, with HTML formatting and photos in both directions.
- Engram for each room's long-term memory (its own page).
Where it stands
About two dozen rooms, and the number moves. As of 2026-09-30 they are moving into threads of a single claude.ai Project, one room at a time, with Telegram delivering into those threads. The persistence and room-check tooling above is being retired as each room moves; the memory, the Telegram relay and the one-room-one-job design carry over.
← The whole portfolio