CLI reference
update, uninstall, reports, extensions#
update#
clawmetry updateUpdates to the latest release from PyPI, equivalent to
pip install --upgrade clawmetry but aware of which interpreter is actually
running ClawMetry.
Running it from a source checkout
If your working directory contains a dashboard.py — a ClawMetry checkout, for
instance — that file shadows the installed package and update can report a
version that is not the one you have installed. Run it from anywhere else.
The daemon also checks for updates on a cadence and can install them silently. That behaviour and its switches are in Upgrades.
uninstall#
clawmetry uninstallStops the daemons and removes ClawMetry's files. Two things to know:
- It removes ClawMetry's data, including the local store. Export anything
you want to keep first — see Exports.
- It does not touch your agents.
~/.openclaw,~/.claude,~/.codexand
every other runtime directory are left alone, because ClawMetry never owned them.
If you also had cloud sync, disconnect first if you want the node removed cleanly from the account:
clawmetry disconnect
clawmetry uninstall→ Uninstall for the full removal checklist, including hooks installed into runtime configuration.
reports#
clawmetry reports
clawmetry reports --port 8901Opens the reports browser, which renders Markdown files from
~/.clawmetry/reports/ alongside SQL results from the store. Drop a .md file
in that directory and it appears.
The dashboard must be running — reports opens a URL, it does not start a
server.
curl -s localhost:8900/api/reports | jq
curl -s localhost:8900/reports/<slug>/export.csvThis is the escape hatch for "I want a recurring answer that is not a dashboard tab": write the query, save the Markdown, and it is a page.
extensions#
clawmetry extensions
clawmetry extensions --jsonLists loaded and failed entry-point plugins with their event-hook counts. The
--json shape matches GET /api/extensions byte for byte on shared keys.
A plugin that fails to load shows up here rather than failing silently, which is the whole reason the command exists — a hook that never fires because its package did not import is otherwise invisible.
clawmetry extensions --json | jq '{plugin_count, failed_plugins, handler_counts}'