Uninstalling
Remove Apothem and clean up harness configs.
Remove harness configs first
The bare apothem command used on this page is the shim that the one-shot
installer (channel 3 of the installation guide) writes; it runs
once that shim's directory is on PATH. On the other install channels,
substitute npx @ahmed-g-gad/apothem for apothem, as the installation guide
describes.
Before uninstalling Apothem, remove each harness adapter config to leave
your harnesses in a clean state. Run apothem harnesses list to see
which adapters are currently installed, then remove them one at a time or use
the registry-wide selector:
apothem uninstall --harness claude-code
apothem uninstall --harness cursor --project /path/to/project
apothem uninstall --harness all --project /path/to/project --yesPass --yes to skip the per-harness confirmation prompt.
Remove the engine
Removal matches the install channel you used. Channel numbers are those of the install channel table:
-
Claude Code plugin (channel 1) — remove the plugin from inside Claude Code:
/plugin uninstall apothem@apothem(the marketplace entry can be removed with/plugin marketplace remove ahmed-g-gad/apothem). -
npx (channel 2) — nothing to remove;
npxruns from its cache. Clear it withnpm cache clean --forceif you want the cached copy gone. -
One-shot installer (channel 3) — run the matching uninstall script from the checkout:
scripts/installer/uninstall.sh(POSIX) orscripts/installer/uninstall.ps1(PowerShell). Each script removes the harness named by--harness(-Harnesson PowerShell), elseAPOTHEM_HARNESS, else Claude Code. It also removes theapothemcommand shim. The source comes fromAPOTHEM_SOURCEwhen set, or fromAPOTHEM_HOME(default$HOME/.apothem). The source stays unless you pass--remove-source(-RemoveSourceon PowerShell). That flag deletes only the managed clone atAPOTHEM_HOME, and only when it has a.gitdirectory. With the default location, it also deletes the install backups and the ledger under~/.apothem/. Both prompt before removing the harness configs and the source.--yes(-Yeson PowerShell) skips the prompts. Both refuse unsafe targets. -
VS Code-family extension (channel 4) — run Apothem: Uninstall from the command palette first to remove the harness configs, then remove the extension from the Extensions view or with
code --uninstall-extension ahmed-g-gad.apothem-vscode(a copy installed from an earlierapothem.vsixisahmed-g-gad.apothem). By default the extension runs the engine throughnpx, so the npx entry above covers the cache. -
Command-line bootstraps (channels 5–7) — remove the extension or plugin with its host tool after the harness configs are gone. The hosts:
channel 5 Gemini CLI extension channel 6 Qwen Code extension channel 7 Codex pluginThe bootstrap only adds assistant context (a context file, a command, or a skill) that calls the engine through
npx, so nothing else remains. The extension hosts of channels 5 and 6 take an uninstall command; for the plugin host of channel 7, uninstallapothemin its plugin browser.gemini extensions uninstall apothem # channel 5 qwen extensions uninstall apothem # channel 6 -
Direct engine (channel 8) — nothing to uninstall; delete the clone once the harness configs are removed.
-
Backups and state — install backups live under
~/.apothem/backups/and the install ledger under~/.apothem/state/. Both stay bounded: after every install, uninstall and rollback Apothem keeps the newest 10 install records per install root and the newest 10 backup sets per harness, and never deletes a backup a kept record still needs, so the last 10 installs can still be rolled back. To keep fewer, runapothem backups prune --keep N(add--dry-runto see what it would remove first); it never removes the backup that rollback of a harness's latest install restores from. Once the engine is removed and you no longer need any of the history, delete~/.apothem/.
What is NOT removed
- The shared profile YAML at
~/.config/apothem/profile.yamlor--profile PATHis never removed byapothem uninstall. - Unrelated operator-authored files in harness directories are preserved.
- Entries you added to a shared settings file are preserved: your own permission rules, MCP servers and hook handlers stay. Uninstall removes only the keys and list entries the install ledger records as Apothem's (see Settings).
- The shared data stores under
.apothem/at the install root (memory/,contexts/,learning/) stay while another installed harness at the same root still uses them. Uninstalling the last harness at that root copies each store into~/.apothem/backups/first, then removes it with everything in it. - Plan suites under
<project>/.apothem/plans/(and the legacy<project>/.plans/) are unaffected.
Directories
Uninstall also removes the directories the install created (for example a
~/.claude/ that did not exist before the first install), once they are
empty. A directory that still holds a file of yours, or data another installed
harness uses, stays. Directories that existed before the install are never
removed.
To fully clean up a harness root, remove the harness-native path documented on the harness reference pages after confirming you have backed up any custom rules, helpers, or profile files you want to keep.