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.
Install command
npx @skill-hub/cli install openclaw-skills-autoheal
Repository
Skill path: skills/hankmint/autoheal
Add AI-powered error monitoring and auto-fix generation to any project
Open repositoryBest 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
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
```