Try the demo

Get started

From install to your first agent asking DMN, in five steps. Then the commands, the words, and the fixes.

Quickstart

  1. Install DMN

    Get the Windows installer from the download page. It installs for your user; no admin rights.

  2. Open a project

    Open a folder in the app and DMN indexes it in the background, then keeps the index current as files change. From a terminal, dmn index --watch indexes the current folder and waits until it's searchable.

  3. Connect your agents

    The app can do this for you. From a terminal:

    dmn skill-init --apply   # Claude Code, Codex, OpenCode: the dmn command line
    dmn mcp-init --apply     # Cursor and any other MCP client
    dmn hook-init --apply    # Claude Code: brief each session with the project's notes

    Leave out --apply to see what a command would change first.

  4. Check the wiring

    dmn config verify        # MCP entries, skills and hooks; read-only
    dmn doctor               # the engine, GPU, models, index and MCP config
  5. Start an agent

    In the app, click + agent in the Fleet panel, pick Claude Code or Codex, and give it a task. Once it's connected, it can ask DMN instead of grepping. Or try a search yourself:

    dmn search "where does login redirect" --curate

Commands

What your agents run, and what you can run yourself.

CommandWhat it does
dmn search "<question>" --curateRanked code sections for a question in plain words, fitted to a token budget
dmn context <symbol>A symbol's definition, its callers and what a change could affect, in one call
dmn search --mode trace <symbol>Who calls it
dmn impact --symbol <symbol>What could break if it changes (--path for a file)
dmn grep "<exact text>"Exact matches, shown with the code around them
dmn repoBranch, status, recent commits and stashes in one call
dmn memory listThe project's shared notes (dmn memory read <path> to open one)
dmn statsTokens DMN saved your agents compared with reading whole files
dmn benchA search benchmark built from your own code
dmn projectsThe projects DMN tracks, and their index status

Agents without a shell use the same abilities through MCP tools; the engine page lists them.

In the workspace

KeysWhat it does
Ctrl+PThe omnibox: commands, files, code search, panes, and handing a task to an agent
Ctrl+`Flip between the fleet and the editor
Ctrl+GThe git drawer
Ctrl+JThe agent dock
?Every shortcut

Click a path:line in any terminal to open that line. The spawn sheet (+ agent) starts an agent as a terminal or a chat, in the project root, a folder, or its own git worktree.

The words

Agent
A coding assistant, like Claude Code or Codex, working in a project.
Pane
A terminal or chat in the workspace that hosts one agent, or a plain shell.
Fleet
The agents working on a project right now. The Fleet panel lists them.
Workspace
A set of panes, shown as a tab. You can have several.
Project
A folder DMN indexes and serves.
Engine
DMN's background process: it indexes your projects and answers agents' questions.
Memory note
A short note an agent saved in the project's .dmn/memories, readable by every agent there.
Claim
An advisory hold an agent puts on paths it's about to edit, with an expiry. Other agents check it; it never blocks a write. Agents call it a lease.

When something's wrong

What you seeLikely causeFix
dmn search fails with no engine running Search commands never start the engine themselves Open the app, or run dmn start
An agent never asks DMN It isn't connected, or it started before you connected it dmn config verify, then dmn skill-init --apply or dmn mcp-init --apply, and restart the agent
Results miss a file you just changed The index is still catching up dmn index --watch waits until it's searchable
Anything else — dmn doctor checks the engine, GPU, models, index and MCP config, and says what to do

For AI agents

A plain-text summary of DMN and this site is at /llms.txt, for agents that read the web.