Skills linear-webhook
Comment @mason or @eureka in Linear issues to dispatch tasks to agents. Webhook receives Linear comments and routes to correct agent.
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/arnarsson/linear-webhook" ~/.claude/skills/clawdbot-skills-linear-webhook && rm -rf "$T"
manifest:
skills/arnarsson/linear-webhook/SKILL.mdsource content
Linear Webhook Skill
Enables Linear issue comment @mentions to dispatch tasks to Clawdbot agents.
How It Works
- Comment in Linear:
or@mason implement user authentication@eureka plan Q2 roadmap - Linear webhook fires on comment creation
- Clawdbot receives webhook via exposed endpoint
- Transform parses payload:
- Extracts @mason or @eureka mention
- Gets issue context (title, description, labels)
- Prepares task prompt
- Routes to agent session:
- @mason →
agent (code/implementation)mason - @eureka →
agent (planning/strategy)eureka
- @mason →
- Agent processes task and returns result
- Result posted back as Linear comment
Setup
1. Configure Clawdbot Webhooks
Add to your
config.json5:
{ hooks: { enabled: true, token: "your-secret-token-here", // Generate with: openssl rand -base64 32 path: "/hooks", transformsDir: "/home/sven/clawd-mason/skills/linear-webhook", mappings: [ { name: "linear", match: { path: "/linear", method: "POST" }, action: "agent", transform: { module: "./linear-transform.js", export: "transformLinearWebhook" }, deliver: false, // Don't auto-deliver to chat - Linear comments handle responses } ] } }
2. Expose Webhook Endpoint
Use Cloudflare Tunnel or Tailscale Funnel to make webhook publicly accessible:
Option A: Cloudflare Tunnel (Recommended)
# Install if needed brew install cloudflared # Start tunnel (replace with your domain) cloudflared tunnel --url http://localhost:18789
Option B: Tailscale Funnel
# Enable funnel tailscale funnel 18789
Note the public URL (e.g.,
https://your-tunnel.trycloudflare.com)
3. Configure Linear Webhook
- Go to Linear Settings → API → Webhooks
- Click "Create new webhook"
- Set URL:
https://your-tunnel.trycloudflare.com/hooks/linear - Add custom header:
x-clawdbot-token: your-secret-token-here - Select events: Comment → Created
- Save webhook
4. Test
Comment in a Linear issue:
@mason add user authentication to the login page
Expected flow:
- Webhook fires to Clawdbot
- Mason agent receives task
- Mason implements or responds
- Result posted back to Linear issue as comment
Agent Routing
- @mason → Code implementation, debugging, technical tasks
- @eureka → Planning, strategy, research, communication
- Other mentions → Ignored (not handled)
Issue Context Provided
The agent receives:
- Issue title
- Issue description
- Issue labels
- Comment text (the @mention)
- Issue URL
- Commenter name
Customization
Add More Agents
Edit
linear-transform.js:
const AGENT_MENTIONS = { '@mason': 'mason', '@eureka': 'eureka', '@designer': 'designer', // Add your own agents };
Change Response Behavior
Modify
deliver and channel in config:
{ deliver: true, channel: "telegram", to: "1878354815", // Your Telegram chat ID }
This will also send agent responses to Telegram.
Security
- Never commit hook token to version control
- Use environment variables:
CLAWDBOT_HOOK_TOKEN - Verify webhook source (Linear's IP ranges if needed)
- Use HTTPS only (Cloudflare Tunnel provides this)
Troubleshooting
Webhook not firing
- Check Linear webhook logs (Settings → API → Webhooks → View logs)
- Verify tunnel is running:
curl https://your-tunnel.trycloudflare.com/hooks/linear - Check Clawdbot logs:
clawdbot gateway logs
Agent not responding
- Check transform is loading: Look for errors in gateway logs
- Verify agent session exists:
clawdbot sessions list - Test transform manually:
node linear-transform.js
Response not posting to Linear
- Implement Linear API comment posting in transform
- Add Linear API token to config
- See
for examplelinear-transform.js
Linear API Access
To post comments back to Linear, you need a Linear API token:
- Go to Linear Settings → API → Personal API keys
- Create new token with
scopewrite - Add to environment:
CLAWDBOT_LINEAR_API_KEY=lin_api_... - Transform will use this to post responses
Files
- This documentationSKILL.md
- Webhook payload parser and agent routerlinear-transform.js
- Linear GraphQL API client (for posting comments)linear-api.js
- Sample Linear webhook payload for testingexample-payload.json