···11# traverse
2233-snatching amp's walkthrough for my own purposes mwhahaha
33+interactive code walkthrough diagrams via MCP. share them with anyone.
4455The canonical repo for this is hosted on tangled over at [`dunkirk.sh/traverse`](https://tangled.org/@dunkirk.sh/traverse)
66+77+## try it now
88+99+```sh
1010+bunx @taciturnaxolotl/traverse
1111+```
1212+1313+requires [bun](https://bun.sh). runs an MCP server on stdio and a web server on `localhost:4173`.
1414+1515+## setup
1616+1717+add to your MCP client:
1818+1919+**claude code:**
2020+2121+```sh
2222+claude mcp add traverse -- bunx @taciturnaxolotl/traverse
2323+```
2424+2525+**claude desktop** — add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
2626+2727+```json
2828+{
2929+ "mcpServers": {
3030+ "traverse": {
3131+ "command": "bunx",
3232+ "args": ["@taciturnaxolotl/traverse"]
3333+ }
3434+ }
3535+}
3636+```
3737+3838+**other MCP clients** — same JSON config, wherever your client reads `.mcp.json` or equivalent.
3939+4040+your AI calls the `walkthrough_diagram` tool with mermaid code + node descriptions, and you get a clickable diagram in your browser.
4141+4242+diagrams persist to sqlite at `~/Library/Application Support/traverse/traverse.db` (macOS) or `$XDG_DATA_HOME/traverse/traverse.db` (linux). override with `TRAVERSE_DATA_DIR`.
4343+4444+## sharing
4545+4646+click the share button on any diagram to upload it to `traverse.dunkirk.sh` and copy a public link.
4747+4848+configure the share server in `~/Library/Application Support/traverse/config.json`:
4949+5050+```json
5151+{
5252+ "shareServerUrl": "https://traverse.dunkirk.sh"
5353+}
5454+```
5555+5656+or set `TRAVERSE_SHARE_URL`.
5757+5858+## server mode
5959+6060+run your own share server:
6161+6262+```sh
6363+TRAVERSE_MODE=server bun run src/index.ts
6464+```
6565+6666+accepts `POST /api/diagrams` with a diagram JSON body, returns `{ id, url }`.
6767+6868+## env vars
6969+7070+| var | default | description |
7171+|-----|---------|-------------|
7272+| `TRAVERSE_PORT` | `4173` | web server port |
7373+| `TRAVERSE_MODE` | `local` | `local` (mcp + web) or `server` (web only) |
7474+| `TRAVERSE_SHARE_URL` | `https://traverse.dunkirk.sh` | share server url |
7575+| `TRAVERSE_DATA_DIR` | platform default | sqlite db location |
676777<p align="center">
878 <img src="https://raw.githubusercontent.com/taciturnaxolotl/carriage/main/.github/images/line-break.svg" />