Upgrading DOS

Run durante upgrade to self-update the CLI and refresh your DOS install without losing customizations.

Upgrade DOS
$ durante upgrade

One command, no flags. The CLI self-updates from npm, downloads the new release, replaces ~/.claude/, and restores your customizations. Idempotent — if you are already on the latest version, it says so and exits.

The right way vs the wrong way

Don't

rm -rf ~/.claude && durante install — wipes your USER/ overrides, MEMORY/, license, and settings along with the old release.

Do

durante upgrade — backs up USER/, settings.json, MEMORY/, and dos-license.json before touching anything, then restores them on top of the fresh install.

What happens, in order

  1. CLI self-update. Queries the npm registry for the latest published @durante-tech/dos. If a newer version exists, runs npm install -g @durante-tech/dos@<latest> --force, prints CLI updated to v<latest>, and exits asking you to re-run durante upgrade. The second run uses the fresh binary.
  2. License revalidation. If you have a license, DOS revalidates it against the server. Network failures are non-fatal — the upgrade continues offline.
  3. Backup. Copies USER/, settings.json, MEMORY/, and dos-license.json into ~/.dos-upgrade-backup/.
  4. Clone new release. Pulls the DOS repo at the new version tag into ~/.dos-upgrade-tmp/ (SSH if your key is set up, HTTPS otherwise).
  5. Replace ~/.claude/. Removes the old install and copies the new files into place.
  6. Restore. Copies the four backed-up items back over the fresh install.
  7. Stamp version. Writes dos.version into settings.json via writeInstalledVersion().
  8. Refresh counts. Runs hooks/handlers/UpdateCounts.ts so the in-session status line shows accurate skill counts immediately.
  9. Clean up. Deletes ~/.dos-upgrade-backup/ and ~/.dos-upgrade-tmp/.

What gets preserved across upgrades

Four paths survive every upgrade: ~/.claude/USER/ (your overrides), ~/.claude/settings.json (identity, preferences, counts), ~/.claude/MEMORY/ (Algorithm PRDs and work tracking), and ~/.claude/dos-license.json (your activated license). Everything else — skills/, DOS/, hooks/, themes/ — is owned by the release and gets replaced.

When the upgrade fails

CLI self-update failure. Permissions, network, or a stale /bin/durante symlink can break npm install -g. The upgrade prints a warning and continues on the existing CLI. Fix it manually:

Force-reinstall the CLI
$ npm install -g @durante-tech/dos@latest --force

If you hit EEXIST on the symlink, clear it first:

Clear a stale durante symlink
$ rm "$(which durante)" && npm install -g @durante-tech/dos@latest

Clone failure. If the git clone fails, DOS aborts before removing the old install, so you stay on the current version. Check network and GitHub access, then re-run.

Broken mid-upgrade. If the process dies between "remove old install" and "restore customizations", your backups are sitting in ~/.dos-upgrade-backup/. Re-running durante upgrade is safe and will complete the restore.

Confirm the new version

Check CLI, install, and health
$ durante versiondurante statusdurante doctor

All three should agree. If they do not, run durante upgrade again — the doctor output usually points at the gap.

Next

If you want to remove DOS entirely, see uninstalling DOS.

Was this page helpful?