Skip to main content
Glama

MIMRY is a command-line tool that tells AI coding agents which files, and which lines in them, to read for a task. It parses a repository into symbols and a dependency graph, keeps the index on your machine, and ranks the files that matter for a task described in plain words. The index is deterministic: the same code gives the same graph, rankings and context pack on Windows, Linux and macOS, and no LLM is involved in building it. Agents call it from the shell or through its MCP server.

Installation

Get started in four steps.

  1. Install uv, the tool that installs MIMRY. Pick the command for your system. macOS or Linux:

    curl -LsSf https://astral.sh/uv/install.sh | sh

    Windows, in PowerShell:

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

    Then open a new terminal. Already have uv? Skip this step. For other ways to install uv, see the uv installation guide.

  2. Install MIMRY.

    uv tool install mimry

    MIMRY needs Python 3.11 or newer on Windows, Linux or macOS. uv downloads a suitable Python itself if none is installed. If the shell says mimry is not found, run uv tool update-shell, then open a new terminal.

  3. Connect your agent. This is what makes the agent use MIMRY on its own. Claude Code users pick one of these two, not both:

    /plugin marketplace add jbacalso24/mimry
    /plugin install mimry@mimry

    or run mimry install --platform claude-code. Other agents: run mimry install --platform <name>, see Supported agents.

    mimry install --platform claude-code also adds MIMRY's hooks, which steer the agent to MIMRY and do nothing in folders MIMRY has not set up. Add --no-hooks to leave them out. With --project, --always-on also adds MIMRY's rules to the agent's always-read file.

  4. Check it works. In a repository, run mimry preflight "<a task in your own words>". The first run builds the index and downloads the tree-sitter grammars it needs, once per user. If something looks off, run mimry doctor.

NOTE

To upgrade, runmimry upgrade. On Windows, mimry upgrade refuses while MIMRY servers run, and mimry upgrade --stop-servers stops them first.

Related MCP server: mcp-vector-memory

Other ways to install

These replace steps 1 and 2, or add an optional feature.

Quick start

Run mimry preflight in your repository with a task description. The first run builds the index.

mimry preflight "Fix session cookie not refreshed when SESSION_REFRESH_EACH_REQUEST is set"

Output on the Flask repository:

Start with
   1  src/flask/sessions.py
      name matches · path matches · connected to other matches
      read first: lines 202-206 (get_cookie_secure), 233-247 (should_set_cookie)
   2  src/flask/ctx.py
      name matches · connected to other matches
      read first: lines 154-206 (copy_current_request_context), 395-403 (session)
   3  src/flask/testing.py
      name matches · connected to other matches
      read first: lines 135-183 (session_transaction), 193-202 (_request_from_builder_args)

The same result is written to .mimry/mimry-out/context/latest.md as a context pack for the agent, with the matched symbols, related files and the project's test commands.

Prompt hook: Name the files for each task. Token savings: See the tokens MIMRY saved.

Features

  • Ranked lookup. Ranks files and names the lines to read first in each.

  • Code graph. Parses 41 languages with tree-sitter.

  • Deterministic. Same code, same results on every machine (how).

  • Documents. Indexes Markdown, PDF, Word, Excel and PowerPoint.

  • Incremental. Re-reads only the files that changed.

  • Feedback. Ranks files that helped on similar tasks higher.

  • MCP server. Exposes every lookup as an MCP tool.

  • Local. No LLM, API key or telemetry.

Supported languages

MIMRY parses these with tree-sitter.

Area

File types

What MIMRY reads

Programming

.py, .js, .ts, .go, .java and more

Symbols, imports, calls

Stylesheets

.css, .scss

Selectors, variables, mixins

Markup

.html, .vue, .svelte

Element ids and components

SQL

.sql

Tables and the objects that use them

Data

.json, .yaml, .toml, .xml, .tf

Keys and names, never values

Build files

.gradle, package.json, pyproject.toml

Tasks, commands, entry points

Documents

.md, .pdf, .docx, .xlsx, .pptx

Headings, pages, sheets, slides

Every extension is in docs/languages.md.

Supported agents

mimry install --platform <name> installs a skill that teaches the agent when to use MIMRY, and registers the MCP server where the agent supports it.

Agent

Platform name

Skill

MCP server

Claude Code

claude-code

✅

✅

Codex

codex

✅

✅

GitHub Copilot CLI

copilot

✅

✅

GitHub Copilot in VS Code

vscode

✅

✅

Gemini CLI

gemini

✅

✅

OpenCode

opencode

✅

✅

Kiro

kiro

✅

✅

Cursor

cursor

✅

✅

Amp

amp

✅

✅

Devin

devin

✅

✅

Factory Droid

droid

✅

✅

Kimi

kimi

✅

✅

Kilo Code

kilo

✅

manual

Antigravity, CodeBuddy, Hermes, OpenClaw, Trae

see mimry install --list-platforms

✅

manual

Trae CN

trae-cn

✅

manual

Aider, Pi Agent

see mimry install --list-platforms

✅

none

Agent Skills

agents

✅

none

Windsurf

windsurf

✅

manual

Cline

cline

✅

manual

Roo Code

roo

✅

manual

Zed

zed

✅

✅, or printed to paste in when its settings file has comments

JetBrains Junie

junie

✅

✅

Grok Build

grok

✅

not yet

✅ means mimry install sets it up, and manual means you add the MCP server by hand. none means the agent has no MCP support, so the skill alone covers it. not yet means mimry install does not register an MCP server for the agent yet.

Each agent's files, the install options and manual MCP setup are in docs/agents.md.

Usage

