en un clic
webhook-subscriptions
Webhook subscriptions: event-driven agent runs.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Webhook subscriptions: event-driven agent runs.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Funny animal podcast creation assistant. Given a topic, automatically generates a comedic podcast video hosted by two animal "hosts." Full pipeline: character design, comedy script, character portraits, TTS voice + Seedance 2.0 video generation, subtitle/pop-text/sound-effect post-production. Trigger words: animal podcast, funny podcast, pet podcast, animal talk show, pet talk show.
Professional anime/2D art style generation skill. Covers 14 sub-styles (modern Japanese anime/moe, retro Japanese cel-shading, Japanese shonen, Japanese shojo, Ghibli, Makoto Shinkai, Chinese xianxia/ink wash, modern Chinese anime, Chinese 3D fantasy, Korean webtoon, Korean impasto, Western cartoon, chibi/moe, 2D cyberpunk) + 5 anti-failure iron laws + cross-style shared rules (character lock / facial proportion spec / stroke consistency / universal negative). Core capabilities: precise style targeting, consistent character identity, cross-style conversion. Trigger: "anime", "2D art", "manga", "illustration", "Japanese anime", "Chinese anime", "Korean webtoon", "webtoon", "Western cartoon", "ghibli", "shinkai", "ufotable", "trigger style", "cel-shading", "impasto", "chibi", "moe", "catgirl", "Chinese 3D fantasy", "xianxia", "ink wash", "hanfu character", "cyberpunk anime", "draw an anime character", "make an anime avatar", "anime character", "anime style". NOT for: photorealistic (use image agent default) / s
Specialized in anime/2D/character stylization for image generation and conversion. Covers Japanese, Chinese, Korean, and Western art style families. Uses provenance analysis to trace reference images' style DNA, performs a 10-dimension analysis → 3-dimension collapse to precisely lock the style's essence, then matches the optimal tool and prompt approach for generation. Trigger on: "anime-ify", "2D style", "convert to anime", "cel-shading", "ghibli style", "Korean watercolor", "fantasy 3D", "chibi", "Japanese anime style", "style conversion", "manga style", "character illustration", "anime style", "webtoon style", or any request involving converting content into a specific anime/2D art style. Key distinction: User requests generation or conversion to a specific anime/2D art style. Do NOT trigger for: photorealistic photography style, pure logo design, general image editing (crop/background removal etc.).
Audiobook creation assistant. Converts book text into multi-character narrated audio, supporting audiobook production, multi-character voiceover, novel narration, TTS voiceover, and read-aloud scenarios. Automatically identifies dialogue and narration, assigns a distinct voice to each character, intelligently adds pause markers, and generates natural, fluent audiobook audio. Trigger phrases: audiobook, read aloud, TTS book, multi-character voiceover, novel narration, book narration, voice acting, narration, 有声书, 朗读, 读书, 多角色配音, 小说朗读, 读书配音. Supports chapter-level generation — user confirms the first chapter, then remaining chapters continue sequentially.
Beat-sync video editing skill. Input music (URL / local file / AI-generated) + video or image assets, automatically performs energy-tension analysis → smart trimming → beat detection → beat-synced timeline generation → asset matching → ffmpeg concatenation, outputting a beat-synced video perfectly aligned to the music. Supports image slideshows, video clips, and mixed assets as input. Supports every-N-beat asset switching, automatic intro/chorus segmentation, user-annotated keypoints, and other beat-sync modes. Trigger words include: music beat sync, beat-sync editing, beat sync, beat-sync video, beat-synced editing, beat-sync video, music rhythm editing, rhythm beat sync, beat detection, edit to the beat, auto beat sync, music sync edit.
Video project push tool. Programmatically creates editing projects via Python scripts, with one-click push to JianyingPro or CapCut. Direct mode creates project files directly in the local JianyingPro/CapCut draft directory — open the app and start editing. Built on pyJianYingDraft (PyPI). Trigger words include: JianyingPro, CapCut, push, push to JianyingPro, capcut, export to JianyingPro.
| name | webhook-subscriptions |
| description | Webhook subscriptions: event-driven agent runs. |
| version | 1.1.0 |
| platforms | ["linux","macos","windows"] |
| metadata | {"hermes":{"tags":["webhook","events","automation","integrations","notifications","push"]}} |
| author | Hermes Agent |
| license | MIT |
Create dynamic webhook subscriptions so external services (GitHub, GitLab, Stripe, CI/CD, IoT sensors, monitoring tools) can trigger Hermes agent runs by POSTing events to a URL.
The webhook platform must be enabled before subscriptions can be created. Check with:
hermes webhook list
If it says "Webhook platform is not enabled", set it up:
hermes gateway setup
Follow the prompts to enable webhooks, set the port, and set a global HMAC secret.
Add to ~/.hermes/config.yaml:
platforms:
webhook:
enabled: true
extra:
host: "0.0.0.0"
port: 8644
secret: "generate-a-strong-secret-here"
Add to ~/.hermes/.env:
WEBHOOK_ENABLED=true
WEBHOOK_PORT=8644
WEBHOOK_SECRET=generate-a-strong-secret-here
After configuration, start (or restart) the gateway:
hermes gateway run
# Or if using systemd:
systemctl --user restart hermes-gateway
Verify it's running:
curl http://localhost:8644/health
All management is via the hermes webhook CLI command:
hermes 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.
hermes webhook list
hermes webhook remove <name>
hermes webhook test <name>
hermes 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.
hermes 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:
hermes 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
hermes 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"
hermes 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"
hermes 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:
hermes 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)~/.hermes/webhook_subscriptions.jsonhermes webhook subscribe writes to ~/.hermes/webhook_subscriptions.jsonIf webhooks aren't working:
systemctl --user status hermes-gateway or ps aux | grep gatewaycurl http://localhost:8644/health should return {"status": "ok"}grep webhook ~/.hermes/logs/gateway.log | tail -20hermes webhook list. GitHub sends X-Hub-Signature-256, GitLab sends X-Gitlab-Token.--events filter matches what the service sends. Use hermes webhook test <name> to verify the route works.