Agentopolis — Habbo-style visualization of Claude Code agents building your repo as a city
Project description
Agentopolis
A Habbo-style isometric visualization of Claude Code at work, in two views on
one page. The dispatch floor (City Hall): every agent is a pixel worker —
your main session checks in at reception, subagents walk through the door when
spawned, and tool calls send workers to stations — the CRT terminal for Bash,
the archive shelf for Read/Grep, the workshop for Edit/Write, the
telephone booth for web tools. The skyline above: the city is the codebase
itself, seeded from git history and zoned by architecture (a zoning manifest
maps globs to components and layers; floors = cross-component centrality,
footprint = lines of code, window glow = recency; managed services float as
tethered clouds). As agents work, the city builds itself out — edits wrap
buildings in scaffolding, a git commit drops the scaffolds and adds floors,
new files pop up new buildings. /city.html is a full-screen explorer with
pan/zoom. The city re-seeds itself from git whenever HEAD moves.
Install & run
uv tool install agentopolis # or: pipx install agentopolis
# or: brew install codeblackwell/tap/agentopolis
agentopolis attach # one-time: fire-and-forget hooks into ~/.claude/settings.json
cd ~/code/any-repo
agentopolis # its city on http://localhost:4242
Open http://localhost:4242, then start any Claude Code session — new sessions
report in automatically. No live session handy? http://localhost:4242/?demo
runs a scripted day in the city. agentopolis detach removes the hooks (a backup
of settings.json is written on attach). Flags: --repo, --port, --zone.
Zoning: if the repo has a .agentopolis.json manifest it defines the city's
components, layers, and clouds (see city/maisight.json for a full example);
otherwise agentopolis auto-zones from the repo's top-level directories. For repo
hackers: just dev serves ../maisight with its manifest.
How it works
Claude Code hooks ──curl──▶ POST /hook ──▶ normalize ──SSE──▶ canvas renderer
hooks.pyregisters acurl -m 1 ... || truecommand on eight hook events (SessionStart, UserPromptSubmit, Notification, Pre/PostToolUse, Stop, SubagentStop, SessionEnd). It never blocks Claude Code — if the hotel isn't running, the curl times out silently.server.py(FastAPI) trims each payload to{event, session, tool, detail}(plusagent_id/agent_typefor events fired inside subagents), keeps the last 100 events, and broadcasts over SSE — late-joining browsers get a replay.static/render.js+static/hotel.jsdraw the room and guests on a plain canvas — original pixel art, no Habbo assets. Subagent tool calls move their own guest, a pulsing gold aura marks a session waiting on you (permission or idle), and hovering a guest shows who they are and what they're doing.
Known limits (v0)
- Front-facing avatars only; no directional sprites yet.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentopolis-0.7.0.tar.gz.
File metadata
- Download URL: agentopolis-0.7.0.tar.gz
- Upload date:
- Size: 345.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fa4f5abadddcc78d7845055549c6cfee49fae754e1968c20e776bc59ea256b8
|
|
| MD5 |
6d1cdc2a8516636077fdf3df61c8c907
|
|
| BLAKE2b-256 |
3a182fc0a806689690be89ce930f263be556a8b345cc0cb5477a184bcaeebd4c
|
File details
Details for the file agentopolis-0.7.0-py3-none-any.whl.
File metadata
- Download URL: agentopolis-0.7.0-py3-none-any.whl
- Upload date:
- Size: 332.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
021096e582d9c423936eb5f9d051a9756bac796e1da3c0eac9d4624c8275f5a6
|
|
| MD5 |
8af96fa5cb35835ce22eadf5c9836f3b
|
|
| BLAKE2b-256 |
9639bb234300bb2a59ec4ca6f33925b36b3019fbdc019ffd4f865a28e7f929c3
|