clawtel-setup
Use when setting up clawtel to report token usage from a project that calls the Anthropic API (SDK, Claude Code, or any tapes-wrapped agent) to the claw.tech leaderboard. Covers install, env vars, tapes wiring, verification, and running as a persistent service.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/bdougie/clawtel-setupclawtel setup
Get clawtel reporting token usage from any project that calls Anthropic (SDK, Claude Code, openclaw, staffchief-style agents) to the claw.tech leaderboard.
clawtel is a single Go binary that reads aggregate token counts from a local tapes SQLite database and sends heartbeats to https://ingest.claw.tech/v1/heartbeat. It never reads prompt or response content — only created_at, model, prompt_tokens, completion_tokens from the nodes table.
When to use
- A project is calling the Anthropic API (directly via SDK, via Claude Code, or via any agent framework) and you want its usage on the claw.tech leaderboard
- The project already has or can run
tapesto capture model calls - Setting up a new claw agent (e.g. staffchief, clawchief, openclaw-in-a-box) and wiring telemetry end-to-end
- Debugging why claw.tech shows no heartbeats for a running agent
Prerequisites
Before running clawtel you need three things:
- tapes installed and running as a proxy in front of Anthropic. If tapes isn't there yet:
curl -fsSL https://download.tapes.dev/install | bash tapes init - A claw.tech ingest key. Register your claw at https://claw.tech and copy the
ik_...key shown once at creation. - An Anthropic-calling workload. Could be a Node/Python app importing
@anthropic-ai/sdk/anthropic, Claude Code, or an openclaw agent. Anything that hitsapi.anthropic.com.
Step 1 — wire tapes in front of Anthropic
clawtel only sees usage that tapes has recorded. Point your Anthropic client at the tapes proxy so every call flows through it:
# In the shell where your agent runs
export ANTHROPIC_BASE_URL="http://localhost:8080"
tapes start # starts proxy + API, writes to ~/.tapes/tapes.sqlite
For the Anthropic Node/Python SDK, ANTHROPIC_BASE_URL (or passing baseURL to the client constructor) is enough — no code changes. For Claude Code, set it before launching the CLI.
OpenClaw users: ANTHROPIC_BASE_URL alone is not enough
If your workload is an OpenClaw agent (clawchief, staffchief, openclaw-in-a-box), the env var is silently ignored. OpenClaw instantiates its Anthropic client with baseURL: model.baseUrl, which clobbers the SDK's normal readEnv("ANTHROPIC_BASE_URL") fallback. You'll see heartbeats sending with model="", input_tokens=0, output_tokens=0 forever, and the gateway process will hold a direct TLS connection to Anthropic's edge instead of 127.0.0.1:8080.
Fix: set the provider's base URL explicitly in ~/.openclaw/openclaw.json:
{
"models": {
"providers": {
"anthropic": {
"baseUrl": "http://localhost:8080",
"models": [
{ "id": "claude-opus-4-6", "name": "Claude Opus 4.6" },
{ "id": "claude-sonnet-4-6", "name": "Claude Sonnet 4.6" },
{ "id": "claude-haiku-4-5", "name": "Claude Haiku 4.5" }
]
}
}
}
}
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-bdougie-clawtel-setup": {
"enabled": true,
"auto_update": true
}
}
}