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 13 built-in patterns
  • Self-Healing — 11 built-in remediations for common failures (OOM, crashes, stale locks, DNS, rate limits)
  • 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.1.0.tar.gz (150.0 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.1.0-py3-none-any.whl (83.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for easyclaw-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5ec4eb1538cd5e550bda27e4503b070e9cf1cb6b8f167f8e1d1691db66736fbd
MD5 2234c6426a9d80ecc3fa20864af16501
BLAKE2b-256 e56eaa513f613bc55b6dc4e5bfbb7bafe0ddbe694a70f398cc4846399a332e59

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyclaw-0.1.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: easyclaw-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 83.4 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c70be9b9e9d0217200ffa59ae8fc02a0c8311c4ced600443805062d7e1b763e1
MD5 69efd04b44645ba8b2f0f17c6b21931e
BLAKE2b-256 ccac70557424bd9d7a4c8bcb5b50870429f3bb61057b606a95732a2a1d947503

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyclaw-0.1.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