Install
openclaw skills install tidbyt-statusHTTP API server that exposes OpenClaw agent status for Tidbyt LED displays. Use when creating integrations with Tidbyt devices, building status dashboards, or displaying agent activity on 64x32 pixel displays. Returns JSON with agent status, emoji, activity level, and task counts.
openclaw skills install tidbyt-statusComplete integration for displaying Scout's status on Tidbyt 64x32 LED displays.
scripts/status_server.py) - Exposes Scout's status as JSONscout_status.star) - Starlark app for rendering on Tidbytcd ~/.openclaw/workspace/skills/tidbyt-status
python3 scripts/status_server.py
API available at http://localhost:8765/status
macOS:
brew install tidbyt/tidbyt/pixlet
Linux: Download from GitHub releases
Update the IP address in scout_status.star (line 10):
DEFAULT_API_URL = "http://YOUR-LOCAL-IP:8765/status"
Render and serve:
pixlet serve scout_status.star
Visit http://localhost:8080 to preview.
First, login and get your device ID:
pixlet login
pixlet devices
Render the app:
pixlet render scout_status.star
Push to your Tidbyt:
pixlet push --installation-id Scout <YOUR-DEVICE-ID> scout_status.webp
The status server returns JSON:
{
"agent": "Scout",
"emoji": "🦅",
"status": "chatting|working|thinking|sleeping",
"timestamp": "2026-02-06T14:30:00",
"active_tasks": 0,
"last_activity": "2026-02-06T14:25:00",
"recent_activity": "Chatting with user..."
}
Status Types:
chatting - Main session active, no background tasksworking - Sub-agent sessions running (processing tasks)thinking - Some activity but unclearsleeping - No activity for >1 hourPORT=9000 python3 scripts/status_server.py
When pushing to Tidbyt, configure via the mobile app:
Create /etc/systemd/system/scout-status.service:
[Unit]
Description=Scout Status API for Tidbyt
After=network.target
[Service]
Type=simple
User=<username>
WorkingDirectory=/home/<username>/.openclaw/workspace/skills/tidbyt-status
ExecStart=/usr/bin/python3 scripts/status_server.py
Restart=always
Environment="PORT=8765"
[Install]
WantedBy=multi-user.target
Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable scout-status
sudo systemctl start scout-status
nohup python3 scripts/status_server.py > /tmp/scout-status.log 2>&1 &
For Tidbyt to access the API:
Find your local IP:
hostname -I | awk '{print $1}'
Update firewall (if needed):
sudo ufw allow 8765/tcp
Test from another machine:
curl http://YOUR-IP:8765/status
The server monitors ~/.openclaw/agents/main/sessions/*.jsonl:
Edit scripts/status_server.py line 16:
"emoji": "🦅", # Change to any emoji
Edit scripts/status_server.py line 34 (default 300 seconds):
if age_seconds < 300: # Change threshold here
Edit scout_status.star lines 39-40:
status_color = "#00FF00" if status == "active" else "#888888"
API returns error:
~/.openclaw/agents/main/sessions/ existsTidbyt shows "API Error":
curl http://YOUR-IP:8765/statusDisplay doesn't update:
ttl_seconds in code)SKILL.md - This documentationscripts/status_server.py - HTTP API serverscout_status.star - Tidbyt Starlark apptidbyt-status.skill - Packaged skill file