Skip to content

Interactive Map

trurlic map opens an interactive graph visualization in the browser. Components, connections, decisions, patterns — explorable, editable, and live-synced with the filesystem.

Terminal window
trurlic map

This starts a local web server and opens the browser. The map shows the decision graph with components as nodes, connections as edges, and decisions as annotations.

Terminal window
trurlic map --port 8080 # bind to a specific port (default: OS-assigned)
trurlic map --no-open # start server without opening browser
trurlic map --detach # background the server; print URL and exit

Force-directed layout — components are arranged automatically with a physics-based layout engine. Drag nodes to reposition them.

Level of detail — zoom in to see individual decisions and their metadata. Zoom out to see the high-level component graph.

Live sync — the map watches .trurlic/ via WebSocket. Changes from the CLI, MCP server, or manual edits appear in real time without refreshing.

Search — find components, decisions, and patterns by name or content.

Selection — click a component to see its decisions, connections, and concern coverage in a side panel.

Agent attribution — decisions recorded in agent mode (bootstrap, autonomous implementation) are flagged ⚠ so you can spot which ones still need review. Promote or revise them via update_decision.

The map is a TypeScript frontend embedded into the binary at build time (rust-embed), served by an axum HTTP server: a REST API for graph queries under the read lock, a WebSocket endpoint that pushes diffs when the file watcher fires, and a bearer token (generated on startup, passed to the browser via the URL). No runtime dependencies — it’s fully self-contained.