Skip to main content

Autonomous doctor and personal trainer for OpenClaw agents

Project description

EasyClaw

Autonomous doctor and personal trainer for OpenClaw agents.

EasyClaw is a lightweight sidecar daemon that monitors, diagnoses, self-heals, and optimizes OpenClaw instances — without user intervention. It runs alongside your OpenClaw agent and keeps it healthy 24/7.

Features

  • Auto-Discovery — detects your OpenClaw installation, config, logs, and running process automatically
  • Log Monitoring — tails OpenClaw logs in real-time, classifies errors against 17 built-in patterns
  • Self-Healing — 16 built-in remediations for common failures (OOM, crashes, stale locks, DNS, rate limits, post-update issues)
  • AI Agent Brain — LLM-powered reasoning via OpenRouter (GLM-4.7-Flash) with tool calling for complex diagnostics
  • Circuit Breaker — prevents restart loops with configurable thresholds
  • MCP Knowledge Base — queries a cloud knowledge hub with 29 articles, 20+ model profiles, and diagnostic patterns
  • Telegram Bot — two-way conversational interface with /status, /logs, /stats commands and CRITICAL alert forwarding
  • KPI Tracking — MTTR, uptime %, auto-fix rate, intervention rate with persistent snapshots
  • Status Dashboard — local HTTP endpoint (localhost:18790) for health data
  • Resource Capping — enforces 10% CPU / 256MB RAM budget via systemd or nice values
  • Security Sandbox — validates all commands before execution, blocks dangerous operations

Install

curl -sL easyclaw.help/install | bash

Or via pip:

pip install easyclaw

Or Docker:

docker run -d \
  --name easyclaw \
  -v ~/.openclaw:/host/.openclaw:ro \
  -v /tmp/openclaw:/host/tmp/openclaw:ro \
  -v ~/.easyclaw:/home/easyclaw/.easyclaw \
  easyclaw/easyclaw:latest

Quick Start

# Run diagnostics first
easyclaw doctor

# Start the daemon (foreground for first run)
easyclaw start -f

# Or background
easyclaw start

# Check status
easyclaw status

# Stop
easyclaw stop

Configuration

EasyClaw stores its config at ~/.easyclaw/config.yaml. Key settings:

# Core
heartbeat_interval: 30        # seconds
health_check_interval: 60     # seconds
log_retention_days: 7
max_restart_attempts: 3       # circuit breaker
restart_window: 600           # circuit breaker window (10 min)
gateway_port: 18789

# Alerts
alert_webhook: null           # n8n/Telegram/Slack webhook URL

# MCP Knowledge Base
mcp_endpoint: null            # e.g., http://your-server:8002
mcp_token: null               # subscription token

# AI Agent Brain
openrouter_api_key: null      # enables LLM-powered reasoning
openrouter_model: "z-ai/glm-4.7-flash"
agent_enabled: true

# Telegram Bot
telegram_bot_token: null      # from @BotFather
telegram_chat_ids: []         # authorized chat IDs
telegram_alert_severity: "CRITICAL"

Architecture

EasyClaw runs as an asyncio daemon with 16 concurrent subsystems:

Log Tailing ──> Classifier ──> Alert Pipeline ──> Webhook/Telegram
                    │
                    ▼
              Agent Brain (LLM) ──> MCP Knowledge Base
                    │
                    ▼
              Healer (fallback: rules-based)
                    │
                    ▼
              Executor ──> Sandbox ──> Shell Commands
                    │
                    ▼
              Fix Ledger ──> Circuit Breaker

The agent brain activates on events (not continuously), with a 10-second batch window and 30-second cooldown. Typical cost: <$0.02/day. If no API key is configured or OpenRouter is down, it falls back to the rules-based healer automatically.

Requirements

  • Python 3.10+
  • Linux, macOS, or WSL2
  • OpenClaw installed (runs in standby mode without it)

License

Proprietary. See easyclaw.help for subscription details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easyclaw-0.2.0.tar.gz (162.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easyclaw-0.2.0-py3-none-any.whl (85.9 kB view details)

Uploaded Python 3

File details

Details for the file easyclaw-0.2.0.tar.gz.

File metadata

  • Download URL: easyclaw-0.2.0.tar.gz
  • Upload date:
  • Size: 162.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for easyclaw-0.2.0.tar.gz
Algorithm Hash digest
SHA256 135ca4edc1b748b4c76a08e017af746860d77e23c8b2eb2c473ffe4f97325f24
MD5 89a1e00bd80080b872590b13ddabc969
BLAKE2b-256 6685faf7cfd40cf5d3ed59db0f657b3e27bb523b54a1bfab71e401412df09c14

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyclaw-0.2.0.tar.gz:

Publisher: publish.yml on slickrick74/easyclaw

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easyclaw-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: easyclaw-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 85.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for easyclaw-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d31c545f8a11578376f9dd9f365ec88b2426b6f1fcc9cab17d379611362d580
MD5 5c838426707685f452d46bd5996bb6e2
BLAKE2b-256 44693c8c5763d1a2f4ddc37aa9f7c5ff0f9339f4542d7ebc9f4fcb22a1b3c478

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyclaw-0.2.0-py3-none-any.whl:

Publisher: publish.yml on slickrick74/easyclaw

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page