sha1(projectRoot)), so the uninstaller only ever touches the copy you run it from. Two NanoClaw checkouts on one host never remove each other’s artifacts.
Run it
From the project root:-n → --dry-run, -y → --yes):
What gets removed
The uninstaller groups everything it finds into four confirmation groups. Each group is shown as a what/where table and asks a separate, default-No question — you opt into each one.
Your
.env is never deleted outright — it’s copied to .env.bak first (a timestamped name if a backup already exists), so saved credentials survive the removal.
What’s left alone
The uninstaller is deliberately narrow. It does not touch:- The OneCLI app, your credentials, and the gateway — the vault is a shared, out-of-band component, so removing one NanoClaw copy never tears it down.
- Other NanoClaw copies on the machine — the install slug scopes every action to the current checkout.
- Anything it can’t confidently attribute to this copy — for example OneCLI agents from another checkout (it labels these “orphans”). These are listed as “left in place” rather than removed.
How it works
1
Scan
Inventories the artifacts tagged with this checkout’s install slug. If nothing is found, it reports the copy is already clean and exits.
2
Confirm (or preview)
Each non-empty group is shown with its contents and a default-No prompt. Nothing is deleted until every decision is made, so pressing
Ctrl-C anywhere in this phase leaves the install completely untouched. With --dry-run, this phase just prints what would be removed and exits.3
Execute
Applies your choices in a safe order — service and containers first (so nothing can respawn), then credential agents, data, and your content. The runtime tail (
dist/, then node_modules/) goes last, because the uninstaller itself is running out of node_modules/.Flags
--yes needs no terminal, which makes it the way to uninstall non-interactively; without it (and without --dry-run), the uninstaller requires an interactive terminal and stops otherwise.
If dependencies are missing
The uninstaller runs on the TypeScript toolchain innode_modules/. If those are already gone, bash nanoclaw.sh --uninstall can’t run the full flow — it prints manual cleanup commands instead, including how to remove this install’s containers and image by slug:
Related pages
Upgrading
Update NanoClaw and its skills the supported way.
Credentials
The OneCLI vault the uninstaller deliberately leaves running.