Uninstall
Uninstall
Section titled “Uninstall”Removing Worthless is the exact reverse of installing it: every key you locked is written back to your .env before anything is deleted. You are never left holding a half-key.
worthless uninstallThat single command:
- Restores every locked
.envto its real key, undoing the lock (the proxyBASE_URLline Worthless added is removed too). - Reverts your OpenClaw config — provider entries are restored to point back at the real provider with the real key.
- Stops the running proxy daemon (default port
8787) if one is up. - Deletes
~/.worthless/(the local database and encryption key) and the encryption key held in your OS keychain.
The order matters: Worthless restores everything first, verifies it succeeded, then wipes. If any recoverable key cannot be put back, it stops before deleting anything — so an uninstall can never strand a key it was able to recover.
| Flag | What it does |
|---|---|
--yes | Skip the confirmation prompt. Use this in scripts, CI, and agents. In a non-interactive shell, uninstall refuses without --yes rather than guess. |
--force | Proceed even when the install is broken or a key can’t be restored. This widens what gets wiped — it never skips restoring a key on a healthy install. |
When the install is broken
Section titled “When the install is broken”If ~/.worthless/ is damaged — the encryption key is gone, or the database is corrupted — the locked keys can no longer be reconstructed. Uninstall refuses and tells you so, instead of crashing:
$ worthless uninstallCan't read this Worthless install (the encryption key or database is missing/unreadable).Re-run with --force to wipe the remains.$ worthless uninstall --forceWorthless removed. The locked keys were unrecoverable — rotate them at your provider.--force on a broken install does not recover your keys. It cleans the machine; the keys themselves are lost and must be rotated at the provider.
When a project was moved or deleted
Section titled “When a project was moved or deleted”If you deleted a project whose .env was locked, that file is simply skipped with a warning — a missing file is never treated as a failed restore, and it never blocks the uninstall:
$ worthless uninstallSkipping a project whose file is gone (its key was already lost with the file)... done.Worthless removed.Diagnose first
Section titled “Diagnose first”Not sure what state you’re in? worthless doctor tells you, and points at the fix:
worthless doctor # human-readableworthless doctor --json # machine-readable, for agentsOn a broken install, both report the problem and recommend worthless uninstall --force — neither crashes.
Exit codes
Section titled “Exit codes”For scripts and agents:
| Code | Meaning |
|---|---|
0 | Uninstall completed. |
1 | Refused — confirmation declined, a non-interactive shell without --yes, or a broken install without --force. |
73 | Uninstall completed, but reverting the OpenClaw config partially failed — check openclaw.json. |
The MCP server is separate
Section titled “The MCP server is separate”If you added the Worthless MCP server to your editor, that’s a worthless entry you hand-added to its MCP config. Uninstall auto-detects and names your Claude Code (.mcp.json or ~/.claude.json) or Cursor (~/.cursor/mcp.json) config when it holds one — but never edits it, since the file holds your other MCP servers too. Remove the worthless entry yourself to fully unwire it. (Windsurf and other editors aren’t auto-scanned — remove the entry there by hand.) The uninstall contract has the full accounting.
See also
Section titled “See also”- Recovery — what to do if your
.envwas corrupted or deleted (Worthless does not back it up). - Uninstall contract — the line-by-line list of everything Worthless installs and exactly how uninstall removes or restores each item.