the map
Directories are walled districts. Files are rooms, sized by what is in them. Dependency depth is the storey you stand on.

a map of your codebase
A Dwarf Fortress-style map of your codebase, folded out of its git history. Dwarf Fortress is famously dense. Its players see a whole fortress at a glance. warrens draws a repository the same way.


Directories are walled districts. Files are rooms, sized by what is in them. Dependency depth is the storey you stand on.
Pin a room and the map lights everything a change there would land on, hop by hop. Pins live in the URL, so a question is a link.
Point at the rooms and hand your agent exactly what you are looking at. warrens never calls a model, and nothing is uploaded.
$ npx warrensthe warren is still being dug—it opens soon

Directories are walled districts. Files are rooms, sized by what's in them. Dependency depth is the storey you stand on. Every room has two doors: imports flow in at the top, importers draw from the bottom. Each door is as wide as the traffic through it. A door nothing crosses is sealed in the masonry, and the seal is the reading—nothing imports this file.
Wall colour is stone, and stone is age: five strata from loam to gneiss, graded in fifths of the repository's own life. Cobwebs gather on rooms nobody has come back to. Torchlight marks the rooms under work right now. Each hand in a file is a dwarf in its room, live as you type.


Pin a room and the map lights the blast radius: everything a change there would land on, hop by hop. The panel says it plainly — a change here reaches 34 rooms: 9 one hop away · 12 two · 13 beyond. Each count is a control that cuts how deep the roads are lit. Pins live in the URL, so a question is a link you can send.
A barrel file is a gate in the district wall. An import that goes around it is a breach, drawn in the attention colour where it landed. Files that change together are clustered, and each cluster is named from the words its own commits use. Untested rooms, orphaned rooms, import cycles: standing findings, on by default, each one a setting.

warrens selection prints what you've pinned in the open map as JSON: storey, churn, imports, reach, breaches, the lot. Point at the rooms, and hand your agent exactly what you are looking at. "Look at this" stops needing a paragraph.
warrens never calls a model. No key to configure, nothing uploaded—the map is served from your machine to your browser. Everything it derives is folded from git into .warrens/ and recomputable: deleting the cache is the reset button.