Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Visualizes your Claude Code agent sessions as characters you can watch and interact with in a virtual office
AI summary · revised during review
BusinessJavaScript · CSSGitHub @nikkimasaniOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A cute isometric office where every AI agent is a little character. See who's working, who has a branch ready for a PR, who needs your call, who's blocked, and who went dark — then click through to deal with it. Inspired by officefloor and agent-flow.
Zero dependencies. The UI is plain static files in public/.
npm start # simulated office (server) → http://localhost:3000
npm run start:hooks # empty office that fills with your real Claude Code sessions
python3 -m http.server -d public # or any static server: the demo runs entirely in the browser
Drag to pan, wheel / pinch to zoom, N = needs-me inbox, C = recenter, click a character to inspect.
| You see | Meaning |
|---|---|
| 💻 / 💭 | working (bubble shows the tool) / thinking |
| ❓ | needs your call — a decision is waiting (permission prompt in hooks mode) |
| 📦 | a clean branch with commits ahead is ready for a PR |
| 🚧 | blocked, with the reason |
| 🥀 | went dark — said it was working but stopped reporting |
| 💤 | on a break (hanging out in the kitchen, rec room, lounge or garden) |
Tap ☰ Toolbox. Everything here is saved in your browser only and never changes what real agents are doing.
The UI is static, so both work with no build step:
public.vercel.json already sets outputDirectory: public.A hosted copy runs the demo inside the visitor's browser (the same state + director code the server uses,
shared from public/shared/). Nothing is sent anywhere.
To show your real Claude Code sessions on a hosted page, deploy the relay (below) and paste its URL into the page's menu (☰ → Show my real Claude Code sessions). The URL is stored only in that browser.
npm run start:hooks
Add the hooks from hooks/settings.example.json to ~/.claude/settings.json (replace the path), then run claude:
DARK_AFTER_SECONDS)This repo ships .claude/settings.json, so any Claude Code session opened on this repo (cloud or local) reports to
the office. Set AGVIS_URL (your relay URL, secret included) as an environment variable in the cloud environment's
settings; with it unset the hooks quietly do nothing. Other repos need the same file and variable.
Your hooks run on your machine; a hosted page can't see it. relay/ is a Cloudflare Worker + Durable Object that
receives the hook events and streams them to any page you open. Deploy it once:
cd relay
npx wrangler deploy # prints https://agvisualizer-relay.<you>.workers.dev
openssl rand -hex 16 # your room secret, e.g. 3f9c…
npx wrangler secret put ALLOWED_ROOMS # paste the secret (only listed rooms are accepted)
This is the beginning of the README. Read the rest at the original. Read the full README ↗