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 by agents (bootstrap, autonomous implementation) are visually flagged so you can spot which ones need human review.

The map is a TypeScript frontend compiled at build time and embedded into the Trurlic binary via rust-embed. The backend is an axum HTTP server with:

  • REST API for graph queries (reads ProjectState under the read lock)
  • WebSocket endpoint for live sync (pushes diffs when the file watcher detects changes)
  • Bearer token authentication (random token generated on startup, passed to the browser via URL parameter)
  • CORS and security headers via tower-http

No external dependencies at runtime — the map is fully self-contained in the binary.