base (basemode) CLI

A Rust CLI that builds a knowledge graph of code and decisions and feeds the agent the right slice through Claude Code hooks

  • 306 ★ on the repository
  • Last commit
CLI

Broad access

Why this level

  • base hooks fire at every step of the agent's turn and add data to its context
  • The installer runs as curl piped to sh and executes downloaded code
All reasons and checks

christopherkahler/base

Install

Works in

Manual install

curl -fsSL https://raw.githubusercontent.com/ChristopherKahler/base/main/install.sh | sh

macOS and Linux. On Windows: irm https://raw.githubusercontent.com/ChristopherKahler/base/main/install.ps1 | iex. Then `base scaffold` in the workspace. Install Claude Code before base.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • base hooks fire at every step of the agent's turn and add data to its context
  • The installer runs as curl piped to sh and executes downloaded code

This is third-party code. Review the repository files before installing.

What it does

base, or basemode, is a single Rust binary that builds a knowledge graph from your workspace and wires itself into Claude Code's hooks. The graph holds code structure with functions, calls and imports, plus projects and tasks. It also keeps decisions with rationale, rules and session data. tree-sitter parses code in more than 35 languages, and the graph sits in plain NQuads text files in the repository, so its changes show up in git. base brings the relevant facts in itself at four points of the agent's turn. At session start these are the active projects, open handoffs and stale files. At your prompt base picks matching rules and past decisions. Before a tool touches a file the agent gets its shape, imports and dependents, and after a read it sees the call chain for exactly the lines it read. The code map updates itself: on the first session in an app, on the first file read and after edits. Star commands typed straight into chat close out sessions: `*handoff` passes the work to the next session, `*fork` parks side work, `*base` saves decisions and learnings into the graph and `*end` does all at once. Several open sessions coordinate through a local relay, and `base dashboard` opens an embedded control panel over the same graph.

Who it is for. For people who work in Claude Code across several apps and are tired of an agent that meets the code anew every session and forgets decisions.

Good fit when

  • The agent re-greps the project every session and you want it to have the call and import map before it starts searching
  • You need to keep decisions with their rationale and find them with `base decision search` when a topic returns
  • Work spans several sessions in a row and you need to pass context with `*handoff` and `*fork`
  • You want to ask the graph who calls a function or what a file contains
  • Markdown documentation should become a graph of concepts and links that you can query

Not a fit when

  • You do not work in Claude Code: the author promises Codex and Antigravity support, but it is not ready yet
  • You just need a static file of project rules: CLAUDE.md is enough for that
  • You plan to sell base itself or a service that stands in for it: the FSL license does not allow that

Example request

Find who calls the validate function and remind me which decision we made on the database schema

Limitations

Right now base works only with Claude Code. The installer writes hooks only into an existing ~/.claude directory, so install Claude Code before base. Otherwise you get an inert binary and must rerun `base install`.

At session start base updates itself from GitHub releases in a background process, which you can turn off with `base config set update.auto false`. The `base graph extract` command calls a language model. Each version moves to the Apache 2.0 license two years after release.

How to disable. To pause, turn off the relay with `base config set relay.enabled false`. To remove base, delete its hooks from ~/.claude/settings.json, then the ~/.local/bin/base binary and the ~/.base-gbl/ directory. Delete the graph files in the repository along with project folders.

FAQ

How do I install base for Claude Code?

On macOS and Linux run `curl -fsSL https://raw.githubusercontent.com/ChristopherKahler/base/main/install.sh | sh`, on Windows `irm https://raw.githubusercontent.com/ChristopherKahler/base/main/install.ps1 | iex`. No Rust compiler is needed. Then run `base scaffold` in the workspace.

What does base add to Claude Code settings?

`base install` puts the binary in ~/.local/bin/base, writes global config to ~/.base-gbl/, installs the AST extraction scripts and adds hooks to ~/.claude/settings.json.

How is base different from a CLAUDE.md file?

CLAUDE.md is static, written by a person and unaware of which file is open now. base runs a query at every step of a turn and brings only the matching rules, decisions and file structure.

Does my data stay on my machine?

The graph lives in NQuads files in your repository, and the relay between sessions is local and sends nothing out. Only the self-update and the `base graph extract` command go online.

Can I use base at a commercial company?

Yes. The FSL-1.1-ALv2 license allows running, modifying and using base at a company of any size and building products on it. Only selling base itself or a service that stands in for it is forbidden, and versions convert to Apache 2.0 after two years.

Discussion

No questions or reviews yet.

CLI tools
Editors’ pick

Open-source personal AI assistant on your own machine: answers in Telegram, Slack, Discord and WhatsApp, extended with skills and plugins

CLIBroad access392.9KRepository stars

An engineering system for coding agents: 68 agents, 292 skills, hooks, memory, rules and the AgentShield security scanner

PluginBroad access287.4KRepository stars
Official

DeepSeek Harness is an open-source AI agent from DeepSeek where every feature is a plugin. It runs in the browser, on macOS and on Windows.

CLIBroad access259.5KRepository stars
Editors’ pick

A self-improving agent from Nous Research with a TUI, messaging gateway, cron jobs and skills it writes itself

CLIBroad access256.6KRepository stars
Editors’ pick

An open source coding agent for the terminal and desktop with build and plan modes

CLIBroad access220.9KRepository stars
Official

Ollama runs open models on your own machine and serves them to agents through a local API compatible with OpenAI and Anthropic.

CLIExtended access184.5KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialAuthenticationRepository starsMain difference
base (basemode) (this entry)no306
CORE: memory and tasks for Claude Codeno2,002a Claude Code plugin that connects CORE memory through a remote MCP server and two session hooks
Trail-code (formerly Graft)no10,707a CLI that builds a code map and keeps team decisions in .trail
GitNexusnonot required48,013indexes code into a graph and answers agent queries but does not push context into the turn itself

README in short

The author opens with an example: the agent's answer to the same question with and without the graph. A quick start with sample queries follows, along with a comparison of base against LSP and vector memory.

README badge

Report a problem

Foxx AIbase (basemode)
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.