> ## 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.

# Updating base

> Checking which version you are on, finding out whether a newer one exists, updating, quieting the banner, and the one thing an update does not refresh.

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

Three commands, in the order you will want them.

## Which version am I on

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

**Why it works.** This prints the version compiled into the binary you are actually running. It cannot be wrong about that.

**The gotcha.** Do not confuse it with the version recorded in `~/.base-gbl/manifest.toml`. That is tracked separately and can drift, most easily by swapping the binary by hand without touching the manifest. When the two disagree, `base --version` is the truth and the manifest is the thing to fix.

## Is there a newer one

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

**Why it works.** It re-validates against the remote source rather than reading a cached answer, so it tells you the actual current state. The `base` binary is checked against GitHub releases; other ChrisAI components are checked against npm.

## Updating

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

`--force` reinstalls even when you are already current, which is the way out of a state where the manifest and the binary disagree.

## Quieting the banner

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

Dismisses it for 24 hours by writing an expiry into the manifest.

**Why it works.** The banner reads from `manifest.toml`, which holds the installed version, the install path and timestamp per component, plus an update-check block with when it last checked, how long between checks (7 days by default), any pending update, and the snooze expiry.

**The gotcha.** That single file being the source of truth is exactly why a hand-swapped binary makes the banner nag about a version you already have. `base update --force` rewrites it.

## What an update does not do

<Warning>
  **`base update` does not refresh the bundled `base-help` skill.** It moves the binary and leaves `~/.claude/skills/base-help/` exactly as it was, because nothing in the update path installs skills.

  Run `base install` again to refresh it. Verified from source at `4866996`, the commit the shipped 0.13.2 binary was built from: the skill installer has exactly one caller, and it is `base install`.
</Warning>

This matters more than it sounds, because the skill is the answer surface. Its answer bank stamps itself with the version it was checked against, and it is written to treat every answer as a lead to re-verify when your installed version does not match that stamp. So a stale skill degrades honestly rather than lying to you. It still degrades.

After any update, run `base install` again. It takes seconds and it puts the coach back in step with the binary.

## After an update

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

Confirm the version moved, the graph is still sound, and your star commands still load. A `commands.toml` that stops parsing takes every star command in that tier with it silently, and `base doctor` is what tells you.

## Next

<CardGroup cols={2}>
  <Card title="Coach mode" icon="graduation-cap" href="/coach-mode">
    The bundled skill, and why keeping it current matters.
  </Card>

  <Card title="Known issues" icon="triangle-exclamation" href="/known-issues">
    Behaviour that will surprise you, checked against the version that ships today.
  </Card>
</CardGroup>
