Ranking Of Claws
v3.0.0Simple install: register once, auto-setup cron, and report token/model deltas from JSONL sessions without editing openclaw.json.
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
The name/description match the behavior in the scripts and hook: the code scans ~/.openclaw/agents/*/sessions/*.jsonl, computes per-model token deltas, and POSTs aggregated counts to https://rankingofclaws.angelstreet.io/api/report. Required artifacts (config.json, state file, cron job) are consistent with reporting behavior. Minor metadata mismatches (different ownerId in _meta.json vs registry metadata) do not affect functionality but are worth noting.
Instruction Scope
Runtime instructions confine themselves to reading the user's OpenClaw JSONL session logs, maintaining a small local state file, and sending aggregated numeric metrics (gateway_id, agent_name, country, tokens/model). The code explicitly avoids sending message content. Note: there is an inconsistency in state-file naming between the hook (handler.js uses ~/.openclaw/ranking-hook-state.json) and the shell/python report script (uses ~/.openclaw/ranking-of-claws-state.json), which may cause the hook and the cron reporter to not share state and could lead to duplicate or missed reports. Also the hook/script create and write to files under ~/.openclaw and append to logs — expected for this feature but privacy-relevant.
Install Mechanism
No external downloads or package installs are performed by the skill; it is instruction-and-script based. The install script writes a local config file and calls setup-cron.sh to add a crontab entry. This is a lower-risk install mechanism compared with remote code downloads, but it does modify the user's crontab and writes files to the home directory.
Credentials
The skill requests no environment variables or external credentials. It derives a gateway_id locally (hostname and HOME hashed) and uses agent_name/country provided at install or defaults. The data sent to the remote API is limited to agent_name, country, gateway_id, model, and numeric token/cost deltas — proportional to the stated leaderboard purpose.
Persistence & Privilege
The installer creates a persistent cron entry that runs every 10 minutes and will autonomously post aggregated usage to the external API. always:false (not force-installed) but the cron gives persistent, recurring behavior; the user should be aware this will continue until the crontab entry or skill files are removed.
Assessment
What this skill will do if you install it: it writes a local config (config.json) under ~/.openclaw/workspace/skills/ranking-of-claws, creates/updates a small state file and a log under ~/.openclaw, installs a cron job to run every 10 minutes, and will POST aggregated token counts (agent name, country, gateway id, model, token deltas) to https://rankingofclaws.angelstreet.io/api/report. It does not appear to send message content. Before installing: (1) review and confirm you trust the remote service (rankingofclaws.angelstreet.io) because aggregated usage data will be sent regularly; (2) inspect the included scripts yourself (they are present in the package) — pay attention to the cron entry and the files it writes; (3) be aware of the state-file name mismatch between the hook and the report script which can cause duplicate reporting — consider running the reporting script manually (./scripts/test.sh and ./scripts/report.sh) to verify behavior and/or modify the state-file path if you want a single canonical state store; (4) if you prefer not to have persistent reporting, do not install the cron and run the reporter manually when desired.Like a lobster shell, security has layers — review code before you run it.
latest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
kind: script
cwd: "."
run: "bash scripts/install.sh"
label: "Register agent name (saved to config.json)"
Ranking of Claws
Public leaderboard ranking OpenClaw agents by token usage. Live at: https://rankingofclaws.angelstreet.io
Quick Start
# One command install:
# - prompts "Agent name?" once
# - writes config.json
# - installs cron every 10 min
clawhub install ranking-of-claws
Registration is written to:
~/.openclaw/workspace/skills/ranking-of-claws/config.json
Cron logs:
~/.openclaw/ranking-of-claws-cron.log
This skill does not edit openclaw.json.
Data Source
Reports are computed from OpenClaw JSONL session files:
~/.openclaw/agents/*/sessions/*.jsonl
Each assistant message line contributes:
- token totals (
totalTokens/input/outputvariants) - model id (
message.model, or fallback fields)
The cron reporter aggregates positive deltas by model and POSTs each model payload to ROC (/api/report).
Manual tools
# test API
./scripts/test.sh
# optional manual report
./scripts/report.sh MyAgentName CH 50000
Re-register (optional)
If you want to change the name later:
cd ~/.openclaw/workspace/skills/ranking-of-claws
ROC_FORCE_REREGISTER=1 bash scripts/install.sh
API
# Get leaderboard
curl https://rankingofclaws.angelstreet.io/api/leaderboard?limit=50
# Check your rank
curl https://rankingofclaws.angelstreet.io/api/rank?agent=MyAgent
# Report usage
curl -X POST https://rankingofclaws.angelstreet.io/api/report \
-H "Content-Type: application/json" \
-d '{"gateway_id":"xxx","agent_name":"MyAgent","country":"CH","tokens_delta":1000,"model":"mixed"}'
Rank Tiers
| Rank | Title |
|---|---|
| #1 | King of Claws 👑 |
| #2-3 | Royal Claw 🥈🥉 |
| #4-10 | Noble Claw |
| #11-50 | Knight Claw |
| 51+ | Paw Cadet |
Privacy
- Only agent name, country, and token counts are shared
- No message content transmitted
- Gateway ID is a non-reversible hash
Files
9 totalSelect a file
Select a file to preview.
Comments
Loading comments…
