✓ Verified 💻 Development ✓ Enhanced Data

Tidbyt Status

HTTP API server that exposes OpenClaw agent status for Tidbyt LED displays.

Rating
4.8 (147 reviews)
Downloads
738 downloads
Version
1.0.0

Overview

HTTP API server that exposes OpenClaw agent status for Tidbyt LED displays.

Complete Documentation

View Source →

Tidbyt Status - Scout Display

Complete integration for displaying Scout's status on Tidbyt 64x32 LED displays.

Components

  • Status API Server (scripts/status_server.py) - Exposes Scout's status as JSON
  • Tidbyt App (scout_status.star) - Starlark app for rendering on Tidbyt

Quick Start

1. Start the Status API Server

bash
cd ~/.openclaw/workspace/skills/tidbyt-status
python3 scripts/status_server.py

API available at http://localhost:8765/status

2. Install Pixlet (Tidbyt Development Tool)

macOS:

bash
brew install tidbyt/tidbyt/pixlet

Linux: Download from GitHub releases

3. Test Locally

Update the IP address in scout_status.star (line 10):

python
DEFAULT_API_URL = "http://YOUR-LOCAL-IP:8765/status"

Render and serve:

bash
pixlet serve scout_status.star

Visit http://localhost:8080 to preview.

4. Push to Your Tidbyt

First, login and get your device ID:

bash
pixlet login
pixlet devices

Render the app:

bash
pixlet render scout_status.star

Push to your Tidbyt:

bash
pixlet push --installation-id Scout <YOUR-DEVICE-ID> scout_status.webp

Display Features

  • Agent name + emoji (🦅) at top with animated face
  • Status-specific faces:
  • CHAT (green) - Casual chatting, eyes moving
  • WORK (yellow) - Working hard, yellow face with purple focused eyes
  • THINK (blue) - Thinking/processing, eyes blinking
  • SLEEP (gray) - Idle/sleeping, closed eyes
  • Task count - Number of concurrent sub-agent tasks
  • Recent activity - Scrolling text showing current activity

API Response Format

The status server returns JSON:

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 tasks
  • working - Sub-agent sessions running (processing tasks)
  • thinking - Some activity but unclear
  • sleeping - No activity for >1 hour

Configuration

Custom API Port

bash
PORT=9000 python3 scripts/status_server.py

Custom API URL in Tidbyt App

When pushing to Tidbyt, configure via the mobile app:

  • Tap the Scout installation
  • Settings → API URL
  • Enter your full URL

Running the API Server as a Service

systemd (Linux)

Create /etc/systemd/system/scout-status.service:

ini
[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:

bash
sudo systemctl daemon-reload
sudo systemctl enable scout-status
sudo systemctl start scout-status

Manual Background

bash
nohup python3 scripts/status_server.py > /tmp/scout-status.log 2>&1 &

Network Configuration

For Tidbyt to access the API:

  • Find your local IP:
bash
hostname -I | awk '{print $1}'
  • Update firewall (if needed):
bash
sudo ufw allow 8765/tcp
  • Test from another machine:
bash
curl http://YOUR-IP:8765/status

Status Detection Logic

The server monitors ~/.openclaw/agents/main/sessions/*.jsonl:

  • Active: Any session modified within last 5 minutes
  • Idle: No recent activity
  • Active tasks: Count of sub-agent sessions (excludes main session)
  • Recent activity: Shows time since last activity when idle

Customization

Change the Emoji

Edit scripts/status_server.py line 16:

python
"emoji": "🦅",  # Change to any emoji

Adjust Activity Threshold

Edit scripts/status_server.py line 34 (default 300 seconds):

python
if age_seconds < 300:  # Change threshold here

Modify Display Colors

Edit scout_status.star lines 39-40:

python
status_color = "#00FF00" if status == "active" else "#888888"

Troubleshooting

API returns error:

  • Check if OpenClaw is running
  • Verify ~/.openclaw/agents/main/sessions/ exists
Tidbyt shows "API Error":
  • Verify API URL is accessible from Tidbyt's network
  • Check firewall settings
  • Test with: curl http://YOUR-IP:8765/status
Display doesn't update:
  • Tidbyt apps refresh every ~30 seconds (see ttl_seconds in code)
  • Check if the status API server is still running

Files

  • SKILL.md - This documentation
  • scripts/status_server.py - HTTP API server
  • scout_status.star - Tidbyt Starlark app
  • tidbyt-status.skill - Packaged skill file

Installation

Terminal bash

openclaw install tidbyt-status
    
Copied!

💻Code Examples

python3 scripts/status_server.py

python3-scriptsstatusserverpy.txt
API available at `http://localhost:8765/status`

### 2. Install Pixlet (Tidbyt Development Tool)

**macOS:**

brew install tidbyt/tidbyt/pixlet

brew-install-tidbyttidbytpixlet.txt
**Linux:**
Download from [GitHub releases](https://github.com/tidbyt/pixlet/releases/latest)

### 3. Test Locally

Update the IP address in `scout_status.star` (line 10):

pixlet serve scout_status.star

pixlet-serve-scoutstatusstar.txt
Visit http://localhost:8080 to preview.

### 4. Push to Your Tidbyt

First, login and get your device ID:

pixlet push --installation-id Scout <YOUR-DEVICE-ID> scout_status.webp

pixlet-push---installation-id-scout-your-device-id-scoutstatuswebp.txt
## Display Features

- **Agent name + emoji** (🦅) at top with animated face
- **Status-specific faces:**
  - **CHAT** (green) - Casual chatting, eyes moving
  - **WORK** (yellow) - Working hard, yellow face with purple focused eyes
  - **THINK** (blue) - Thinking/processing, eyes blinking
  - **SLEEP** (gray) - Idle/sleeping, closed eyes
- **Task count** - Number of concurrent sub-agent tasks
- **Recent activity** - Scrolling text showing current activity

## API Response Format

The status server returns JSON:

}

.txt
**Status Types:**
- `chatting` - Main session active, no background tasks
- `working` - Sub-agent sessions running (processing tasks)
- `thinking` - Some activity but unclear
- `sleeping` - No activity for >1 hour

## Configuration

### Custom API Port

PORT=9000 python3 scripts/status_server.py

port9000-python3-scriptsstatusserverpy.txt
### Custom API URL in Tidbyt App

When pushing to Tidbyt, configure via the mobile app:
1. Tap the Scout installation
2. Settings → API URL
3. Enter your full URL

## Running the API Server as a Service

### systemd (Linux)

Create `/etc/systemd/system/scout-status.service`:

nohup python3 scripts/status_server.py > /tmp/scout-status.log 2>&1 &

nohup-python3-scriptsstatusserverpy--tmpscout-statuslog-21-.txt
## Network Configuration

For Tidbyt to access the API:

1. **Find your local IP:**
example.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..."
}
example.txt
[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
example.sh
sudo systemctl daemon-reload
sudo systemctl enable scout-status
sudo systemctl start scout-status

Tags

#coding_agents-and-ides #api

Quick Info

Category Development
Model Claude 3.5
Complexity Multi-Agent
Author mrscoutshub
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install tidbyt-status