dbl8005/repos-and-dungeons

Watch Claude Code explore your repo as a live pixel dungeon. Folders are rooms, unread code is fog, failing tests are monsters. Local, open source.

TypeScript

7

1 commits

updated Oct 6, 2026

See the code

See what people are saying

SourceMessageScoreDate

Repos & Dungeons: watch your agents fight their way through your codebase (r/ClaudeAI)

https://preview.redd.it/350kxbf280uh1.png?width=1280&format=png&auto=webp&s=1a42f54c85c5016ac6ad573d4b72534979c187ff I got bored working on a side project recently and was thinking about how old-school, pre-AI coding used to feel like playing a game (well, kinda). Tracking down a…

9

Oct 7, 2026

README

Repos & Dungeons — watch Claude Code explore your repo as a pixel dungeon

CI MIT license Runs locally Works with Claude Code

Your coding agent's session, as a live roguelike.

Folders are rooms · unread code is fog · failing tests are monsters · your agents are the party

Quick start · How it maps · The party · Timelapse · Videos · Privacy

Claude heroes exploring a repo dungeon, fighting test slimes, talking in speech bubbles

⚡ Quick start

You need Node 20+ and Claude Code. In any repo where you use Claude Code:

npx github:dbl8005/repos-and-dungeons

A browser tab opens with your repo's dungeon, and every Claude Code session running in that repo walks in as a hero — live. The first run takes about a minute while it builds; after that it starts in seconds.

No agent running right now? Watch the built-in demo:

npx github:dbl8005/repos-and-dungeons --demo         # a small app
npx github:dbl8005/repos-and-dungeons --demo-large   # a ~2,500-file monorepo

🗺 Your repo becomes a dungeon

The map is built from your actual file tree, and it's deterministic: the same repo always gives the same dungeon.

When your agent……in the dungeon
📜 reads a filethe hero walks there, the fog lifts, the crate opens into a scroll
🔨 edits or creates a filethe tile is forged into a glowing gem, sparks fly
🔦 searches (Grep / Glob)a torch flash
🟥 runs failing tests (vitest, jest, pytest, go, …)slimes spawn in the failing file's room — and taunt you
✅ gets the tests green againthe slimes die, gold bursts, victory fanfare
🔥 fills its context windowthe torch meter burns down; compaction brings the fog back
🧭 spawns subagentsnew party members walk in

The fog is the useful part: at a glance you can see which parts of the codebase your agent never looked at.

🧙 Meet the party

Opus the knight, Sonnet the squire, Haiku the scout, Fable the wizard, and a failing-test slime

Every model gets its own Claude. And they talk: heroes comment on what they're doing in a D&D voice —

OPUS — "By Helm's beard! A bug in token.ts betrays us." HAIKU — "Architecture here's well-drawn, but whoever penned these sessions was surely mad." SLIME — "Your tests are MINE!"

Lines are written live by Haiku through your own Claude Code login (about one short call per hero every 15 seconds while active, which counts toward your plan usage), plus built-in lines for big moments. Prefer quiet? --no-narrator.

🔊 Sound is off by default. Click the speaker or press M for dungeon music and effects — the music shifts to drums while monsters are alive.

🎬 Share a timelapse

An exported timelapse

Click ▶ Timelapse to replay everything since you started, squeezed into 30 seconds — idle stretches are skipped and the camera follows the exploration.

Click ⤓ Export to save it:

  • MP4 or GIF, square (for social) or wide
  • 15 / 30 / 60 seconds
  • session clock, explored %, speech bubbles and a small watermark
  • Hide folder names turns every room into "Room 1, Room 2…" before you share
  • optional sound track

Everything renders in your browser. Sessions are also recorded to ~/.repos-and-dungeons/recordings/ (private to your user).

🏰 Built for big repos

