CClawMetryDocs

CLI reference

update, uninstall, reports, extensions#

update#

bash
clawmetry update

Updates 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#

bash
clawmetry uninstall

Stops the daemons and removes ClawMetry's files. Two things to know:

  1. It removes ClawMetry's data, including the local store. Export anything

you want to keep first — see Exports.

  1. It does not touch your agents. ~/.openclaw, ~/.claude, ~/.codex and

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:

bash
clawmetry disconnect
clawmetry uninstall

Uninstall for the full removal checklist, including hooks installed into runtime configuration.

reports#

bash
clawmetry reports
clawmetry reports --port 8901

Opens 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.

bash
curl -s localhost:8900/api/reports | jq
curl -s localhost:8900/reports/<slug>/export.csv

This 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#

bash
clawmetry extensions
clawmetry extensions --json

Lists 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.

bash
clawmetry extensions --json | jq '{plugin_count, failed_plugins, handler_counts}'
Cookie preferences