{"id":45548681,"url":"https://github.com/vivekchand/clawmetry","last_synced_at":"2026-06-06T21:01:28.056Z","repository":{"id":338754441,"uuid":"1156882085","full_name":"vivekchand/clawmetry","owner":"vivekchand","description":"See your agent think. Real-time observability dashboard for OpenClaw AI agents.","archived":false,"fork":false,"pushed_at":"2026-05-28T09:25:04.000Z","size":2459994,"stargazers_count":353,"open_issues_count":83,"forks_count":55,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-05-28T09:25:10.806Z","etag":null,"topics":["ai-agent","clawmetry","dashboard","monitoring","observability","openclaw","opentelemetry","python"],"latest_commit_sha":null,"homepage":"https://clawmetry.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vivekchand.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-13T06:49:19.000Z","updated_at":"2026-05-28T09:01:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vivekchand/clawmetry","commit_stats":null,"previous_names":["vivekchand/clawmetry"],"tags_count":334,"template":false,"template_full_name":null,"purl":"pkg:github/vivekchand/clawmetry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekchand%2Fclawmetry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekchand%2Fclawmetry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekchand%2Fclawmetry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekchand%2Fclawmetry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vivekchand","download_url":"https://codeload.github.com/vivekchand/clawmetry/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivekchand%2Fclawmetry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33752286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","clawmetry","dashboard","monitoring","observability","openclaw","opentelemetry","python"],"created_at":"2026-02-23T04:54:41.336Z","updated_at":"2026-06-06T21:01:28.042Z","avatar_url":"https://github.com/vivekchand.png","language":"Python","funding_links":[],"categories":["AI Agent Frameworks","Observability \u0026 Monitoring","Integrations \u0026 Features","Open Source Projects","🎛️ Dashboards \u0026 Control Centers"],"sub_categories":["OpenClaw Infrastructure","Monitoring \u0026 Dashboards","Observability"],"readme":"# 🦞 ClawMetry\n\n[![PyPI Downloads](https://static.pepy.tech/badge/clawmetry)](https://clickpy.clickhouse.com/dashboard/clawmetry)\n[![PyPI Downloads/week](https://static.pepy.tech/badge/clawmetry/week)](https://clickpy.clickhouse.com/dashboard/clawmetry)\n[![PyPI version](https://img.shields.io/pypi/v/clawmetry?color=E5443A\u0026label=version)](https://pypi.org/project/clawmetry/)\n[![GitHub stars](https://img.shields.io/github/stars/vivekchand/clawmetry?style=flat\u0026color=E5443A)](https://github.com/vivekchand/clawmetry/stargazers)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\u003ca href=\"https://www.producthunt.com/products/clawmetry?embed=true\u0026utm_source=badge-top-post-badge\u0026utm_medium=badge\u0026utm_campaign=badge-clawmetry-for-openclaw\" target=\"_blank\"\u003e\u003cimg src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=1081207\u0026theme=light\u0026period=daily\u0026t=1771491508782\" alt=\"ClawMetry - #5 Product of the Day on Product Hunt\" width=\"250\" height=\"54\" /\u003e\u003c/a\u003e\n\n**See your agent think.** Real-time observability for **12 AI agent runtimes**: [OpenClaw](https://github.com/openclaw/openclaw), [NVIDIA NemoClaw](https://github.com/NVIDIA/NemoClaw), Claude Code, OpenAI Codex \u0026 8 more. One dashboard for your whole agent fleet.\n\n\u003e 🌐 **Read this in:** [English](README.md) · [简体中文](docs/i18n/zh-CN/README.md) · [日本語](docs/i18n/ja/README.md) · [한국어](docs/i18n/ko/README.md) · [Español](docs/i18n/es/README.md) · [Português (BR)](docs/i18n/pt-BR/README.md) · [Français](docs/i18n/fr/README.md) · [Deutsch](docs/i18n/de/README.md) · [हिन्दी](docs/i18n/hi/README.md) · [العربية](docs/i18n/ar/README.md) · [Русский](docs/i18n/ru/README.md) · [more →](docs/i18n/)\n\nOne command. Zero config. Auto-detects everything.\n\n```bash\npip install clawmetry \u0026\u0026 clawmetry\n```\n\nOpens at **http://localhost:8900** and you're done.\n\n![Flow Visualization](https://clawmetry.com/screenshots/flow.png)\n\n## Works with 12 agent runtimes\n\nClawMetry started as observability for OpenClaw, and now meters your **whole agent fleet** in one dashboard, auto-detecting each runtime on your machine:\n\n🦞 **OpenClaw** · 🟩 **NVIDIA NemoClaw** · ◆ **Claude Code** · ⬡ **OpenAI Codex** · **Cursor** · 🪿 **Goose** · ⚡ **Hermes** · **opencode** · ◈ **Qwen Code** · **Aider** · **NanoClaw** · **PicoClaw**\n\nOpenClaw and NemoClaw are free in the open-source app; the other runtimes light up with ClawMetry Cloud or a self-hosted Pro license. Switch runtimes from the header and every tab — cost, tokens, tools, traces — re-scopes to that runtime.\n\n## What You Get\n\n- **Flow** — Live animated diagram showing messages flowing through channels, brain, tools, and back\n- **Overview** — Health checks, activity heatmap, session counts, model info\n- **Usage** — Token and cost tracking with daily/weekly/monthly breakdowns\n- **Sessions** — Active agent sessions with model, tokens, last activity\n- **Crons** — Scheduled jobs with status, next run, duration\n- **Logs** — Color-coded real-time log streaming\n- **Memory** — Browse SOUL.md, MEMORY.md, AGENTS.md, daily notes\n- **Transcripts** — Chat-bubble UI for reading session histories\n- **Alerts** — Budget caps, error-rate triggers, agent-offline detection; routes to Slack, Discord, PagerDuty, Telegram, Email\n- **Approvals** — Gate destructive deletes, force pushes, DB mutations, sudo, package installs, network calls behind one-click sign-off\n\n## Screenshots\n\n### 🧠 Brain — Live agent event stream\n![Brain tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/brain.png)\n\n### 📊 Overview — Token usage \u0026 session summary\n![Overview tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/overview.png)\n\n### ⚡ Flow — Real-time tool call feed\n![Flow tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/flow.png)\n\n### 💰 Tokens — Cost breakdown by model \u0026 session\n![Tokens tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/tokens.png)\n\n### 🧬 Memory — Workspace file browser\n![Memory tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/memory.png)\n\n### 🔐 Security — Posture \u0026 audit log\n![Security tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/security.png)\n\n### 🚨 Alerts — Budget caps, error-rate triggers, webhooks to Slack / Discord / PagerDuty / Email\n![Alerts tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/alerts.png)\n\n### ✋ Approvals — Gate risky tool calls behind manual sign-off; policy-backed protection rules\n![Approvals tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/approvals.png)\n\n## Install\n\n**One-liner (recommended):**\n```bash\ncurl -sSL https://raw.githubusercontent.com/vivekchand/clawmetry/main/install.sh | bash\n```\n\n**pip:**\n```bash\npip install clawmetry\nclawmetry\n```\n\n**From source:**\n```bash\ngit clone https://github.com/vivekchand/clawmetry.git\ncd clawmetry \u0026\u0026 pip install flask \u0026\u0026 python3 dashboard.py\n```\n\n## v2 Frontend Development\n\nThe v2 React app lives in `frontend/` and is served at `/v2` when the Flask\nserver is started with v2 enabled.\n\nUse two terminals while developing:\n\n```bash\n# Terminal 1: Flask API/server on :8900\nCLAWMETRY_V2=1 python3 dashboard.py\n```\n\n```bash\n# Terminal 2: Vite dev server on :5173\ncd frontend\nnvm use\nnpm ci\nnpm run dev\n```\n\nOpen `http://localhost:5173/v2/`. Vite proxies `/api` requests to\n`http://localhost:8900`, so the React app can talk to the local Flask server\nwithout extra CORS setup.\n\nTo build the bundle that ships with the Python package:\n\n```bash\ncd frontend\nnpm run build\n```\n\nThe production bundle is written to `clawmetry/static/v2/dist/`.\n\n## Runtime / Agent Compatibility\n\nClawMetry observes many AI-agent runtimes, not just OpenClaw. Each non-OpenClaw runtime ships a dedicated reader adapter that translates its native session format into ClawMetry's unified shapes; the daemon ingests them into the same DuckDB store + cloud snapshot, tagged with the runtime, and the Session replay tab shows a **runtime switcher** when more than one is present. See [`docs/compatibility.md`](docs/compatibility.md) for the full matrix + a guide to adding runtimes, and [`docs/RUNTIME_FAMILY.md`](docs/RUNTIME_FAMILY.md) for the OpenClaw-family primer.\n\n| Runtime / Agent | Status | Notes |\n|---|---|---|\n| **OpenClaw** | Native | Reference runtime, auto-detected |\n| **PicoClaw** | Beta adapter | Flat `providers.Message` JSONL (`~/.picoclaw/workspace/sessions`). Transcripts, model, tool calls. |\n| **NanoClaw** | Beta adapter | Per-session SQLite (`data/v2-sessions`). Transcripts + message counts. |\n| **Hermes** | Beta adapter | SQLite `~/.hermes/state.db`. Transcripts, model, tokens/cost. |\n| **Claude Code** | Beta adapter | JSONL `~/.claude/projects/.../\u003cid\u003e.jsonl`. Transcripts, model, tool calls + thinking, token usage. |\n| **Codex** | Beta adapter | Rollout JSONL `~/.codex/sessions/...`. Transcripts, model, tool calls, token usage. |\n| **Cursor** | Beta adapter | SQLite `state.vscdb`. Chat/composer transcripts, model. |\n| **Aider** | Beta adapter | `.aider.chat.history.md` per project. Transcripts, model, token counts. |\n| **Goose** | Beta adapter | SQLite `~/.local/share/goose`. Transcripts, model, tool calls, token totals. |\n| **opencode** | Beta adapter | SQLite `~/.local/share/opencode`. Transcripts, model, tool calls, tokens + cost. |\n| **Qwen Code** | Beta adapter | JSONL `~/.qwen/projects/.../chats`. Transcripts, model, tool calls, token usage. |\n\n\"Beta adapter\" means ClawMetry ships a reader for that runtime's real on-disk format, each built + verified against a real install on a real machine (see `tests/fixtures/runtimes/\u003crt\u003e/`). Adapters are read-only; each is honest about what its runtime actually stores (e.g. PicoClaw/NanoClaw/Cursor don't write token cost to disk). When several runtimes run on one node, the runtime switcher scopes the sessions view to one for a clean deep-dive.\n\n## Track any SDK agent — out-loop cost attribution\n\nThe runtimes above all write sessions to disk. Your own **production agent** — the one you built on the OpenAI Agents SDK, LangChain, the Vercel AI SDK, LlamaIndex, E2B, or a plain `httpx` loop — doesn't. ClawMetry's zero-config interceptor still captures its LLM calls (cost, tokens, latency, errors) by monkey-patching `httpx`/`requests`:\n\n```python\nimport clawmetry.track            # activate the interceptor\nclawmetry.track.set_source(\"support-agent\")   # name this product\n\n# ...your agent runs as normal; every LLM call is now tracked + attributed.\n```\n\n`set_source()` (or the `CLAWMETRY_SOURCE=support-agent` env var) tags each call with a **named source**, so every product you run shows up as its own first-class, cost-attributable line in the dashboard's **🔌 Out-loop sources** card on Overview — calls, providers, latency, error rate per agent. No source set? The calls are still tracked; the card just stays hidden.\n\n```bash\nCLAWMETRY_SOURCE=billing-agent python my_agent.py\n```\n\nThis is the same data layer the runtime adapters feed (DuckDB → cloud snapshot), so out-loop sources sync to the cloud dashboard the same as everything else, E2E-encrypted.\n\n## OpenTelemetry — vendor-neutral, send your traces anywhere\n\nClawMetry speaks **OpenTelemetry** in both directions, using the **GenAI semantic conventions**, so your agent traces are never locked into one tool.\n\n**Export** every session — LLM calls, tools, sub-agents, tokens, cost — as OTLP/HTTP GenAI spans to any collector (Datadog, Grafana, Honeycomb, or your own OTel Collector):\n\n```bash\nclawmetry --otel-export http://localhost:4318/v1/traces\n# equivalently:\nCLAWMETRY_OTEL_EXPORT_ENDPOINT=http://localhost:4318/v1/traces clawmetry\n```\n\nAuth headers and poll interval are optional env vars:\n\n```bash\nCLAWMETRY_OTEL_EXPORT_HEADERS='{\"X-API-Key\":\"…\"}'   # extra HTTP headers\nCLAWMETRY_OTEL_EXPORT_INTERVAL=60                    # seconds (default 60)\n```\n\n**Ingest** — the built-in OTLP receiver accepts traces and metrics from anything else at `/v1/traces` and `/v1/metrics` (`pip install clawmetry[otel]` for protobuf ingest).\n\nYou get the zero-config, local-first ClawMetry dashboard **and** your data in whatever backend your team already runs — no lock-in, no second agent to install.\n\n## Configuration\n\nMost people don't need any config. ClawMetry auto-detects your workspace, logs, sessions, and crons.\n\nIf you do need to customize:\n\n```bash\nclawmetry --port 9000              # Custom port (default: 8900)\nclawmetry --host 127.0.0.1         # Bind to localhost only\nclawmetry --workspace ~/mybot      # Custom workspace path\nclawmetry --name \"Alice\"           # Your name in Flow visualization\n```\n\nAll options: `clawmetry --help`\n\n## Supported Channels\n\nClawMetry shows live activity for every OpenClaw channel you have configured. Only channels that are actually set up in your `openclaw.json` appear in the Flow diagram — unconfigured ones are automatically hidden.\n\nClick any channel node in the Flow to see a live chat bubble view with incoming/outgoing message counts.\n\n| Channel | Status | Live Popup | Notes |\n|---------|--------|------------|-------|\n| 📱 **Telegram** | ✅ Full | ✅ | Messages, stats, 10s refresh |\n| 💬 **iMessage** | ✅ Full | ✅ | Reads `~/Library/Messages/chat.db` directly |\n| 💚 **WhatsApp** | ✅ Full | ✅ | Via WhatsApp Web (Baileys) |\n| 🔵 **Signal** | ✅ Full | ✅ | Via signal-cli |\n| 🟣 **Discord** | ✅ Full | ✅ | Guild + channel detection |\n| 🟪 **Slack** | ✅ Full | ✅ | Workspace + channel detection |\n| 🌐 **Webchat** | ✅ Full | ✅ | Built-in web UI sessions |\n| 📡 **IRC** | ✅ Full | ✅ | Terminal-style bubble UI |\n| 🍏 **BlueBubbles** | ✅ Full | ✅ | iMessage via BlueBubbles REST API |\n| 🔵 **Google Chat** | ✅ Full | ✅ | Via Chat API webhooks |\n| 🟣 **MS Teams** | ✅ Full | ✅ | Via Teams bot plugin |\n| 🔷 **Mattermost** | ✅ Full | ✅ | Self-hosted team chat |\n| 🟩 **Matrix** | ✅ Full | ✅ | Decentralized, E2EE support |\n| 🟢 **LINE** | ✅ Full | ✅ | LINE Messaging API |\n| ⚡ **Nostr** | ✅ Full | ✅ | Decentralized NIP-04 DMs |\n| 🟣 **Twitch** | ✅ Full | ✅ | Chat via IRC connection |\n| 🔷 **Feishu/Lark** | ✅ Full | ✅ | WebSocket event subscription |\n| 🔵 **Zalo** | ✅ Full | ✅ | Zalo Bot API |\n\n\u003e **Auto-detection:** ClawMetry reads your `~/.openclaw/openclaw.json` and only renders the channels you've actually configured. No manual setup required.\n\n## Docker Deployment\n\nWant to run ClawMetry in a container? No problem! 🐳\n\n**Quick start with Docker:**\n\n```bash\n# Build the image\ndocker build -t clawmetry .\n\n# Run with default settings\ndocker run -p 8900:8900 clawmetry\n\n# Or mount your agent's data dir (shown: OpenClaw's ~/.openclaw)\ndocker run -p 8900:8900 \\\n  -v ~/.openclaw:/root/.openclaw \\\n  -v /tmp/moltbot:/tmp/moltbot \\\n  clawmetry\n```\n\n**Docker Compose example:**\n\n```yaml\nversion: '3.8'\nservices:\n  clawmetry:\n    build: .\n    ports:\n      - \"8900:8900\"\n    volumes:\n      - ~/.openclaw:/root/.openclaw:ro\n      - /tmp/moltbot:/tmp/moltbot:ro\n    restart: unless-stopped\n```\n\n\u003e **Note:** When running in Docker, mount your agent's data + log directories (e.g. `~/.openclaw`, `~/.claude`, `~/.codex`) so ClawMetry can auto-detect your setup.\n\n## Requirements\n\n- Python 3.8+\n- Flask (installed automatically via pip)\n- An AI agent runtime on the same machine: OpenClaw, NVIDIA NemoClaw, Claude Code, Codex, Cursor, Goose, Hermes, opencode, Qwen Code, Aider, NanoClaw, or PicoClaw (or mounted volumes for Docker)\n- Linux or macOS\n\n## NemoClaw / OpenShell Support\n\nClawMetry automatically detects [NemoClaw](https://github.com/NVIDIA/NemoClaw) — NVIDIA's enterprise security wrapper for OpenClaw that runs agents inside sandboxed OpenShell containers.\n\nNo extra configuration is needed in most cases. The sync daemon auto-discovers session files whether they live in `~/.openclaw/` on the host or inside an OpenShell container.\n\n### How it works\n\nClawMetry detects NemoClaw in two ways:\n\n1. **Binary detection** — checks for the `nemoclaw` CLI and runs `nemoclaw status` to get sandbox info\n2. **Container detection** — scans running Docker containers for `openshell`, `nemoclaw`, or `ghcr.io/nvidia/` images, then reads sessions via volume mounts or `docker cp`\n\nSession files synced from NemoClaw containers are tagged with `runtime=nemoclaw` and `container_id` metadata in the cloud dashboard, so you can tell them apart from standard OpenClaw sessions at a glance.\n\n### Recommended setup: sync daemon on the HOST\n\nFor the best experience, run ClawMetry's sync daemon on the **host machine** (not inside the sandbox). This avoids NemoClaw network policy restrictions.\n\n```bash\n# On the host (outside the sandbox)\npip install clawmetry\nclawmetry connect\nclawmetry sync\n```\n\nThe sync daemon will automatically find sessions inside any running OpenShell containers.\n\n### Optional: explicit sandbox name\n\nIf auto-detection doesn't work, point ClawMetry at the right sandbox:\n\n```bash\nexport NEMOCLAW_SANDBOX=my-sandbox-name\nclawmetry sync\n```\n\n### Running inside the sandbox (advanced)\n\nIf you must run the sync daemon **inside** the OpenShell sandbox, add this egress rule to your NemoClaw network policy so it can reach the ClawMetry ingest API:\n\n```yaml\n# nemoclaw-policy.yaml\nnetwork:\n  egress:\n    - host: ingest.clawmetry.com\n      port: 443\n      protocol: https\n```\n\nApply with:\n\n```bash\nnemoclaw policy apply --file nemoclaw-policy.yaml\n```\n\n### Ports and endpoints\n\n| Endpoint | Port | Protocol | Required |\n|---|---|---|---|\n| `ingest.clawmetry.com` | 443 | HTTPS | Yes (sync daemon → cloud) |\n| `localhost:8900` | 8900 | HTTP | Yes (local dashboard UI) |\n| Docker socket (`/var/run/docker.sock`) | — | Unix socket | For container session discovery |\n\nThe sync daemon only makes outbound HTTPS calls to `ingest.clawmetry.com`. No inbound ports are required.\n\n---\n\n## Cloud Deployment\n\nSee the **[Cloud Testing Guide](https://github.com/vivekchand/clawmetry/blob/main/docs/CLOUD_TESTING.md)** for SSH tunnels, reverse proxy, and Docker.\n\n## Testing\n\nThis project is tested with BrowserStack.\n\n[![BrowserStack](https://img.shields.io/badge/tested%20with-BrowserStack-orange.svg)](https://browserstack.com)\n\n## Telemetry\n\nClawMetry sends a single anonymous \"first run\" ping to\n`https://app.clawmetry.com/api/install` the first time you run the\n`clawmetry` CLI on a new machine. We use this to count installs (the\nonly marketing metric we have for an OSS project) and to learn which\nagent frameworks our users have installed.\n\n**Exactly one POST per install**, containing:\n\n| Field | Example | Why |\n|---|---|---|\n| `install_id` | random UUID stored at `~/.clawmetry/install_id` | dedup; not linked to your email or api_key |\n| `version` | `0.12.167` | what versions are in the wild |\n| `os` / `os_version` | `Darwin` / `25.3.0` | platform support priorities |\n| `python` | `3.11.15` | Python version support matrix |\n| `agent` | `openclaw` / `nemoclaw` / `hermes` / `none` | which agents we should integrate with next |\n| `is_ci` / `ci_provider` | `true` / `github_actions` | separate human installs from CI noise |\n\n**What we do NOT send**: IP (cloud derives the country code server-side\nfrom the request, then discards the IP), hostname, username, workspace\npath, file contents, your api_key, your email, anything PII or\nworkspace-specific. The wire payload is auditable in\n[`clawmetry/telemetry.py`](clawmetry/telemetry.py).\n\n**Opt out** (any one of these disables it permanently):\n\n```bash\nexport CLAWMETRY_NO_TELEMETRY=1                # per-shell\nexport DO_NOT_TRACK=1                          # W3C cross-tool standard\ntouch ~/.clawmetry/notelemetry                 # persistent file marker\n```\n\nA network failure here never blocks `clawmetry` from running — the\nping is fire-and-forget on a daemon thread with a 3 s timeout.\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/?repos=vivekchand%2Fclawmetry\u0026type=date\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/image?repos=vivekchand/clawmetry\u0026type=date\u0026theme=dark\u0026legend=top-left\" /\u003e\n \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/image?repos=vivekchand/clawmetry\u0026type=date\u0026legend=top-left\" /\u003e\n \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/image?repos=vivekchand/clawmetry\u0026type=date\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n## License\n\nMIT\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e🦞 See your agent think\u003c/strong\u003e\u003cbr\u003e\n  \u003csub\u003eBuilt by \u003ca href=\"https://github.com/vivekchand\"\u003e@vivekchand\u003c/a\u003e · \u003ca href=\"https://clawmetry.com\"\u003eclawmetry.com\u003c/a\u003e · Part of the \u003ca href=\"https://github.com/openclaw/openclaw\"\u003eOpenClaw\u003c/a\u003e ecosystem\u003c/sub\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivekchand%2Fclawmetry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvivekchand%2Fclawmetry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivekchand%2Fclawmetry/lists"}