Skills openhook-cli

openhook CLI

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/berkantay/openhook-cli" ~/.claude/skills/clawdbot-skills-openhook-cli && rm -rf "$T"
manifest: skills/berkantay/openhook-cli/SKILL.md
source content

openhook CLI

Use the openhook CLI to receive real-time events from external platforms and communicate with other agents through channels.

When to use

  • Receiving webhook events from GitHub, Stripe, Linear, Vercel, Slack
  • Listening for external platform events in real-time
  • Sending messages to other agents through channels
  • Coordinating multi-agent workflows

Installation

brew tap openhook-dev/openhook && brew install openhook

Authentication

Requires an API key from openhook. The user must:

  1. Sign up at https://openhook.dev/signup
  2. Go to Settings > API Keys
  3. Create a new API key (starts with
    oh_live_
    or
    oh_test_
    )

Then authenticate:

openhook auth login --key oh_live_xxxxxxxx

# Verify authentication worked
openhook whoami

Receiving Events

Subscribe to platform events

# GitHub
openhook subscribe github --repo owner/repo --events push,pull_request,issues

# Stripe
openhook subscribe stripe --events payment_intent.succeeded,customer.created

# Linear
openhook subscribe linear --events issue.created,issue.updated

Listen for events

# Interactive output
openhook listen

# JSON output (for parsing)
openhook listen --json

# Pipe to your processing script
openhook listen --json | jq '.payload'

Background daemon

openhook daemon start
openhook daemon status
openhook daemon logs -f
openhook daemon stop

Channels (Agent-to-Agent Communication)

Channels let agents send messages to each other. Each agent subscribes to a channel with a unique name, then messages can be sent to specific agents or broadcast to all.

Create a channel

openhook channel create <name> [--description "..."]

# Example
openhook channel create deploy-team --description "Deployment coordination"

Subscribe to a channel

Each subscription needs:

  • --endpoint
    : The HTTP endpoint ID that will receive messages
  • --name
    : A unique alias for this agent in the channel
openhook channel subscribe <channel-id> --endpoint <endpoint-id> --name <alias>

# Example: Subscribe the "deployer" agent
openhook channel subscribe ch_abc123 --endpoint ep_xyz789 --name deployer

List channel members

openhook channel members <channel-id>
openhook channel members <channel-id> --json

Send messages

# Send to specific agent
openhook channel send <channel-id> "<message>" --to <agent-name>

# Broadcast to all agents
openhook channel send <channel-id> "<message>" --to all

# Include sender info
openhook channel send <channel-id> "<message>" --to <agent-name> --from <your-name>

Channel workflow example

# 1. Create coordination channel
openhook channel create release-v2 --description "v2.0 release coordination"

# 2. Agents join with their endpoints
openhook channel subscribe ch_xxx --endpoint ep_builder --name builder
openhook channel subscribe ch_xxx --endpoint ep_tester --name tester
openhook channel subscribe ch_xxx --endpoint ep_deployer --name deployer

# 3. Coordinate the release
openhook channel send ch_xxx "build v2.0.0" --to builder --from coordinator
openhook channel send ch_xxx "run integration tests" --to tester --from builder
openhook channel send ch_xxx "deploy to staging" --to deployer --from tester
openhook channel send ch_xxx "v2.0.0 deployed successfully" --to all --from deployer

Managing subscriptions

# List all subscriptions
openhook list

# View event history
openhook events

# Remove subscription
openhook unsubscribe <subscription-id>

Common patterns

Wait for specific event

# Listen until you get the event you need
openhook listen --json | while read -r event; do
  type=$(echo "$event" | jq -r '.event_type')
  if [ "$type" = "push" ]; then
    echo "$event" | jq '.payload'
    break
  fi
done

React to GitHub push

openhook subscribe github --repo myorg/myrepo --events push
openhook listen --json | jq -c 'select(.event_type == "push") | .payload.commits'

Reference

CommandDescription
openhook whoami
Show authenticated user
openhook subscribe <platform>
Subscribe to platform events
openhook list
List subscriptions
openhook unsubscribe <id>
Remove subscription
openhook listen [--json]
Listen for events
openhook events
View event history
openhook channel create <name>
Create channel
openhook channel list
List channels
openhook channel subscribe <ch> --endpoint <ep> --name <alias>
Join channel
openhook channel members <ch>
List members
openhook channel send <ch> <msg> --to <name|all>
Send message

Links