Manage Linear Issues and Projects from Your AI Agent with the Linear Skill
Manage Linear Issues and Projects from Your AI Agent with the Linear Skill
If you're a startup founder, developer, or engineering manager, chances are you've used Linear โ the sleek, fast project management tool that's become the go-to choice for modern software teams. But what if your AI agent could create issues, track progress, and manage your entire workflow without you ever opening the Linear app?
Enter the Linear skill for Clawdbot. This skill connects your agent directly to Linear's GraphQL API through managed OAuth, letting you query issues, create tasks, manage projects, and stay on top of your sprints โ all from natural conversation.
Who Is This For?
- Engineering managers who want to quickly check sprint progress or create issues on the fly
- Developers who prefer staying in their terminal or chat interface
- Teams using Linear who want AI-powered project management automation
- Anyone building workflows that need to interact with Linear programmatically
Installation
Install the Linear skill with one command:
npx clawhub@latest install linear-apiConfiguration
The Linear skill uses Maton for secure OAuth management. Here's how to set it up:
1. Get Your Maton API Key
- Create an account at maton.ai
- Go to maton.ai/settings
- Copy your API key
2. Set the Environment Variable
export MATON_API_KEY="your_api_key_here"Add this to your shell profile (.bashrc, .zshrc) to make it permanent.
3. Connect Your Linear Account
Create an OAuth connection to Linear:
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'linear'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
result = json.load(urllib.request.urlopen(req))
print(f"Open this URL to authorize: {result['connection']['url']}")
EOFOpen the returned URL in your browser to complete OAuth authorization.
Usage Examples
Example 1: List Your Current Issues
Ask your agent: "Show me my Linear issues that are in progress"
Behind the scenes, it runs:
{
issues(first: 10, filter: { state: { type: { eq: "started" } } }) {
nodes { id identifier title state { name } priority }
}
}Example 2: Create a New Bug Report
Say: "Create a bug in Linear: Login button not working on mobile Safari"
The skill executes:
mutation {
issueCreate(input: {
teamId: "YOUR_TEAM_ID",
title: "Login button not working on mobile Safari",
priority: 2
}) {
success
issue { id identifier title }
}
}Example 3: Search Across All Issues
Ask: "Search Linear for anything related to API rate limiting"
{
searchIssues(first: 10, term: "API rate limiting") {
nodes { id identifier title state { name } }
}
}Pro Tips
Use Human-Readable Identifiers: Linear's API accepts issue identifiers like MTN-527 instead of UUIDs, making it easier to reference specific issues.
Understand Priority Values:
- 0 = No priority
- 1 = Urgent
- 2 = High
- 3 = Medium
- 4 = Low
Know Your Workflow States: Linear uses state types (backlog, unstarted, started, completed, canceled) for filtering โ super useful for sprint reports.
Multiple Connections: If you work with multiple Linear workspaces, specify which connection to use with the Maton-Connection header.
Why GraphQL?
Linear exclusively uses GraphQL (no REST API), which means you get:
- Precise queries โ fetch exactly the fields you need
- Reduced round trips โ get related data (issues + assignees + labels) in one request
- Strongly typed schema โ explore the full API at Linear's Apollo Studio
Conclusion
The Linear skill transforms your AI agent into a powerful project management assistant. Instead of context-switching to Linear's UI, you can stay in your flow and let your agent handle issue creation, status checks, and sprint tracking.
Whether you're triaging bugs during a debugging session or getting a quick update on your team's progress, this skill keeps Linear at your fingertips โ or rather, at your agent's fingertips.
Links:
Comments (0)
No comments yet. Be the first to comment!