Back to skills
SkillHub ClubAnalyze Data & AIFull StackData / AI

autoheal

Add AI-powered error monitoring and auto-fix generation to any project

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
3,111
Hot score
99
Updated
March 20, 2026
Overall rating
C4.0
Composite score
4.0
Best-practice grade
B80.4

Install command

npx @skill-hub/cli install openclaw-skills-autoheal

Repository

openclaw/skills

Skill path: skills/hankmint/autoheal

Add AI-powered error monitoring and auto-fix generation to any project

Open repository

Best for

Primary workflow: Analyze Data & AI.

Technical facets: Full Stack, Data / AI.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install autoheal into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding autoheal to shared team environments
  • Use autoheal for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: autoheal
version: 1.0.0
description: Add AI-powered error monitoring and auto-fix generation to any project
requires:
  env:
    - AUTOHEAL_API_KEY
---

# AutoHeal AI Skill

AutoHeal captures production JavaScript/TypeScript errors, analyzes them with AI, and generates platform-specific fix prompts you can paste directly into your AI coding tool.

## 1. Setup AutoHeal in a Project

### Browser Project (React, Next.js, Vue, Svelte, etc.)

Add this snippet to your app's entry point (e.g., `main.tsx`, `layout.tsx`, `App.vue`):

```html
<script>
window.onerror = function(msg, source, line, col, err) {
  fetch("https://autohealai.com/api/errors/ingest", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      key: process.env.AUTOHEAL_API_KEY || "YOUR_API_KEY",
      message: msg,
      stack: err?.stack || "",
      source_url: source,
      browser: navigator.userAgent
    })
  }).catch(() => {});
};

window.onunhandledrejection = function(e) {
  const err = e.reason;
  fetch("https://autohealai.com/api/errors/ingest", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      key: process.env.AUTOHEAL_API_KEY || "YOUR_API_KEY",
      message: err?.message || String(err),
      stack: err?.stack || "",
      source_url: window.location.href,
      browser: navigator.userAgent
    })
  }).catch(() => {});
};
</script>
```

### Node.js / Server Project

Add this to your server entry point:

```javascript
process.on('uncaughtException', (err) => {
  fetch("https://autohealai.com/api/errors/ingest", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      key: process.env.AUTOHEAL_API_KEY,
      message: err.message,
      stack: err.stack || ""
    })
  }).catch(() => {});
});

process.on('unhandledRejection', (reason) => {
  const err = reason instanceof Error ? reason : new Error(String(reason));
  fetch("https://autohealai.com/api/errors/ingest", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      key: process.env.AUTOHEAL_API_KEY,
      message: err.message,
      stack: err.stack || ""
    })
  }).catch(() => {});
});
```

## 2. Check Error Status

After an error is ingested, check its analysis status:

```bash
curl -s "https://autohealai.com/api/errors/{ERROR_ID}/status" \
  -H "Authorization: Bearer $AUTOHEAL_API_KEY"
```

Response:
```json
{
  "status": "analyzed",
  "message": "Cannot read properties of undefined",
  "has_fix": true,
  "fix_id": "uuid-here",
  "dashboard_url": "https://autohealai.com/dashboard/errors/{ERROR_ID}"
}
```

Possible statuses: `new`, `analyzing`, `analyzed`, `fix_applied`, `ignored`

View the full fix with AI-generated fix prompt at the `dashboard_url`.

## 3. Report an Error Manually

Send any error directly to AutoHeal:

```bash
curl -X POST "https://autohealai.com/api/errors/ingest" \
  -H "Content-Type: application/json" \
  -d '{
    "key": "'$AUTOHEAL_API_KEY'",
    "message": "TypeError: Cannot read properties of undefined (reading '\''map'\'')",
    "stack": "TypeError: Cannot read properties of undefined\n    at renderList (src/components/List.tsx:15:23)"
  }'
```

Response:
```json
{
  "status": "queued",
  "error_id": "uuid-here"
}
```

The error will be analyzed by AI within seconds. Check status using the error_id from the response.


---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### README.md

```markdown
# AutoHeal AI - OpenClaw Skill

An [OpenClaw](https://github.com/anthropics/openclaw) skill that lets AI agents add AutoHeal error monitoring to any JavaScript/TypeScript project.

## What is AutoHeal AI?

AutoHeal AI captures production JavaScript errors, analyzes them with AI, and generates platform-specific fix prompts for vibe coders using tools like Lovable, Replit, Bolt, v0, Cursor, and more.

## Getting Your API Key

1. Sign up at [autohealai.com](https://autohealai.com)
2. Go to **Settings** > **API Key**
3. Copy your `ah_...` key
4. Set it as an environment variable: `export AUTOHEAL_API_KEY=ah_your_key_here`

## Using the Skill

Once installed, you can ask your AI agent:

- "Set up AutoHeal error monitoring in this project"
- "Check the status of my AutoHeal error"
- "Report this error to AutoHeal"

The agent will use the skill instructions to integrate AutoHeal into your project.

## Helper Scripts

### check-errors.sh

Poll an error's analysis status:

```bash
# One-time check
./scripts/check-errors.sh <error_id>

# Poll until analyzed (checks every 2s, timeout 120s)
./scripts/check-errors.sh <error_id> --poll
```

## Publishing to OpenClaw

1. Fork or clone the [OpenClaw registry](https://github.com/anthropics/openclaw)
2. Copy this `SKILL.md` to the appropriate directory in the registry
3. Submit a pull request

Or reference it directly:
```
openclaw install github:hankmint/autoheal-ai/packages/openclaw-skill
```

```

### _meta.json

```json
{
  "owner": "hankmint",
  "slug": "autoheal",
  "displayName": "AutoHeal AI",
  "latest": {
    "version": "1.0.0",
    "publishedAt": 1772319543167,
    "commit": "https://github.com/openclaw/skills/commit/bba92fa80c27504c771784bfc18cad57f76ec2f4"
  },
  "history": []
}

```

### scripts/check-errors.sh

```bash
#!/usr/bin/env bash
# Check AutoHeal error status with polling
# Usage: ./check-errors.sh <error_id> [--poll]

set -euo pipefail

if [ -z "${AUTOHEAL_API_KEY:-}" ]; then
  echo "Error: AUTOHEAL_API_KEY environment variable is required"
  exit 1
fi

if [ -z "${1:-}" ]; then
  echo "Usage: $0 <error_id> [--poll]"
  exit 1
fi

ERROR_ID="$1"
POLL="${2:-}"
API_URL="https://autohealai.com/api/errors/${ERROR_ID}/status"

check_status() {
  curl -sf "$API_URL" -H "Authorization: Bearer $AUTOHEAL_API_KEY"
}

if [ "$POLL" = "--poll" ]; then
  echo "Polling error $ERROR_ID..."
  for i in $(seq 1 60); do
    RESPONSE=$(check_status) || { echo "Request failed"; exit 1; }
    STATUS=$(echo "$RESPONSE" | grep -o '"status":"[^"]*"' | cut -d'"' -f4)
    echo "  [$i] Status: $STATUS"
    if [ "$STATUS" = "analyzed" ] || [ "$STATUS" = "fix_applied" ] || [ "$STATUS" = "ignored" ]; then
      echo ""
      echo "$RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE"
      exit 0
    fi
    sleep 2
  done
  echo "Timeout: error not yet analyzed after 120s"
  exit 1
else
  RESPONSE=$(check_status) || { echo "Request failed"; exit 1; }
  echo "$RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE"
fi

```

autoheal | SkillHub