Linear Webhook
Comment @mason or @eureka in Linear issues to dispatch tasks to agents. Webhook receives Linear comments and routes to correct agent.
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
Linear Webhook Skill
Enables Linear issue comment @mentions to dispatch tasks to Clawdbot agents.
How It Works
- Comment in Linear:
@mason implement user authenticationor@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 →
masonagent (code/implementation) - @eureka →
eurekaagent (planning/strategy)
- @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
linear-transform.jsfor example
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
writescope - Add to environment:
CLAWDBOT_LINEAR_API_KEY=lin_api_... - Transform will use this to post responses
Files
SKILL.md- This documentationlinear-transform.js- Webhook payload parser and agent routerlinear-api.js- Linear GraphQL API client (for posting comments)example-payload.json- Sample Linear webhook payload for testing
References
Files
8 totalComments
Loading comments…
