Documentation Index
Fetch the complete documentation index at: https://mintlify.com/bidewio/better-openclaw/llms.txt
Use this file to discover all available pages before exploring further.
The status and update commands help you monitor and maintain your running OpenClaw stack.
status command
Show the status of all services in the running stack.
Usage
create-better-openclaw status [options]
Options
Project directory containing the stack (default: current directory).
Output results as JSON for programmatic use.
Examples
Check stack status
cd my-stack
create-better-openclaw status
Output:
Stack Status:
✓ postgres running 5m healthy
✓ redis running 5m healthy
✓ qdrant running 5m healthy
✓ openclaw running 5m healthy
✗ prometheus exited 2m unhealthy
Services: 4/5 running
Check status in specific directory
create-better-openclaw status --dir ./production-stack
JSON output
create-better-openclaw status --json
Output:
{
"services": [
{
"name": "postgres",
"state": "running",
"status": "healthy",
"uptime": "5m",
"image": "postgres:16-alpine",
"ports": ["5432:5432"]
},
{
"name": "redis",
"state": "running",
"status": "healthy",
"uptime": "5m",
"image": "redis:7-alpine",
"ports": ["6379:6379"]
},
{
"name": "prometheus",
"state": "exited",
"status": "unhealthy",
"uptime": "2m",
"image": "prom/prometheus:latest",
"exitCode": 1
}
],
"summary": {
"total": 5,
"running": 4,
"stopped": 1,
"healthy": 4,
"unhealthy": 1
}
}
update command
Pull latest Docker images and restart the stack.
Usage
create-better-openclaw update [options]
Options
Project directory containing the stack (default: current directory).
Show what would be updated without making changes.
Output results as JSON for programmatic use.
Examples
Update all images
cd my-stack
create-better-openclaw update
Output:
Updating stack...
Pulling images:
✓ postgres:16-alpine (up to date)
✓ redis:7-alpine (up to date)
↓ qdrant/qdrant:latest (downloading...)
↓ openclaw/openclaw:latest (downloading...)
Pulling complete.
Restarting services:
✓ postgres
✓ redis
✓ qdrant
✓ openclaw
Update complete! All services restarted.
Dry run to preview updates
create-better-openclaw update --dry-run
Output:
Dry run mode - no changes will be made.
Would pull:
postgres:16-alpine (current: sha256:abc123...)
redis:7-alpine (current: sha256:def456...)
qdrant/qdrant:latest (current: sha256:ghi789..., new: sha256:jkl012...)
openclaw/openclaw:latest (current: sha256:mno345..., new: sha256:pqr678...)
Would restart:
qdrant
openclaw
No changes made (dry run).
Update specific directory
create-better-openclaw update --dir ./production-stack
JSON output
create-better-openclaw update --json
Output:
{
"updated": [
{
"service": "qdrant",
"image": "qdrant/qdrant:latest",
"oldDigest": "sha256:ghi789...",
"newDigest": "sha256:jkl012..."
},
{
"service": "openclaw",
"image": "openclaw/openclaw:latest",
"oldDigest": "sha256:mno345...",
"newDigest": "sha256:pqr678..."
}
],
"unchanged": [
"postgres",
"redis"
],
"restarted": [
"postgres",
"redis",
"qdrant",
"openclaw"
]
}
Use cases
Health monitoring
Regularly check stack health:
#!/bin/bash
# Monitor stack and alert on issues
if ! create-better-openclaw status --json | jq -e '.summary.unhealthy == 0'; then
echo "Alert: Unhealthy services detected!"
create-better-openclaw status
fi
Scheduled updates
Automate stack updates with cron:
# Check for updates daily at 3 AM
0 3 * * * cd /opt/my-stack && create-better-openclaw update >> /var/log/openclaw-update.log 2>&1
Pre-update checks
Preview updates before applying:
# Check what would be updated
create-better-openclaw update --dry-run
# Review changes, then apply
read -p "Proceed with update? (y/n) " -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
create-better-openclaw update
fi
Rollback on failure
Combine with backup for safe updates:
#!/bin/bash
# Backup before update
create-better-openclaw backup create
# Update stack
if ! create-better-openclaw update; then
echo "Update failed, restoring from backup..."
LATEST_BACKUP=$(create-better-openclaw backup list --json | jq -r '.backups[0].file')
create-better-openclaw backup restore "$LATEST_BACKUP"
fi
Integration with monitoring
Send status to monitoring systems:
#!/bin/bash
# Export status to Prometheus pushgateway
STATUS=$(create-better-openclaw status --json)
RUNNING=$(echo "$STATUS" | jq '.summary.running')
TOTAL=$(echo "$STATUS" | jq '.summary.total')
echo "openclaw_services_running $RUNNING" | curl --data-binary @- http://pushgateway:9091/metrics/job/openclaw
echo "openclaw_services_total $TOTAL" | curl --data-binary @- http://pushgateway:9091/metrics/job/openclaw
Status indicators
Service states
- running - Service container is running
- exited - Service container has stopped
- restarting - Service is restarting
- paused - Service is paused
- dead - Service is in dead state
Health statuses
- healthy - Health check passing
- unhealthy - Health check failing
- starting - Health check not yet run
- none - No health check configured
Update behavior
What gets updated
- Docker images are pulled from registry
- Services using updated images are restarted
- Configuration files are not modified
- Persistent data is preserved
Update strategy
- Pull all images
- Stop all services
- Start services in dependency order
- Wait for health checks
Data safety
The update command:
- ✓ Preserves volumes and data
- ✓ Preserves environment variables
- ✓ Maintains network configuration
- ✗ Does NOT backup data automatically (use
backup create first)
Troubleshooting
Service shows unhealthy
Check logs for the specific service:
docker compose logs prometheus
Update fails to pull images
Check Docker registry access:
docker login
docker pull qdrant/qdrant:latest
Services won’t start after update
Check for breaking changes in new image versions:
docker compose logs
docker compose down
docker compose up -d