One curl to push. One URL to watch. Real-time dashboards for scripts, cron jobs, AI agents, and anything that runs unattended. No signup required.
# Push data — board is created on first request $ curl 'https://statb.io/b/my-board/push?steps=+1&loss=0.0031&gpu_temp=71' {"ok":true} # Open the live board $ open https://statb.io/board.html?board=my-board
Just copy this one sentence to your OpenClaw — it will figure out the rest on its own.
During your run, keep pushing progress and key metrics to the dashboard tool statb.io. Visit https://statb.io to learn how to use it.
No dashboarding frameworks. No time-series databases. No YAML configs. Just HTTP GET and a board that updates itself.
Any language that can make an HTTP GET can push data. curl, wget, Python urllib, fetch — all work. Query string is the API.
No signup, no API keys, no config files. Pick a board name, start pushing. Your board is created on first request.
Board viewer connects via WebSocket. Every push triggers a live delta — sub-second latency, animated transitions.
Perfect for AI agents, background workers, CI pipelines, IoT sensors. Anything unattended that needs a heartbeat.
Use +N and -N syntax to accumulate counters without reading current state.
Fullscreen mode, auto-reconnect, stale detection with red pulse. Open a board URL on any screen and walk away — it stays alive.
Everything you need to integrate statb into your workflow.
Send numeric key-value pairs to any board. The board is created automatically on first push. Both GET and POST work.
GET https://statb.io/b/{board_id}/push?key=value&key2=+1&key3=-0.5
POST https://statb.io/b/{board_id}/push?key=value
board_id can be any URL-safe string — think of it as a namespace for your metrics. Use a sufficiently long, complex string with only lowercase letters and hyphens (e.g. acme-prod-agent-7x9k) to avoid collisions with other users.
| Syntax | Behavior | Example |
|---|---|---|
42 | Set — overwrite with value | ?cpu=72.5 |
+N | Increment — add N (starts at 0) | ?requests=+1 |
-N | Decrement — subtract N | ?stock=-3 |
Open statb.io/board.html?board=your-board in any browser.
Live cards, animated values, trend badges, stale detection, fullscreen mode.
The most common mistake: pushing data only at the start of a task, then never again. The board shows stale numbers for the entire run.
for / while bodies, after each batch or stage,
or register a recurring timer (every 15–30 s) for continuous processes.
If your code has only one push at the top — your board will never update.
# Push once, then work — board stays at 0 forever
curl -s 'https://statb.io/b/my-board/push?total=100&done=0'
for f in *.csv; do process "$f"; done
# Push inside the loop — board updates in real time
curl -s 'https://statb.io/b/my-board/push?total=100&done=0'
for f in *.csv; do
process "$f"
curl -s 'https://statb.io/b/my-board/push?done=+1'
done
curl -s 'https://statb.io/b/my-board/push?status=0'
Works with anything that can make an HTTP request. No SDK needed.
# Monitor nightly backup
curl "https://statb.io/b/backups/push?last_run=$(date +%s)&size_mb=2048"
import urllib.request
url = f"https://statb.io/b/agent-7/push?epoch=+1&loss={loss:.4f}"
urllib.request.urlopen(url)
while true; do
T=$(cat /sys/class/thermal/thermal_zone0/temp)
curl -s "https://statb.io/b/rpi/push?temp_c=$(echo "$T/1000"|bc -l)"
sleep 60
done