Explore the structure
Follow the connections.
Find what depends on your code. See what your code depends on.
Select a node to trace its connections, or find a module in the explorer.
Keep exploring
From the map to your terminal.
The pillars4 arms · crowns & evidence
The arms the walk proposes. Each crown is the unit that orchestrates its arm.
starlette · the pillars 4 layers · 5 nodes · 7 edges · 0 unconnected · [LR]
┌─────────────────────┐┌────────────────────────────────────────────────┐ ┌──────────────────────┐
│ ENDPOINTS (16→ ·→0) ├┤ └┌┌▶│ WEBSOCKETS (3→ ·→20) │
└─────────────────────┘├───────────────────┐ ┌───────────────────────┐ ││ └──────────────────────┘
│ └╪┌▶│ MIDDLEWARE (15→ ·→22) ├─┘│
┌─────────────────────┐│ ┌───────────────┐ ││ └───────────────────────┘ │
│ TESTCLIENT (9→ ·→0) ├╪┐▶│ EDGE (2→ ·→3) ├─┘│ │
└─────────────────────┘ │ └───────────────┘┌─╪────────────────────────────┘
│ │ │
├──────────────────╪─┘
│ │
└──────────────────┘
| Arm | Crown | Units | Evidence |
|---|---|---|---|
| MIDDLEWARE | starlette.middleware | 17 | crown — fan-out at least half the leader's (98) |
| ENDPOINTS | starlette.endpoints | 1 | crown — stands alone: no arm orchestrates it, and the most it spends on one arm is 5 of 16 (MIDDLEWARE), under 0.33 |
| TESTCLIENT | starlette.testclient | 1 | crown — stands alone: no arm orchestrates it, and the most it spends on one arm is 1 of 9 (MIDDLEWARE), under 0.33 |
| WEBSOCKETS | starlette.websockets | 1 | the floor's crown — the greatest fan-in (20) no arm owns (MIDDLEWARE 13, ENDPOINTS 4, TESTCLIENT 3) |
Compiled arms live at /site/.work/encode/starlette/.graphy/GRAPH.md. Open one arm; blast its crown.
The package ring0 connected packages
Minted beside starlette: none.
Not carried: anyio, httpx, httpx2, itsdangerous, jinja2, multipart, opentelemetry, python_multipart, typing_extensions, yaml.
Add your modelMCP configuration
Paste this into the repo's .mcp.json (Claude Code) or your client's MCP settings. The client can start anywhere in the repo. Any model; the walk is graphy's.
{
"mcpServers": {
"graphy": {
"command": "/usr/local/bin/graphy",
"args": [
"mcp",
"--repo",
"."
]
}
}
}Ask the codebaseThree starting points
/usr/local/bin/graphy blast starlette.middleware --tenant /site/.work/encode/starlette/.graphy/tenant.json --tenant-id starletteif starlette.middleware changes, what breaks/usr/local/bin/graphy descend starlette.websockets --tenant /site/.work/encode/starlette/.graphy/tenant.json --tenant-id starlette --depth 3what starlette.websockets reaches, across packages/usr/local/bin/graphy draw --tenant /site/.work/encode/starlette/.graphy/tenant.json --tenant-id starlette --symbol starlette.middleware --radius 2 --lrthe neighbourhood, drawn
Make your own atlasOne command · no model
pip install graphyos cd <repo> && graphy eat . && graphy showcase .
https://github.com/encode/starlette.git
Every edge comes from code structure, a wormhole between packages, or a label resolved through the code's own scope. The module map shows cross-group connections with at least 2 dependencies; 32 below that floor.