con un clic
webhook-subscriptions
Webhook subscriptions: event-driven agent runs.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Webhook subscriptions: event-driven agent runs.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Test fixture for SkillBundleMaterializer.
跨平台比价与购物推荐 / Cross-platform price comparison. 淘宝 / 京东 / 天猫 / 拼多多商品聚合搜索 + 拍图识物。需要先启用 ckjia-shopping MCP server 并配置 CKJIA_MCP_KEY 才能用。
根据一句业务需求,自动规划并创建一组分工明确的数字员工(Agent),再把他们编排成一条工作流,无需逐个手工创建。
Debug Node.js via --inspect + Chrome DevTools Protocol CLI.
Author SKILL.md skills: frontmatter, validator limits, structure.
Dark-themed SVG architecture/cloud/infra diagrams as HTML.
| name | webhook-subscriptions |
| description | Webhook subscriptions: event-driven agent runs. |
| version | 1.1.0 |
| tags | ["webhook","events","automation","integrations","notifications","push"] |
| author | ported |
Create dynamic webhook subscriptions so external services (GitHub, GitLab, Stripe, CI/CD, IoT sensors, monitoring tools) can trigger the agent agent runs by POSTing events to a URL.
The webhook platform must be enabled before subscriptions can be created. Check with:
the agent webhook list
If it says "Webhook platform is not enabled", set it up:
the agent gateway setup
Follow the prompts to enable webhooks, set the port, and set a global HMAC secret.
Add to ~/.mateclaw/config.yaml:
platforms:
webhook:
enabled: true
extra:
host: "0.0.0.0"
port: 8644
secret: "generate-a-strong-secret-here"
Add to ~/.mateclaw/.env:
WEBHOOK_ENABLED=true
WEBHOOK_PORT=8644
WEBHOOK_SECRET=generate-a-strong-secret-here
After configuration, start (or restart) the gateway:
the agent gateway run
# Or if using systemd:
systemctl --user restart the agent-gateway
Verify it's running:
curl http://localhost:8644/health
All management is via the the agent webhook CLI command:
the agent webhook subscribe <name> \
--prompt "Prompt template with {payload.fields}" \
--events "event1,event2" \
--description "What this does" \
--skills "skill1,skill2" \
--deliver telegram \
--deliver-chat-id "12345" \
--secret "optional-custom-secret"
Returns the webhook URL and HMAC secret. The user configures their service to POST to that URL.
the agent webhook list
the agent webhook remove <name>
the agent webhook test <name>
the agent webhook test <name> --payload '{"key": "value"}'
Prompts support {dot.notation} for accessing nested payload fields:
{issue.title} — GitHub issue title{pull_request.user.login} — PR author{data.object.amount} — Stripe payment amount{sensor.temperature} — IoT sensor readingIf no prompt is specified, the full JSON payload is dumped into the agent prompt.
the agent webhook subscribe github-issues \
--events "issues" \
--prompt "New GitHub issue #{issue.number}: {issue.title}\n\nAction: {action}\nAuthor: {issue.user.login}\nBody:\n{issue.body}\n\nPlease triage this issue." \
--deliver telegram \
--deliver-chat-id "-100123456789"
Then in GitHub repo Settings → Webhooks → Add webhook:
the agent webhook subscribe github-prs \
--events "pull_request" \
--prompt "PR #{pull_request.number} {action}: {pull_request.title}\nBy: {pull_request.user.login}\nBranch: {pull_request.head.ref}\n\n{pull_request.body}" \
--skills "github-code-review" \
--deliver github_comment
the agent webhook subscribe stripe-payments \
--events "payment_intent.succeeded,payment_intent.payment_failed" \
--prompt "Payment {data.object.status}: {data.object.amount} cents from {data.object.receipt_email}" \
--deliver telegram \
--deliver-chat-id "-100123456789"
the agent webhook subscribe ci-builds \
--events "pipeline" \
--prompt "Build {object_attributes.status} on {project.name} branch {object_attributes.ref}\nCommit: {commit.message}" \
--deliver discord \
--deliver-chat-id "1234567890"
the agent webhook subscribe alerts \
--prompt "Alert: {alert.name}\nSeverity: {alert.severity}\nMessage: {alert.message}\n\nPlease investigate and suggest remediation." \
--deliver origin
For use cases where you just want to push a notification through to a user's chat — no reasoning, no agent loop — add --deliver-only. The rendered --prompt template becomes the literal message body and is dispatched directly to the target adapter.
Use this for:
the agent webhook subscribe antenna-matches \
--deliver telegram \
--deliver-chat-id "123456789" \
--deliver-only \
--prompt "🎉 New match: {match.user_name} matched with you!" \
--description "Antenna match notifications"
The POST returns 200 OK on successful delivery, 502 on target failure — so upstream services can retry intelligently. HMAC auth, rate limits, and idempotency still apply.
Requires --deliver to be a real target (telegram, discord, slack, github_comment, etc.) — --deliver log is rejected because log-only direct delivery is pointless.
--secret)~/.mateclaw/webhook_subscriptions.jsonthe agent webhook subscribe writes to ~/.mateclaw/webhook_subscriptions.jsonIf webhooks aren't working:
systemctl --user status the agent-gateway or ps aux | grep gatewaycurl http://localhost:8644/health should return {"status": "ok"}grep webhook ~/.mateclaw/logs/gateway.log | tail -20the agent webhook list. GitHub sends X-Hub-Signature-256, GitLab sends X-Gitlab-Token.--events filter matches what the service sends. Use the agent webhook test <name> to verify the route works.