CClawMetryDocs

Runtime reference

PicoClaw#

PicoClaw is a small Go agent with a flat JSONL session format. It is the clearest example of ClawMetry refusing to invent data: PicoClaw's message struct has no token field at all, so the Cost capability is not advertised for it.

Runtime idpicoclaw
CategoryMinimal Go agent
VendorSipeed
TierPaid tier (Starter and up)
Upstreamgithub.com/sipeed/picoclaw

Where the data comes from#

ClawMetry reads these locations, in order, and never writes to any of them.

  • $PICOCLAW_HOME/workspace/sessions/<key>.jsonl (default ~/.picoclaw/workspace/sessions/)
  • <key>.meta.json — session summary sidecar

Format. One flat providers.Message per line — content is a string, not a block array.

Environment variables#

VariableEffect
PICOCLAW_HOMEhome override

See Environment variables for the variables that apply to every runtime.

Tokens and cost#

Tokens. Not on disk. Reported as zero, honestly.

Cost. Not available. On a hosted VM the loopback usage log is the only cost source, and PicoClaw is on that allowlist.

Why this section exists

Runtimes differ enormously in what they persist. Rather than showing a plausible number everywhere, ClawMetry reports what the store actually contains and marks the rest unknown. A cost of $0.00 and a cost of unknown mean different things, and the dashboard keeps them different.

Sub-agents and delegation#

spawn, subagent and delegate sub-turns run against an in-memory store whose save is a no-op, so no child transcript reaches disk. ClawMetry synthesises a child from the parent's tool call and result pair; async spawn results are orphaned when the parent turn ends and honestly carry no reply.

Things worth knowing#

  • model_name may be a bare config alias (llama3) or a provider/model string. Both are handled and the provider prefix is kept.

Verify it is being read#

bash
# Is this runtime detected, and would this install unlock it?
clawmetry runtimes --json | jq '.runtimes[] | select(.id=="picoclaw")'

# Why is it locked, if it is?
clawmetry runtimes --why picoclaw

# Any sessions ingested yet?
curl -s 'http://localhost:8900/api/local/sessions?limit=5' \
  | jq '.rows[] | {session_id, agent_id, events, cost_usd}'

If detection succeeds but no sessions appear, work through Troubleshooting — the usual causes are a relocated data directory (set the override above), a session limit that is hiding older runs, or a runtime that simply has not written anything yet.

Cookie preferences