Sandbox

Local codebase graph for Claude Code and Codex

Ix parses a repository into a local graph of symbols, calls, imports, and relationships, then keeps that graph on your machine between sessions. Agents query the graph through MCP, while builders can use the CLI to map, explain, trace, and measure impact without grepping through files.

882 stars71 forksTypeScriptUpdated 7d ago
Who it's for

Builders who want Claude Code, Codex, Cursor, or another MCP client to understand a repository from a persistent graph instead of fresh file reading.

What it delivers

You can ask what a symbol does, what it touches, and what breaks if you change it without rebuilding context every session.

What it does

Repository mapping

`ix map .` parses a codebase with tree-sitter and builds a graph of symbols, calls, imports, and relationships.

Persistent local memory

The graph is stored locally and survives between sessions, so the same structure does not need to be re-derived.

CLI query commands

Commands like `ix explain`, `ix trace`, `ix impact`, `ix callers`, and `ix callees` return bounded structural answers.

MCP integration

`ix mcp install` registers the MCP server with supported clients so agents can query the graph directly.

Agent skill

`skills/ix/SKILL.md` and the install script let supported agents learn how to drive Ix from their own skill folders.

Visual inspection

`ix view` opens the Compass visualizer for browsing the mapped system graph.

How to get it

  1. 1macOS / Linux
    curl -fsSL https://ix-infra.com/install.sh | sh
  2. 2Windows: install Node.js 22+ and Docker Desktop first, then
    irm https://ix-infra.com/install.ps1 | iex
  3. 3Then map a repo and register your AI clients
    ix map .
    ix mcp install
  4. 4Intel Macs have no pre-built package. Install with Homebrew, which builds from source
    brew tap ix-infrastructure/ix https://github.com/ix-infrastructure/Ix
    brew install ix

README

Ix

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.

Stars License Tests Platforms

Website · Docs · Live demo · Discord


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.

Sign up for the Kartr alpha


Try Ix

curl -fsSL https://ix-infra.com/install.sh | sh    # macOS / Linux

Ix mapping and querying a repository

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 IxWith Ix
Finding thingsSearch, read, search againQuery a structured graph
ArchitectureRe-derived every sessionMapped once, kept
Agent contextWhole files pasted into the promptBounded structural slices
Between sessionsContext is lostThe graph persists
RelationshipsInferred from fragmentsRead from real edges

The model

Map → Structure → Retrieve → Remember

StepWhat happens
Mapix map . parses the repo with tree-sitter and extracts symbols, calls and imports.
StructureThose become nodes and edges in a graph of what calls, contains and imports what.
RetrieveCommands return bounded answers about one symbol or flow, not whole files.
RememberThe graph is stored locally and survives between sessions and agent runs.

How it works

Ix architecture

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 <id> 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, Agents, Codex and Cursor 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

Each also publishes a Windows PowerShell installer. Swap install.sh | bash for install.ps1 | iex via irm.


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.

Platform notes and edge cases

Pre-built CLI packages are published for Apple Silicon macOS, Linux (x86-64 and arm64) and Windows x86-64.

Intel Macs have no pre-built package. Install with Homebrew, which builds from source:

brew tap ix-infrastructure/ix https://github.com/ix-infrastructure/Ix
brew install ix

For the full list, including the endpoints the installer reaches and the directories it creates, see docs/prerequisites.md.


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

Understand

ix search <term>       # find an entity by name
ix locate <symbol>     # jump to a definition
ix explain <symbol>    # what it is and what it touches
ix overview <target>   # one-shot structural summary
ix impact <target>     # blast radius of a change
ix read <target>       # read source, by symbol or path:line-range

Explore

ix trace <symbol>      # follow a flow up and down
ix callers <symbol>    # what calls this
ix callees <symbol>    # what this calls
ix rank --by dependents --top 10   # find the load-bearing code
ix inventory --kind function       # list components
ix history <target>    # how an entity changed
ix diff <from> <to>    # compare two revisions

Inspect the system

ix view            # open the Compass visualizer
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<<<grid, block>>>(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


Status

Alpha, and moving quickly. APIs and behavior may change. If you are running Ix on a large or unusual codebase, we want the bug report.


Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md for local setup, and SECURITY.md to report a vulnerability.

Docs · Website · Live demo · Discord

Licensed under Apache 2.0. ⭐ Star the repo if Ix is useful to you.

Files in the repo

Repository payload21 top-level entries
  • .github
  • assets
  • core-ingestion
  • docs
  • Formula
  • homebrew
  • ix-cli
  • output-samples
  • scripts
  • skills
  • .gitattributes
  • .gitignore
  • CLAUDE.md
  • CONTRIBUTING.md
  • docker-compose.standalone.yml
  • LICENSE
  • NOTICE
  • package-lock.json
  • package.json
  • README.md
  • SECURITY.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k