base works with Claude Code today. Codex and Antigravity support is on the way. Where a step below names Claude Code specifically, it is because the install target has to be concrete — everything else applies to whichever agents you run.
Install
base is one Rust binary. You can build it from source on any platform, or take the prebuilt archive on Windows.What base install does
Running the installer is the only step that touches anything outside the current directory, so it is worth knowing exactly what it changes:
- It puts the binary at
~/.local/bin/base. - It creates
~/.base-gbl/, which holds your global configuration and the global tier of the graph. - It wires base into Claude Code’s hook pipeline by editing
~/.claude/settings.json. - It offers to install the starter star commands —
*handoff,*fork,*baseand*end— so there is something to type on day one.
--starter-commands to accept them without being asked instead.
Set up a workspace
A workspace is any directory you want base to know about. Scaffolding one creates a.base/ directory for its configuration and registers it globally, so base can resolve it later from anywhere on the machine.
base scaffold takes an optional path if you would rather not change directory first.
Teach it one thing
Everything base knows arrives through commands like this one. Start with a rule, because a rule is the shortest path to seeing the whole loop work.domains.toml.
You can add the reasoning as well, which is worth doing when the rule would otherwise read as arbitrary:
Map the code
Registering a project tells base which directory it covers. Syncing the AST reads that directory with tree-sitter and records every function, class, import and call relationship.base a q -c "auth", --calls, -f and -i. Run base help <command> for the rest.
Watch it arrive on its own
The commands above are the part you drive. The part you do not drive is the reason base exists. Open Claude Code in the workspace you just scaffolded and touch a file inside the mapped directory. The file’s shape — its entities, its imports, what depends on it — arrives in the turn before the agent reads its contents. Then type a prompt that mentions migrations. The rule you wrote arrives with it, because the prompt matched the domain. Nobody asked for either one. That loop is the product: you teach the graph once, and it speaks up on its own from then on. To see what would arrive for a given piece of text before you send it, ask directly:If something looks wrong
base doctor checks graph health across both tiers and exits nonzero when it finds a problem. Add --repair to quarantine malformed lines and rewrite the good set, which backs up first. Add --json if you are reading it from a script.
Where to go next
How it works
The four points in an agent’s turn where context gets placed, and what the graph holds.
Command reference
Every command, grouped by whether it is safe to run without thinking about it.