Installation
Environment Variables
Get your credentials from Linear API Settings.
Configuration Options
Setup
- API Key
- OAuth Access Token
- Client Credentials
For personal projects or testing:
Webhook Handler
- Go to Settings → Workspace → Webhooks
- Create webhook with URL:
https://your-app.com/webhooks/linear - Add webhook secret
- Subscribe to events:
Comment(create),Reaction(create/delete)
Features
Supported Events
Comment(create) - New comments on issuesReaction(create/delete) - Emoji reactions on comments
Thread Types
Linear adapter supports two thread types: 1. Issue-level threadsPosting Comments
Post to issue:Markdown Support
Linear supports markdown in comments:Reactions
Add reactions to comments:Cards
Cards are converted to markdown:Thread IDs
Linear thread IDs encode issue ID and optional comment ID:- Issue:
linear:PROJ-123 - Comment thread:
linear:PROJ-123:c:abc123
Message History
Fetch comments from an issue or comment thread:Threading Behavior
Linear webhooks include parent comment information:- Root comment (no
parentId): Creates new comment-level thread - Reply (has
parentId): Routes to parent’s thread
Platform Limits
- Comment length: ~10,000 characters (no official limit documented)
- API rate limits: Linear rate limits
Code Examples
Troubleshooting
Webhook signature fails
Webhook signature fails
- Verify
LINEAR_WEBHOOK_SECRETmatches Linear webhook settings - Check webhook timestamp is within 5 minutes (prevent replay attacks)
- Ensure request body is raw (not parsed)
Bot doesn't respond to comments
Bot doesn't respond to comments
- Enable “Comment” webhook event in Linear settings
- Verify webhook URL is publicly accessible (HTTPS required)
- Check API key/token has
comments:createscope
Reactions don't work
Reactions don't work
- Grant
comments:createscope for adding reactions - Use Unicode emoji strings or emoji names
- Note:
removeReaction()has limited support
Client credentials token expired
Client credentials token expired
- Adapter auto-refreshes tokens before expiry
- If manual refresh needed, restart the adapter
- Tokens are valid for 30 days
Required Scopes
Linear OAuth Scopes:read- Read issues and commentswrite- Create/edit commentscomments:create- Create commentsissues:create- Create issues (if needed)
Creating a Linear OAuth App
1
Create OAuth app
Go to Linear OAuth Apps and create a new application.
2
Configure scopes
Select required scopes:
readwritecomments:create
3
Get credentials
Copy Client ID and Client Secret.
4
Set redirect URL
Add your OAuth callback URL (if using user authorization flow).
Next Steps
Message Handling
Process comments and build workflows
Linear SDK
Learn about the Linear GraphQL API
Issue Automation
Build automated issue management bots
State Management
Persist data across issue comments