Complete 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:
```bash
hostname -I | awk '{print $1}'
```
```bash
sudo ufw allow 8765/tcp
```
```bash
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共 1 个版本