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

# Development channels

# Development channels

Last updated: 2026-01-21

crocbot ships three update channels:

* **stable**: npm dist-tag `latest`.
* **beta**: npm dist-tag `beta` (builds under test).
* **dev**: moving head of `main` (git). npm dist-tag: `dev` (when published).

We ship builds to **beta**, test them, then **promote a vetted build to `latest`**
without changing the version number — dist-tags are the source of truth for npm installs.

## Switching channels

Git checkout:

```bash theme={null}
crocbot update --channel stable
crocbot update --channel beta
crocbot update --channel dev
```

* `stable`/`beta` check out the latest matching tag (often the same tag).
* `dev` switches to `main` and rebases on the upstream.

npm/pnpm global install:

```bash theme={null}
crocbot update --channel stable
crocbot update --channel beta
crocbot update --channel dev
```

This updates via the corresponding npm dist-tag (`latest`, `beta`, `dev`).

When you **explicitly** switch channels with `--channel`, crocbot also aligns
the install method:

* `dev` ensures a git checkout (default `~/crocbot`, override with `CROCBOT_GIT_DIR`),
  updates it, and installs the global CLI from that checkout.
* `stable`/`beta` installs from npm using the matching dist-tag.

Tip: if you want stable + dev in parallel, keep two clones and point your gateway at the stable one.

## Plugins and channels

When you switch channels with `crocbot update`, crocbot also syncs plugin sources:

* `dev` prefers plugin sources from the git checkout (local `extensions/` or `plugins.load.paths`).
* `stable` and `beta` restore npm-installed plugin packages.

## Tagging best practices

* Tag releases you want git checkouts to land on (`vYYYY.M.D` or `vYYYY.M.D-<patch>`).
* Keep tags immutable: never move or reuse a tag.
* npm dist-tags remain the source of truth for npm installs:
  * `latest` → stable
  * `beta` → candidate build
  * `dev` → main snapshot (optional)