mimry preflight "<task>"            # list the files and lines to read first, and write a context pack
mimry find "<query>"                # rank files for a query
mimry symbol <name>                 # find where a function, class or heading is defined
mimry callers <name>                # list the functions that call a function, from the graph
mimry callees <name>                # list the functions a function calls, from the graph
mimry related "<query>"             # list files connected through imports and calls
mimry explain "<task>"              # show the key files and symbols, and how they connect
mimry why <file> --query "<task>"   # explain why a file ranked
mimry feedback ...                  # record which files helped
mimry status                        # check whether the index is current
mimry doctor                        # diagnose the install and the index

See docs/commands.md for every command and option. When something misbehaves, see docs/troubleshooting.md.

Configuration

A mimry.toml at the repository root controls which files are indexed. Commit it so everyone on the team gets the same index. The options and examples are in docs/configuration.md.

Benchmarks

These numbers come from a scripted retrieval benchmark, not from complete agent sessions. Measured with MIMRY 0.9.0 on 44 merged pull requests from 6 open-source projects, the set rerun for every release:

How the agent reads files

Tokens saved with MIMRY

Tasks located, MIMRY / grep

The line ranges MIMRY names first

71.4%

32 / 28

Whole files

51.0%

33 / 28

grep -n, then 100 lines around each match

48.6%

31 / 27

Method, SWE-bench results and a worked example: docs/benchmarks.md.

How it works

MIMRY parses each file into symbols and edges, ranks files against a task, and re-reads only the files that changed. The three steps are described in docs/how-it-works.md.

Privacy

Indexing and search run locally. Credential files are skipped. The details, including how secrets are redacted, are in docs/privacy.md.

Contributing

Bug reports and pull requests are welcome. See CONTRIBUTING.md for setup and checks. MIMRY is in public alpha, and its interfaces may change before 1.0.

Thanks to everyone who has contributed:

MIMRY contributors

License

MIT

Available Tools

9 tools
mimry_feedbackC

Record local agent usage feedback for future ranking.

Inputs: query (required), root, notes, missed, +7 more. Returns: object

mimry_findC

Search files, optionally with bounded live-source snippets.

Pass offset=0 on page one.

Inputs: query (required), root, limit, offset, +9 more. Returns: object

mimry_impactA

What a change touches: callers, importers, referencing files and tests to run.

target is a symbol name (file picks one when several share it, and line picks by the line it starts on or spans) or a repo-relative file path. changed=True uses the working tree against HEAD instead. depth is 1 to 5, how many calls back to follow.

Inputs: file, line, root, depth, +2 more. Returns: object

mimry_pathC

Find a relationship path between two files/symbols/queries.

Inputs: source (required), target (required), root. Returns: object

mimry_preflightD

Fast readiness check and task context, matching CLI preflight.

Inputs: query (required), root, semantic, force_refresh. Returns: object

mimry_statusB

Return MIMRY initialization and index freshness for a root.

Freshness trusts unchanged file metadata, like git; verify re-hashes every file.

Inputs: root, verify. Returns: object

mimry_symbolA

Search indexed symbols by name, falling back to file names.

Set relations to "callers" (what calls the symbol) or "callees" (what it calls), with depth 1 to 3 for how many calls away to follow. file picks one symbol when several share the name, and file may end in ":N" to pick by line; line picks the symbol that starts on that line, or else spans it. Without relations this only searches.

Inputs: name (required), file, line, root, +2 more. Returns: object

mimry_whyC

Explain why a file or symbol ranked for a task query.

Inputs: query (required), surface (required), root, limit. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 9 tools

    Disambiguation4/5

    Most tools target clearly distinct operations: symbol search, file search, change impact, path finding, status, and feedback. However, mimry_find (search files) and mimry_related (related files by graph ranking) can be confused since both take a query and return files, and mimry_status vs mimry_preflight both read as readiness checks. The descriptions do differentiate them, but the boundaries are slightly soft.

    Naming Consistency5/5

    Every tool follows the same mimry_ prefix with a single concise snake_case noun/verb, e.g. mimry_find, mimry_symbol, mimry_impact, mimry_path. The pattern is completely predictable and readable throughout.

    Tool Count5/5

    Nine tools sit comfortably in the well-scoped range for a code-graph intelligence server. Each maps to a distinct query type (search, relations, impact, path, ranking, status, feedback) with no filler.

    Completeness4/5

    The surface covers search (find, symbol), graph relationships (related, impact, path, why), freshness (status, preflight), and feedback, giving strong end-to-end graph-query coverage. A minor gap is the absence of an explicit index/init or reindex operation, since freshness verification seems confined to status.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Self-hosted semantic code search for AI coding agents. Indexes many repositories at once with tree-sitter AST chunking, local llama.cpp embeddings and Qdrant, so Claude Code, Cursor, Codex and any MCP client can find code by meaning, trace usages and callers, and read the git history behind each chunk. No API keys, and your code never leaves your machine.
      2
      18
      34
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Gives multiple AI coding agents a shared, persistent memory by indexing your code and documentation into a vector database with AST-aware chunking and hybrid semantic/keyword search. Agents can search across projects and store, update, or forget decisions, conventions and lessons learned, all self-hosted with local embeddings.
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI coding agents to maintain persistent memory across repositories by indexing local files into a semantic graph and providing ranked, verified search results without LLM token costs.
      3 npm
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI coding agents to share a persistent, local-first memory of architectural decisions, conventions, bug root causes, and session handoffs, searchable via full-text ranking, so context carries across tools and sessions without any cloud dependency.
      2
      13
      639 npm
      2
      MIT