agentchattr runs a local FastAPI MCP server with a browser chat UI. Each agent runs in its normal terminal session behind a small wrapper. When you @mention one, the wrapper injects a command telling it to read the chat and respond there.
The 'unusual' part is that I’m not building a custom host for the agents. I’m driving the real CLIs directly. On Windows the wrapper injects input with the Win32 console API; on macOS/Linux it uses tmux send-keys. It lets me keep using the official CLIs as they update, but it’s definitely the weirdest part.
It lets me do things like: I ask Claude to review a PR while Gemini writes tests for it. They see each other's messages in the chat and coordinate without me having to move text around.
It also tracks if an agent is active by hashing the terminal screen buffer, so the UI can show when they’re actually busy. I'm a designer, this is my first OSS project, and I tried to keep it lightweight and polished.
I’d be interested in criticism of the technical parts, and the design.