A huge monorepo still makes a readable map:

  • at most 400 rooms — the biggest folders split first, the rest fold into alcoves
  • room size grows with the square root of the file count
  • only what's on screen is drawn, at three zoom levels
  • press F for the overview with explored % per room, / to jump to any folder

100,000 files map in under a second and render at 60 fps.

Overview of a large monorepo dungeon, then diving back in

🎥 Videos

ClipLength
▶A live session — heroes read, forge, fight slimes and banter18 s
▶An exported timelapse — made with the built-in exporter30 s
▶A big monorepo — overview, then diving into the party14 s

🎮 Controls

InputAction
drag · scrollpan · zoom
Foverview of the whole dungeon
/jump to a folder
Escfollow the action again (or stop a timelapse)
click a hero cardfollow that hero
Msound on / off
repos-and-dungeons [repo-path] [--port n] [--no-open] [--no-narrator] [--demo | --demo-large]

🔒 Privacy

Everything runs on your machine.

  • The server listens on 127.0.0.1 only and needs a random key in the URL.
  • It reads your Claude Code transcripts (~/.claude/projects) and your file list (git ls-files) — never file contents.
  • Game events keep file paths and test names only: no command text, tool output or file contents.
  • The narrator sends Haiku only event kinds, cleaned file names and test counts.
  • Exports render in your browser and are only saved where you download them.

⚙️ How it works

Repos & Dungeons tails Claude Code's session transcripts (no hooks or settings needed), turns each line into game events, and streams them over a WebSocket to a PixiJS renderer. The art and music are generated in code. The full design lives in docs/SPEC.md.

🧭 Roadmap

Ideas welcome in Discussions and Issues.

🛠 Develop

npm install
npm test               # unit tests
npm run test:e2e       # browser tests (uses your GPU)
npm run build && node dist/cli.js --demo

License

MIT · Not affiliated with Anthropic; Claude is a trademark of Anthropic · All art and sound are made in code for this project.

ai-agents
claude
claude-code
developer-tools
gamification
pixel-art
pixijs
roguelike
typescript
visualization

dbl8005/repos-and-dungeons

Watch Claude Code explore your repo as a live pixel dungeon. Folders are rooms, unread code is fog, failing tests are monsters. Local, open source.

TypeScript

7

1 commits

updated Oct 6, 2026

See the code

See what people are saying

SourceMessageScoreDate

Repos & Dungeons: watch your agents fight their way through your codebase (r/ClaudeAI)

https://preview.redd.it/350kxbf280uh1.png?width=1280&format=png&auto=webp&s=1a42f54c85c5016ac6ad573d4b72534979c187ff I got bored working on a side project recently and was thinking about how old-school, pre-AI coding used to feel like playing a game (well, kinda). Tracking down a…

9

Oct 7, 2026

README

Repos & Dungeons — watch Claude Code explore your repo as a pixel dungeon

CI MIT license Runs locally Works with Claude Code

Your coding agent's session, as a live roguelike.

Folders are rooms · unread code is fog · failing tests are monsters · your agents are the party

Quick start · How it maps · The party · Timelapse · Videos · Privacy

Claude heroes exploring a repo dungeon, fighting test slimes, talking in speech bubbles

⚡ Quick start

You need Node 20+ and Claude Code. In any repo where you use Claude Code:

npx github:dbl8005/repos-and-dungeons

A browser tab opens with your repo's dungeon, and every Claude Code session running in that repo walks in as a hero — live. The first run takes about a minute while it builds; after that it starts in seconds.

No agent running right now? Watch the built-in demo:

npx github:dbl8005/repos-and-dungeons --demo         # a small app
npx github:dbl8005/repos-and-dungeons --demo-large   # a ~2,500-file monorepo

🗺 Your repo becomes a dungeon

The map is built from your actual file tree, and it's deterministic: the same repo always gives the same dungeon.

