--- title: update / uninstall / reports description: Keeping ClawMetry current, removing it completely, browsing generated reports, and inspecting loaded plugins. keywords: clawmetry update, clawmetry uninstall, clawmetry reports, clawmetry extensions eyebrow: 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. :::warning 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](/docs/ops/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](/docs/data/export/). 2. **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](/docs/ops/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//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}' ```