Pilot webhook bridge
80+ agent skills for Pilot Protocol — communication, file transfer, trust, task routing, swarm coordination, and more
npx -y skills add TeoSlayer/pilot-skills --skill pilot-webhook-bridgeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Forward Pilot Protocol events to HTTP webhooks for Slack, Discord, PagerDuty, and custom integrations. Use this skill when: 1. You need to forward Pilot events to external services (Slack, Discord, Teams) 2. You need to integrate with monitoring/alerting platforms (PagerDuty, Datadog) 3. You need to trigger external workflows via webhooks 4. You need bidirectional sync between Pilot and external systems Do NOT use this skill when: - You need agent-to-agent messaging (use pilot-protocol directly) - You need persistent storage (use pilot-event-log instead) - You need complex transformations (use pilot-event-filter first)
The file declares its own license as AGPL-3.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.7 KB, as published. Nobody here has run it
pilot-webhook-bridge
Forward Pilot Protocol events (port 1002) to HTTP webhooks for integration with Slack, Discord, Microsoft Teams, PagerDuty, and custom HTTP endpoints.
Commands
Configure global webhook
pilotctl --json set-webhook <webhook-url>
All events on port 1002 are forwarded as HTTP POST with JSON payload.
Clear webhook
pilotctl --json clear-webhook
Subscribe and forward (selective)
pilotctl --json subscribe <source-hostname> <topic> --timeout <seconds> | \
jq -c '.data.events[]' | \
while IFS= read -r event; do
curl -X POST <webhook-url> -H "Content-Type: application/json" -d "$event"
done
Workflow: Slack Integration
SOURCE="production-app"
TOPIC="alerts.*"
SLACK_WEBHOOK="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
TIMEOUT=600
pilotctl --json subscribe "$SOURCE" "$TOPIC" --timeout "$TIMEOUT" | \
jq -c '.data.events[]' | \
while IFS= read -r event; do
topic=$(echo "$event" | jq -r '.topic')
message=$(echo "$event" | jq -r '.data.message // .')
severity=$(echo "$event" | jq -r '.data.severity // "info"')
# Map severity to color
case "$severity" in
critical|error) color="danger" ;;
warning) color="warning" ;;
*) color="good" ;;
esac
# Build Slack payload
slack_payload=$(jq -n \
--arg text "Pilot Event: $topic" \
--arg msg "$message" \
--arg color "$color" \
'{
text: $text,
attachments: [{
color: $color,
fields: [{title: "Message", value: $msg, short: false}]
}]
}')
curl -X POST "$SLACK_WEBHOOK" \
-H "Content-Type: application/json" \
-d "$slack_payload" \
--silent --show-error
done
Workflow: Discord Integration
DISCORD_WEBHOOK="https://discord.com/api/webhooks/YOUR/WEBHOOK"
pilotctl --json subscribe "$SOURCE" "$TOPIC" --timeout 300 | \
jq -c '.data.events[]' | \
while IFS= read -r event; do
topic=$(echo "$event" | jq -r '.topic')
value=$(echo "$event" | jq -r '.data.value // .data')
discord_payload=$(jq -n \
--arg title "Metric: $topic" \
--arg value "$value" \
'{
embeds: [{
title: $title,
description: "Value: " + $value,
color: 3447003
}]
}')
curl -X POST "$DISCORD_WEBHOOK" \
-H "Content-Type: application/json" \
-d "$discord_payload" \
--silent --show-error
done
Dependencies
Requires pilot-protocol skill, curl, jq, running daemon, and trust relationships with source agents.