When your agent……in the dungeon
📜 reads a filethe hero walks there, the fog lifts, the crate opens into a scroll
🔨 edits or creates a filethe tile is forged into a glowing gem, sparks fly
🔦 searches (Grep / Glob)a torch flash
🟥 runs failing tests (vitest, jest, pytest, go, …)slimes spawn in the failing file's room — and taunt you
✅ gets the tests green againthe slimes die, gold bursts, victory fanfare
🔥 fills its context windowthe torch meter burns down; compaction brings the fog back
🧭 spawns subagentsnew party members walk in

The fog is the useful part: at a glance you can see which parts of the codebase your agent never looked at.

🧙 Meet the party

Opus the knight, Sonnet the squire, Haiku the scout, Fable the wizard, and a failing-test slime

Every model gets its own Claude. And they talk: heroes comment on what they're doing in a D&D voice —

OPUS — "By Helm's beard! A bug in token.ts betrays us." HAIKU — "Architecture here's well-drawn, but whoever penned these sessions was surely mad." SLIME — "Your tests are MINE!"

Lines are written live by Haiku through your own Claude Code login (about one short call per hero every 15 seconds while active, which counts toward your plan usage), plus built-in lines for big moments. Prefer quiet? --no-narrator.

🔊 Sound is off by default. Click the speaker or press M for dungeon music and effects — the music shifts to drums while monsters are alive.

🎬 Share a timelapse

An exported timelapse

Click ▶ Timelapse to replay everything since you started, squeezed into 30 seconds — idle stretches are skipped and the camera follows the exploration.

Click ⤓ Export to save it:

  • MP4 or GIF, square (for social) or wide
  • 15 / 30 / 60 seconds
  • session clock, explored %, speech bubbles and a small watermark
  • Hide folder names turns every room into "Room 1, Room 2…" before you share
  • optional sound track

Everything renders in your browser. Sessions are also recorded to ~/.repos-and-dungeons/recordings/ (private to your user).

🏰 Built for big repos

A huge monorepo still makes a readable map:

  • at most 400 rooms — the biggest folders split first, the rest fold into alcoves
  • room size grows with the square root of the file count
  • only what's on screen is drawn, at three zoom levels
  • press F for the overview with explored % per room, / to jump to any folder

100,000 files map in under a second and render at 60 fps.

Overview of a large monorepo dungeon, then diving back in

🎥 Videos

ClipLength
▶A live session — heroes read, forge, fight slimes and banter18 s
▶An exported timelapse — made with the built-in exporter30 s
▶A big monorepo — overview, then diving into the party14 s

🎮 Controls

InputAction
drag · scrollpan · zoom
Foverview of the whole dungeon
/jump to a folder
Escfollow the action again (or stop a timelapse)
click a hero cardfollow that hero
Msound on / off
repos-and-dungeons [repo-path] [--port n] [--no-open] [--no-narrator] [--demo | --demo-large]

🔒 Privacy

Everything runs on your machine.

  • The server listens on 127.0.0.1 only and needs a random key in the URL.
  • It reads your Claude Code transcripts (~/.claude/projects) and your file list (git ls-files) — never file contents.
  • Game events keep file paths and test names only: no command text, tool output or file contents.
  • The narrator sends Haiku only event kinds, cleaned file names and test counts.
  • Exports render in your browser and are only saved where you download them.

⚙️ How it works

Repos & Dungeons tails Claude Code's session transcripts (no hooks or settings needed), turns each line into game events, and streams them over a WebSocket to a PixiJS renderer. The art and music are generated in code. The full design lives in docs/SPEC.md.

🧭 Roadmap

Ideas welcome in Discussions and Issues.

🛠 Develop

npm install
npm test               # unit tests
npm run test:e2e       # browser tests (uses your GPU)
npm run build && node dist/cli.js --demo

License

MIT · Not affiliated with Anthropic; Claude is a trademark of Anthropic · All art and sound are made in code for this project.

ai-agents
claude
claude-code
developer-tools
gamification
pixel-art
pixijs
roguelike
typescript
visualization