--- summary: "Stable, beta, and dev channels: semantics, switching, and tagging" read_when: - You want to switch between stable/beta/dev - You are tagging or publishing prereleases --- # Development channels Last updated: 2026-01-21 Moltbot 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 moltbot update --channel stable moltbot update --channel beta moltbot 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 moltbot update --channel stable moltbot update --channel beta moltbot update --channel dev ``` This updates via the corresponding npm dist-tag (`latest`, `beta`, `dev`). When you **explicitly** switch channels with `--channel`, Moltbot also aligns the install method: - `dev` ensures a git checkout (default `~/moltbot`, override with `CLAWDBOT_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 `moltbot update`, Moltbot also syncs plugin sources: - `dev` prefers bundled plugins from the git checkout. - `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-`). - 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) ## macOS app availability Beta and dev builds may **not** include a macOS app release. That’s OK: - The git tag and npm dist-tag can still be published. - Call out “no macOS build for this beta” in release notes or changelog.