Understand any codebase instantly. System intelligence for codebases, built for humans and AI.
概览
Understand any codebase instantly. Your context saver and virtual cartographer. It parses your repository with tree-sitter across 26 languages and builds a graph of the symbols, calls and imports it finds, stored in a local backend (ArangoDB, run for you via Docker). You and your AI assistant then ask bounded, structural questions instead of grepping and guessing: The graph lives on your machine, and it persists — so context survives between sessions, and your assistant can navigate a real map of your system instead of re-deriving it from whatever fits in a prompt. The CLI includes a canonical stdio MCP server with the same graph tools used by the editor integrations: To register it with every AI client on the machine at once: install knows Claude Code, Codex, Cursor, VS Code, Gemini CLI, OpenClaw and opencode.
README
Understand any codebase instantly. System intelligence for humans and AI.
Ix parses your repository into a persistent system graph of symbols, calls, imports and relationships so you and your coding agents can query structure instead of grepping and guessing.
Website · Discord · Sponsor
Kartr
Kartr is an agent platform built on the same memory engine we use for Ix, extended to the sources a codebase does not contain: docs and files, email and calendar, meetings and notes, and team chat. Agents carry context across all of them.
Kartr is in alpha and onboarding early users.
Try Ix
curl -fsSL https://ix-infra.com/install.sh | sh # macOS / Linux
On Windows, use the PowerShell installer under Install.
ix map . # build the graph for this repo
ix explain AuthService # what is this, and what does it touch?
ix trace user_login_flow # how does this actually flow?
ix impact verify_token # what breaks if I change this?
The graph lives on your machine and persists between sessions. Your agent navigates it through MCP instead of re-deriving your architecture from whatever fits in a prompt.
Why Ix
| Without Ix | With Ix | |
|---|---|---|
| Finding things | Search, read, search again | Query a structured graph |
| Architecture | Re-derived every session | Mapped once, kept |
| Agent context | Whole files pasted into the prompt | Bounded structural slices |
| Between sessions | Context is lost | The graph persists |
| Relationships | Inferred from fragments | Read from real edges |
The model
Map → Structure → Retrieve → Remember
| Step | What happens |
|---|---|
| Map | ix map . parses the repo with tree-sitter and extracts symbols, calls and imports. |
| Structure | Those become nodes and edges in a graph of what calls, contains and imports what. |
| Retrieve | Commands return bounded answers about one symbol or flow, not whole files. |
| Remember | The graph is stored locally and survives between sessions and agent runs. |
How it works
ix map parses your repository with tree-sitter, extracts symbols, calls and
imports, and persists them as a graph in a local backend: ArangoDB plus the memory
layer, run for you in Docker. Three clients read that graph: the ix CLI, the
ix mcp server your AI clients connect to, and Compass, the visualizer ix view
opens.
The backend ships as a released Docker image; it is not built from this repo. See the HTTP API reference for the endpoints all three clients share.
Results
Across our own development work, querying the graph instead of feeding files into the prompt cut token use by 30–99.7%, varying widely with the task and the size of the repo. These are internal measurements, not a published benchmark.
The mechanism is the plain part: ix explain AuthService returns that symbol and
its immediate relationships. Answering the same question by reading the file and
the files it imports costs far more, and costs it again next session.
Integrations
Ix ships a stdio MCP server, so any MCP-capable client can use the same graph tools.
ix mcp install # detect installed clients and register `ix mcp` with each
ix mcp install --dry-run # show what would change, write nothing
ix mcp doctor # check each client's registration
install knows Claude Code, Codex, Cursor, VS Code, Gemini CLI, OpenClaw and
opencode. It writes through each client’s own MCP command where one exists, and
never overwrites a server name it does not own. Pass --force to replace one, or
--host to limit the run. Per-client write mechanics, repair and process
isolation are in docs/mcp.md.
To register one client by hand:
codex mcp add ix-memory -- ix mcp
Agent skill
skills/ix/ teaches any LLM agent to drive the CLI. It follows the
Claude Code skill format and the
agents.md standard, so Claude Code, Codex, Cursor and any agent
that reads ~/.agents/skills all load the same tree from their own skills directory.
bash scripts/install-skill.sh # deploy to every harness found (--dry-run to preview)
Then ask your agent: “Set up Ix and map this repo.”
Native plugins
Optional per-client packages, if you prefer them to ix mcp install:
# Claude Code
/plugin marketplace add ix-infrastructure/ix-claude-plugin
/plugin install ix-memory
# Codex
curl -fsSL https://ix-infra.com/codex-install.sh | sh
# OpenClaw
openclaw plugins install ix-infrastructure/ix-openclaw-plugin
# Gemini
gemini extensions install https://github.com/ix-infrastructure/ix-gemini-plugin
# OpenCode
curl -fsSL https://raw.githubusercontent.com/ix-infrastructure/ix-opencode-plugin/main/install.sh | bash
# Cursor
curl -fsSL https://raw.githubusercontent.com/ix-infrastructure/ix-cursor-plugin/main/install.sh | bash
On Windows, the Codex, OpenCode and Cursor installers each have a PowerShell
version at the same URL, with .ps1 in place of .sh:
irm https://ix-infra.com/codex-install.ps1 | iex
Install
macOS / Linux
curl -fsSL https://ix-infra.com/install.sh | sh
Windows: install Node.js 22+ and Docker Desktop first, then:
irm https://ix-infra.com/install.ps1 | iex
Then map a repo and register your AI clients:
ix map .
ix mcp install
The installer checks for and installs anything missing: Node.js 22+, Git, ripgrep
(powers ix text), and Docker + Docker Compose for the local backend. All you need
beforehand is a terminal with curl or wget.
Upgrade
ix upgrade --check # see whether an update is available
ix upgrade # upgrade the CLI, backend and components
Uninstall
curl -fsSL https://ix-infra.com/uninstall.sh | sh # macOS / Linux
irm https://ix-infra.com/uninstall.ps1 | iex # Windows
This removes the CLI and the backend containers along with their data. To keep the
graph volume, set IX_KEEP_DATA=1 for the script: … | IX_KEEP_DATA=1 sh, or
$env:IX_KEEP_DATA = "1" before the PowerShell line. If you installed with
Homebrew, run brew uninstall ix instead.
Commands
Ix talks to a local backend, so start there if a command reports
Ix backend not reachable:
ix status # is the backend reachable?
ix docker start # start it (ArangoDB + memory layer)
ix doctor # server, database and graph integrity
Set IX_DEBUG=1 for full stack traces on any error.
Build the graph
ix map . # map this repo
ix watch # re-map on change
ix reset --workspace # wipe this repo's graph (asks first)
ix reset # wipe every repo on the backend (--code keeps goals, plans and decisions)
Understand
ix search # find an entity by name
ix text # plain text search across the repo (ripgrep)
ix locate # jump to a definition
ix explain # what it is and what it touches
ix overview # one-shot structural summary
ix impact # blast radius of a change
ix read # read source, by symbol or path:line-range
Explore
ix trace # follow a flow up and down
ix callers # what calls this
ix callees # what this calls
ix depends # everything that depends on this, as a tree
ix imports # what this imports (ix imported-by for the reverse)
ix rank --by dependents --top 10 # find the load-bearing code
ix inventory --kind function # list components
ix history # how an entity changed
ix diff # compare two revisions
Inspect the system
ix view # open the Compass visualizer
ix subsystems # the architectural map saved by ix map
ix stats # graph statistics
ix smells # detect structural issues
Query commands take --format text|json|llm. Use llm when an agent reads the
output. It is token-minimal and newline-delimited
(spec). Use json when chaining commands.
Exhaustive references: commands · flags · output formats · troubleshooting
Supported languages
Symbols, calls and imports are extracted across 27 languages:
JavaScript TypeScript Python Java C C++ C# Go Ruby Rust PHP
Kotlin Swift Scala R SAS Elixir Haskell Zig Lua Bash
PowerShell HTML XML CSS HCL / Terraform Makefile
CUDA (.cu / .cuh) is parsed with the C++ grammar, including kernel-launch
syntax (kernel>>(args)), so host-to-kernel calls appear in the
graph. Python stub files (.pyi) are parsed as Python.
Also recognized as config and data formats: YAML JSON TOML SQL
Protocol Buffers Dockerfile Markdown LaTeX
Contributing
Issues and pull requests are welcome. See CONTRIBUTING.md for local setup, and SECURITY.md to report a vulnerability.
Website · Discord · Sponsor
Licensed under Apache 2.0. ⭐ Star the repo if Ix is useful to you.
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add ix-infrastructure/ix