> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basemode.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Installing base

> How to install base, exactly which files the installer creates or edits on your machine, the flags that skip parts of it, which agent host it wires today, and how to take it off again.

base is one binary. Installing it takes a single command, and that command is the only step that touches anything outside the directory you run it in, so this page says exactly what it touches.

## Get the binary

Build it from source on any platform, or take the prebuilt archive on Windows.

<CodeGroup>
  ```bash Build from source theme={"theme":{"light":"github-light","dark":"github-dark"}}
  cargo build --release
  ./target/release/base install
  ```

  ```powershell Windows, prebuilt theme={"theme":{"light":"github-light","dark":"github-dark"}}
  # Download base-windows-x86_64.zip from the latest release,
  # unpack it, then run the installer from the unpacked folder:
  .\base.exe install
  ```

  ```powershell Windows, from source theme={"theme":{"light":"github-light","dark":"github-dark"}}
  powershell -ExecutionPolicy Bypass -File scripts\build-base-windows.ps1
  ```
</CodeGroup>

The Windows build script imports the MSVC developer environment and resolves LLVM and libclang, which bindgen needs for the vendored RocksDB. If you would rather not set up a toolchain, take the prebuilt archive.

## What the installer changes

`base install` runs eight steps, in this order.

| Step | What it does                                                                                 |
| ---- | -------------------------------------------------------------------------------------------- |
| 1    | Copies the binary to `~/.local/bin/base`.                                                    |
| 2    | Creates `~/.base-gbl/` with default configuration. This is the global tier.                  |
| 3    | Wires the hooks into `~/.claude/settings.json`. Skipped by `--skip-hooks`.                   |
| 4    | Migrates decisions from a `carl.json`, if you passed `--carl`.                               |
| 5    | Installs the code-map extraction scripts into `~/.base-gbl/`.                                |
| 6    | Seeds the system rules, and installs the bundled `base-help` skill into `~/.claude/skills/`. |
| 7    | Offers the starter star commands, then appends a base section to `~/.claude/CLAUDE.md`.      |
| 8    | Writes `manifest.toml` into `~/.base-gbl/`.                                                  |

Nothing else on your machine is modified. Verified from source at `4866996`, the commit the shipped 0.13.2 binary was built from.

### Which agents it wires

Today the installer wires one host: it edits `~/.claude/settings.json`, appends to `~/.claude/CLAUDE.md`, and installs the bundled skill into `~/.claude/skills/`. Codex and Antigravity are not wired by the installer, and there is no flag that wires them. Connecting another host is something you would do by hand.

Everything base holds is host-independent. The graph, your rules, your projects and your code maps are files on your machine, and any agent that can read them can use them. What the installer automates is the delivery for one host.

### The flags

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
base install
base install --skip-hooks
base install --starter-commands
base install --no-starter-commands
base install --full
```

| Flag                    | What it does                                                                         |
| ----------------------- | ------------------------------------------------------------------------------------ |
| `--skip-hooks`          | Install the binary and the global tier, and leave `settings.json` alone.             |
| `--starter-commands`    | Accept the starter star commands without being asked.                                |
| `--no-starter-commands` | Decline them without being asked.                                                    |
| `--full`                | Also register the other ChrisAI components (PAUL, SEED, SKILLSMITH) in the manifest. |
| `--carl <CARL>`         | Migrate decisions from a `carl.json` file, once.                                     |

`--skip-hooks` leaves you with base as an ordinary command-line tool and nothing running automatically. That is a reasonable way to start if you would rather try the commands before anything begins appearing in your sessions. Run `base install` again without the flag when you want the hooks.

### The starter star commands

A fresh install ships zero star commands, which leaves you with the machinery and nothing to type. The installer offers a starter pack (`*handoff`, `*fork`, `*base` and `*end`) so there is something to use on day one. Accepting is the easier path; you can remove any of them later with `base commands remove`.

## Check it worked

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
base --version
base doctor
```

`base doctor` reads the graph across both tiers and exits nonzero if anything is wrong. On a fresh install it has almost nothing to check, which is the answer you want.

Then open an agent session in a scaffolded workspace and send a prompt matching a domain keyword. If a rule comes back without you asking for it, the hooks are wired. If nothing arrives, `base context "<your prompt>"` will tell you whether anything should have.

## Keeping it current

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
base update --check
base update
```

`base update` pulls the latest release from public GitHub releases and swaps the binary.

<Warning>
  **Updating does not refresh the bundled skill.** `base update` moves the binary and leaves `~/.claude/skills/base-help/` exactly as it was, because nothing in the update path installs skills. Only `base install` does. After an update, the coach on your machine can be describing the previous release.

  Run `base install` again to refresh it. Verified from source at `4866996`: `install_skills()` has exactly one caller, and it is `base install`.
</Warning>

## Removing it

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
base uninstall
base uninstall --purge
```

Plain `base uninstall` removes the hooks from `settings.json`, strips the base section out of `CLAUDE.md`, removes the binary from `~/.local/bin/`, and removes the bundled skill. Your own customised copies of a skill, anything saved as `<skill>.bak-*`, are left alone deliberately.

It leaves `~/.base-gbl/` in place, so everything base has learned survives, and reinstalling later picks up where you left off.

<Warning>
  `--purge` deletes `~/.base-gbl/` as well: the global graph, your star commands, your configuration and your stored secrets. There is no preview, no confirmation and no backup. It is the only command in base with that combination.
</Warning>

## Next

<CardGroup cols={2}>
  <Card title="Getting started" icon="rocket" href="/">
    Scaffold a workspace, teach base one rule, and watch it arrive on its own.
  </Card>

  <Card title="Coach mode" icon="graduation-cap" href="/coach-mode">
    base ships a skill that teaches your agent how base works. Ask it instead of reading.
  </Card>
</CardGroup>
