How the AI works in Tracemoor

The AI in the chat panel works on the same data as the rest of the app. Tracemoor analyses the project in advance and offers the result to the AI as tools. The AI asks the index instead of searching files as text.

The tool channel

The connection between the AI and the index is MCP (Model Context Protocol). Tracemoor runs an MCP server for each chat session. Its tools are named mcp__code-explorer__… and answer structured questions:

QuestionTool
Where is this symbol defined, who calls it, what does it call?describe_symbol
Where is this label rendered, and which handler runs on click?find_ui_source
Which files depend on this file?file_importers, impact_radius
Which projectdocs entries and specs are anchored to this function?projectdocs_for_symbol, spec_anchors_for_symbol
Which spec requirements have no covering test?spec_coverage_gaps

All tools are listed in MCP tools.

Example: "Who calls parse_current?" is one call to describe_symbol. The answer lists file, line, callers and callees. A text search for the same name also returns comments, strings and unrelated symbols with the same name, and it fills the conversation with file content.

The AI is instructed to use these tools first for every question about code. It falls back to reading files and text search when the index has no answer, for example for configuration files or languages without an adapter.

Where the AI gets its context

Each chat session starts with:

The AI reads these sources on demand. Asked about a function, it can look up the decision anchored to it and the spec that fixes its behaviour. The guide tells it to do this before it changes code.

The AI writes code references as ce:// links. A click opens the file at the line, the symbol in the graph, or a projectdocs entry. Diagrams in the answer are rendered, and their nodes link into the code. Edits of the AI appear as a diff in the chat. See Chat panel.

Session modes

The session mode limits what the AI may change:

ModeThe AI may
Read-Onlyread and query. No file changes, no write tools.
Safealso edit files inside the project and the exploration, and run a fixed list of programs.
Bravedo everything, including the write tools of Tracemoor (projectdocs, specs, tickets, changelists, work packages) and operating other app windows.

The mode is set per session and can be changed during the session. It limits the AI only. Your own actions in the app are never restricted. See Session modes.

Write tools of Tracemoor that affect shared state, for example creating a ticket or opening a pull request, also show a preview that you approve.

Providers

The AI runs on one of these providers:

ProviderConnection
Claude (CLI)The installed claude program, with your Claude login.
Anthropic (API)The Anthropic Messages API, with an API key or your Claude login.
OpenAI (API)The OpenAI API with an API key.
OpenCode (Zen gateway)The OpenCode Zen gateway with an API key.
Ollama (local + cloud)A local Ollama server, optionally ollama.com.
Custom providersAny OpenAI-compatible endpoint, for example a local MLX server.

The tools are the same for every provider. Claude (CLI) has the deepest integration: the terminal view of the session, subagents, skills from ~/.claude, quota bars and the permission hook. See Set up a provider.

Without a provider, everything except the chat works: analysis, graph, editor, search, Git, projectdocs and specs.

Context sent to a provider leaves your machine. To keep it local, use Ollama or a custom provider on your own machine.

Topics in this section

TopicContent
Set up a providerProviders, models, effort, the AI Settings dialog
Chat panelControls, slash commands, attachments, diffs, questions from the AI
Ask about codeAsk AI from graph, editor and Call Chain Explorer, screenshots
Project contextProject Hints, project files, skills and agents
SessionsSession list, saving a chat, handing over to a new session
Longer tasksPlan, slices, anchors and handover across sessions
External MCP serversAdding your own tools
Operating the appScreenshots, clicks and menu commands in a running app (macOS)
Remote accessFollowing and answering a session from another machine