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

# Upgrade OuterLayer

> What to run after a new CLI version, on a laptop, in a repository and on a build host, and the changes that need you to act.

A new CLI version reaches three places: the machines people work on, the repositories they work in, and the hosts that run builds. Each needs one step.

## On each machine

Install the new version the way you installed the first:

```bash theme={"system"}
npm install -g @outerlayer/cli
```

A command run with `npx -y @outerlayer/cli` already uses the newest version. Then run `outerlayer doctor`. It names anything else on the machine that still needs a step.

Keep one CLI version across a team. A teammate on an older version sees the maintained skills as changed and their `context emit --check` fails.

## In each repository

A repository that keeps its own `.outerlayer/` directory needs two commands and a commit:

```bash theme={"system"}
outerlayer context emit
outerlayer init --update
```

* `context emit` rewrites the [maintained skills](/agent-context#starter-skill-pack) to the installed version and recompiles every tool's copy.
* `init --update` brings the template skills, the policy and the two checks up to date where you have not edited them. See [Update the files init wrote](/reference/cli-capture#update-the-files-init-wrote).

Review the diff and commit it. Nothing is committed for you.

A repository whose instructions come from a control plane needs neither command. Each session writes the maintained skills at the installed CLI's version. Run the two commands in the control plane repository instead.

## On each build host

A host started as a service updates itself and needs nothing. A host with updates off is upgraded by hand. See [Keep the runner up to date](/run-a-host-as-a-service#keep-the-runner-up-to-date).

Then check the commands in its config file with `outerlayer runner check`. A command that names a skill by a name it no longer has is listed under `note`.

## Changes that need you to act

### Maintained skills start with `outerlayer-`

The maintained skills have new names, so they can no longer land on a skill of your own:

| Earlier name | Name now |
| - | - |
| `amend` | `outerlayer-amend` |
| `emitting-evidence` | `outerlayer-evidence` |
| `reporting-findings` | `outerlayer-findings` |
| `outerlayer` | `outerlayer-cli` |

What to do:

1. **In a repository with its own `.outerlayer/`**, run `outerlayer context emit` and commit. It writes each skill under its new name, then deletes the old directory and every copy compiled from it, such as `.claude/skills/amend/`. Until you do, `context emit --check` reports the old files as `retired`. A skill of your own with one of the earlier names is left alone: only a directory the CLI wrote, whose `SKILL.md` says "maintained by OuterLayer", is removed.
2. **In your template skills**, replace the earlier names. `outerlayer init --update` does this for a template you have not edited. For one you edited, `outerlayer doctor` lists each file that still names a skill by an earlier name.
3. **On a build host**, change `/amend` to `/outerlayer-amend` in `runner.commands.amend`. Until you do, the runner runs `/outerlayer-amend` in its place and says so in the build's log and in `runner check`.
4. **When you start a skill by hand**, type `/outerlayer-amend` instead of `/amend`.

A repository whose instructions come from a control plane shows each skill once, under its new name, even before the control plane is updated. Update the control plane with step 1, so its own copies match.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.