apple-notes
Manage Apple Notes via the memo CLI on macOS (create, view, search, edit).
Create and manage webhook subscriptions for event-driven agent activation.
$ npx -y skills add graniet/kheish --skill webhook-subscriptions --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/webhook-subscriptionsContext preview
The summary Claude sees to decide when to auto-load this skill.
Create and manage webhook subscriptions for event-driven agent activation.
description: Create and manage webhook subscriptions for event-driven agent activation.
Use when the user wants external services to trigger agent runs automatically.
version: 1.0.0
metadata:
catalog:
tags:
- webhook
- events
- automation
- integrationsThis skill is repo-local and stays inactive until explicitly activated.
When the original instructions refer to legacy tool names, use these Kheish mappings:
When the instructions mention local helper files, resolve them from `${KHEISH_SKILL_DIR}`.
Kheish does not currently ship a dedicated webhook subscription CLI. In the examples below, `webhook-manager` and `gateway-manager` are placeholders for your deployment tooling around daemon connector config, ingress routing, and lifecycle management.
Create dynamic webhook subscriptions so external services (GitHub, GitLab, Stripe, CI/CD, IoT sensors, monitoring tools) can trigger Kheish agent runs by POSTing events to a URL.
The webhook platform must be enabled before subscriptions can be created. Check with:
webhook-manager list
If it says "Webhook platform is not enabled", set it up:
gateway-manager setup
Follow the prompts to enable webhooks, set the port, and set a global HMAC secret.
Add to `~/.kheish/config.yaml`:
platforms:
webhook:
enabled: true
extra:
host: "0.0.0.0"
port: 8644
secret: "generate-a-strong-secret-here"Add to `~/.kheish/.env`:
WEBHOOK_ENABLED=true WEBHOOK_PORT=8644 WEBHOOK_SECRET=generate-a-strong-secret-here
After configuration, start (or restart) the gateway:
gateway-manager run # Or if using systemd: systemctl --user restart kheish-daemon
Verify it's running:
curl http://localhost:8644/health
All management is via the `webhook-manager` CLI command:
webhook-manager 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.
webhook-manager list
webhook-manager remove <name>
webhook-manager test <name>
webhook-manager test <name> --payload '{"key": "value"}'Prompts support `{dot.notation}` for accessing nested payload fields:
If no prompt is specified, the full JSON payload is dumped into the agent prompt.
webhook-manager 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:
webhook-manager 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_commentwebhook-manager 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"webhook-manager 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"webhook-manager subscribe alerts \
--prompt "Alert: {alert.name}\nSeverity: {alert.severity}\nMessage: {alert.message}\n\nPlease investigate and suggest remediation." \
--deliver origin1. `webhook-manager subscribe` writes to `~/.kheish/webhook_subscriptions.json` 2. The webhook adapter hot-reloads this file on each incoming request (mtime-gated, negligible overhead) 3. When a POST arrives matching a route, the adapter formats the prompt and triggers an agent run 4. The agent's response is delivered to the configured target (Telegram, Discord, GitHub comment, etc.)
If webhooks aren't working:
1. **Is the gateway running?** Check with `systemctl --user status kheish-daemon` or `ps aux | grep gateway` 2. **Is the webhook server listening?** `curl http://localhost:8644/health` should return `{"status": "ok"}
Manage Apple Notes via the memo CLI on macOS (create, view, search, edit).
Manage Apple Reminders via remindctl CLI (list, add, complete, delete).
Track Apple devices and AirTags via FindMy.app on macOS using AppleScript
Send and receive iMessages/SMS via the imsg CLI on macOS.
Delegate coding tasks to Claude Code (Anthropic's CLI agent). Use for
--- description: Delegate coding tasks to OpenAI Codex CLI agent. Use for building features, refactoring, PR reviews, and batch…