ngrok-unofficial-webhook-skill
Start an ngrok tunnel to receive incoming webhooks and process them via the LLM. Use when the user asks to listen for webhooks, set up a webhook endpoint, start ngrok, or when another skill (like Zoom RTMS Meeting Assistant) needs a public webhook URL. Receives webhook payloads and lets the LLM decide how to handle them.
- License 许可
- MIT
- 最近更新
- 2026-04-05
- Stars
- ★ 7
- Forks
- 1
01 前言 Front Matter
- name
- ngrok-unofficial-webhook-skill
- description
- Start an ngrok tunnel to receive incoming webhooks and process them via the LLM. Use when the user asks to listen for webhooks, set up a webhook endpoint, start ngrok, or when another skill (like Zoom RTMS Meeting Assistant) needs a public webhook URL. Receives webhook payloads and lets the LLM decide how to handle them.
02 资源文件 6
- 参考文档_meta.json848 B
- 参考文档package-lock.json36.3 KB
- 参考文档package.json194 B
- 参考文档README.md4.1 KB
- 脚本scripts/webhook-server.js9.7 KB
- 参考文档skill.json839 B
03 SKILL.md 正文
Ngrok Webhook Listener
Start a public webhook endpoint via ngrok. Incoming webhooks are auto-routed to matching skills or presented to the user for manual handling.
Prerequisites
cd skills/ngrok-unofficial-webhook-skill
npm install
Environment Variables
Set in the skill's .env file (copy from .env.example).
Required:
NGROK_AUTHTOKEN— ngrok auth token from https://dashboard.ngrok.com
Optional:
NGROK_DOMAIN— stable ngrok domain for consistent URLsWEBHOOK_PORT— local port (default:4040)WEBHOOK_PATH— webhook path (default:/webhook)OPENCLAW_BIN— path to openclaw binary (default:openclaw)OPENCLAW_NOTIFY_CHANNEL— notification channel (default:whatsapp)OPENCLAW_NOTIFY_TARGET— phone number / target for notifications
Usage
Start the webhook listener
Run as a background process:
cd skills/ngrok-unofficial-webhook-skill
node scripts/webhook-server.js
The server prints its public URL to stderr:
NGROK_URL=https://xxxx.ngrok-free.app
Webhook endpoint: https://xxxx.ngrok-free.app/webhook
For long-running use, launch with nohup:
nohup node scripts/webhook-server.js >> /tmp/ngrok-webhook.log 2>&1 &
What happens when a webhook arrives
- The server immediately responds 200 OK to the sender
- It discovers installed skills that declare
webhookEventsin theirskill.json - Auto-routing (no user intervention needed):
- If a matching skill has
forwardPort→ HTTP POST to the local service - If a matching skill has
webhookCommands→ runs the configured shell command
- If a matching skill has
- Manual routing (user decides):
- If no auto-route is available, sends a WhatsApp notification with the payload and a numbered list of matching skills
- User replies with their choice
Skill discovery
Skills opt into webhook handling by adding webhookEvents to their skill.json:
{
"openclaw": {
"webhookEvents": ["meeting.rtms_started", "meeting.rtms_stopped"],
"forwardPort": 4048,
"forwardPath": "/"
}
}
For command-based auto-handling (no running service required):
{
"openclaw": {
"webhookEvents": ["recording.completed"],
"webhookCommands": {
"recording.completed": {
"command": "python3 scripts/download.py {{meeting_id}}",
"description": "Download cloud recording",
"meetingIdPath": "payload.object.id"
}
}
}
}
command— shell command to run;{{meeting_id}}is replaced with the extracted valuemeetingIdPath— dot-separated path to extract the meeting ID from the webhook payloaddescription— human-readable description for notifications
The ngrok skill scans all sibling skill folders for skill.json files with these fields.
Stdout output
The server also writes each webhook as a JSON line to stdout for process polling:
{
"id": "uuid",
"timestamp": "ISO-8601",
"method": "POST",
"path": "/webhook",
"query": {},
"body": {}
}
Health check
curl http://localhost:4040/health
Stop the listener
Kill the background process when done.
Integration with Zoom
Typical flow:
- Start this webhook listener → get ngrok URL
- Configure the ngrok URL in your Zoom Marketplace app's webhook settings
- When RTMS starts, Zoom sends
meeting.rtms_started→ auto-forwarded to the RTMS Meeting Assistant - When RTMS stops, Zoom sends
meeting.rtms_stopped→ auto-forwarded, triggers cleanup
04 同仓库更多 Skills
zyfai
Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit/withdraw anytime.
zerion-api
暂无简介
zerion-api-skill
暂无简介
zerion-api-mcp
暂无简介
yahoo-finance-forex
Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR/USD, GBP/USD, USD/JPY, etc.). Analyzes sentiment and provides trading context.
yahoo-finance
This skill should be used when the user asks to "get stock prices", "check stock quotes", "look up earnings", "get financial data", "find trending stocks", or needs stock market data from Yahoo Finance.