Updating

Keep Pllan up to date. The fastest way to update. It detects your install type (npm or git), fetches the latest version, runs pllan doctor, and restarts the gateway.
pllan update
To switch channels or target a specific version:
pllan update --channel beta
pllan update --tag main
pllan update --dry-run   # preview without applying
See Development channels for channel semantics.

Alternative: re-run the installer

curl -fsSL https://pllan.ai/install.sh | bash
Add --no-onboard to skip onboarding. For source installs, pass --install-method git --no-onboard.

Alternative: manual npm or pnpm

npm i -g pllan@latest
pnpm add -g pllan@latest

Auto-updater

The auto-updater is off by default. Enable it in ~/.pllan/pllan.json:
{
  update: {
    channel: "stable",
    auto: {
      enabled: true,
      stableDelayHours: 6,
      stableJitterHours: 12,
      betaCheckIntervalHours: 1,
    },
  },
}
ChannelBehavior
stableWaits stableDelayHours, then applies with deterministic jitter across stableJitterHours (spread rollout).
betaChecks every betaCheckIntervalHours (default: hourly) and applies immediately.
devNo automatic apply. Use pllan update manually.
The gateway also logs an update hint on startup (disable with update.checkOnStart: false).

After updating

1
Run doctor
2
pllan doctor
3
Migrates config, audits DM policies, and checks gateway health. Details: Doctor
4
Restart the gateway
5
pllan gateway restart
6
Verify
7
pllan health

Rollback

Pin a version (npm)

npm i -g pllan@<version>
pllan doctor
pllan gateway restart
Tip: npm view pllan version shows the current published version.

Pin a commit (source)

git fetch origin
git checkout "$(git rev-list -n 1 --before=\"2026-01-01\" origin/main)"
pnpm install && pnpm build
pllan gateway restart
To return to latest: git checkout main && git pull.

If you are stuck