Skip to content

CLI Reference

Create a .trurlic/ directory in the current project.

Terminal window
trurlic init

Generates project.toml, empty components/, decisions/, patterns/ directories, a .state/ directory for session persistence, and an initial graph.toml. Adds .trurlic/.state/ to .gitignore. Safe to run in an existing project — refuses to overwrite if .trurlic/ already exists.

Define a new component in the architecture graph.

Terminal window
trurlic add component <name> [-d <description>]
ArgumentDescription
nameKebab-case component name (e.g. auth, rate-limiter)
-d, --descriptionOne-line description of what this component does

Component names must be unique, non-empty, and valid kebab-case. Reserved names (project, all) are rejected.

Connect two components with a directional edge representing data or control flow.

Terminal window
trurlic add connection <from> <to>

Both components must already exist. Self-connections are rejected. Duplicate connections are idempotent (no error, no duplicate edge).

Rename a component, updating all references atomically.

Terminal window
trurlic rename component <old> <new>

Updates the component file, all decisions referencing it, all patterns, all connections, and the graph index — in a single atomic commit.

Remove a component from the graph.

Terminal window
trurlic remove component <name>

Refuses if any decisions reference this component. Remove or reassign decisions first.

Remove a decision from the graph.

Terminal window
trurlic remove decision <name>

The name is the decision filename without .toml (e.g. auth-jwt-with-dpop-binding). Refuses if other decisions depend on it (DependsOn edges) or if removing it would shrink a pattern below two members. Reports affected patterns and edges.

Remove a connection between two components.

Terminal window
trurlic remove connection <from> <to>

Record a quick decision without the full Socratic flow.

Terminal window
trurlic decide <component> \
--choice "..." \
--reason "..." \
[--supersede <name>] \
[-a "alternative"]
FlagDescription
--choiceWhat was decided
--reasonWhy — your reasoning
--supersedeDecision name this replaces (filename without .toml)
-a, --alternativeAlternative considered and rejected (repeatable)

Start a Socratic design conversation for a component.

Terminal window
trurlic design <component> \
[--continue] [--revisit] \
[-t <task>] \
[-p <provider>] [-m <model>]
FlagDescription
--continueResume a previously interrupted session
--revisitRevisit and potentially revise existing decisions
-t, --taskTask description to focus the conversation
-p, --providerLLM provider: anthropic, openai, openrouter, gemini, custom, ollama
-m, --modelModel override

Requires an API key (except Ollama). See Configuration.

Show bootstrap progress and agent instructions for autonomous architecture extraction.

Terminal window
trurlic bootstrap [<component>] [-p <provider>] [-m <model>]

Without -p: prints status and agent instructions. With -p: runs the bootstrap directly via the LLM API.

Start the MCP server for AI coding agent integration.

Terminal window
trurlic serve

Runs on stdio transport. Watches .trurlic/ for external changes. No API key required.

Write MCP server configuration for an IDE or coding agent.

Terminal window
trurlic install --ide <target> [--binary-path <path>] [--dry-run]
FlagDescription
--ideTarget IDE (see table below)
--binary-pathPath to the trurlic binary to embed in the config (default: current executable)
--dry-runPrint the config snippet to stdout without writing to disk
TargetIDE / AgentConfig path
claudeClaude Desktop (Anthropic)Platform-specific claude_desktop_config.json
claude-codeClaude Code (Anthropic)Runs claude mcp add directly
cursorCursor IDE~/.cursor/mcp.json
clineCline (VS Code extension)Platform-specific cline_mcp_settings.json
windsurfWindsurf (Codeium)~/.codeium/windsurf/mcp_config.json
copilotGitHub Copilot (VS Code)Platform-specific Code/User/mcp.json
codexCodex CLI (OpenAI)~/.codex/config.toml
opencodeOpenCode~/.config/opencode/opencode.json
openclawOpenClaw (MCPorter)~/.openclaw/workspace/config/mcporter.json
hermes-agentHermes Agent (NousResearch)~/.hermes/config.yaml
antigravityAntigravity CLI (Google)~/.gemini/config/mcp_config.json

Existing configuration files are preserved — trurlic install merges the Trurlic server entry into the existing config. If a trurlic entry already exists, it is overwritten with a warning.

Terminal window
trurlic install --ide cursor # write config for Cursor
trurlic install --ide claude-code # register via `claude mcp add`
trurlic install --ide copilot --dry-run # preview the config snippet

Open the interactive graph visualization in the browser.

Terminal window
trurlic map [--port <N>] [--no-open] [--detach]
FlagDescription
--portBind to a specific port (default: OS-assigned)
--no-openStart server without opening the browser
--detachBackground the server; print URL and exit

Show project status: component count, decision count, health summary.

Terminal window
trurlic status

Validate .trurlic/ internal consistency.

Terminal window
trurlic check [--rebuild]
FlagDescription
--rebuildForce-rebuild graph.toml from node files (nuclear recovery). Non-inferable edges (ConnectsTo, DependsOn, etc.) will be lost.

Verifies BLAKE3 hashes, checks for dangling edges, validates schemas, and detects cycles.

Terminal window
trurlic --version # print version
trurlic --help # print help
trurlic <command> --help # print help for a specific command