Marketplace
managing-linear-issues
Linear.app issue management using Linearis CLI with JSON output and smart ID resolution. Use when creating, viewing, updating, or searching Linear issues, managing sprints/cycles, or listing teams/projects.
$ Installer
git clone https://github.com/FortiumPartners/ensemble /tmp/ensemble && cp -r /tmp/ensemble/packages/infrastructure/skills/managing-linear-issues ~/.claude/skills/ensemble// tip: Run this command in your terminal to install the skill
SKILL.md
name: managing-linear-issues description: Linear.app issue management using Linearis CLI with JSON output and smart ID resolution. Use when creating, viewing, updating, or searching Linear issues, managing sprints/cycles, or listing teams/projects.
Linear Integration Skill
Purpose: Issue management for Linear.app using Linearis CLI with JSON output optimized for LLM agents.
Tool: Linearis CLI - npm package linearis
Table of Contents
- Prerequisites
- Decision Tree
- Quick Command Reference
- Pattern Recognition - Auto-Invocation
- Workflow Examples
- Error Handling
- Authentication Strategy
- JSON Output Handling
Prerequisites
Verify Installation
# Check CLI installed
linearis --version
Authentication (Priority Order)
IMPORTANT: Always check for project-specific credentials first. Different projects may use different Linear workspaces.
-
Project .env (PREFERRED - project-specific):
# Check project .env for LINEAR_API_KEY grep LINEAR_API_KEY .env # Run commands with project token export LINEAR_API_TOKEN="$(grep LINEAR_API_KEY .env | cut -d= -f2)" linearis teams list -
Environment Variable (session override):
export LINEAR_API_TOKEN="lin_api_xxx"
Running Commands with Project Credentials
# Inline token from project .env (recommended)
LINEAR_API_TOKEN=$(grep LINEAR_API_KEY .env | cut -d= -f2) linearis <command>
# Or export for session
export LINEAR_API_TOKEN=$(grep LINEAR_API_KEY .env | cut -d= -f2)
linearis <command>
Decision Tree
Issue Operations
User wants to...
├── View issue details
│ └── linearis issues read <ISSUE-ID>
├── Create new issue
│ └── linearis issues create "Title" --team <Team> [options]
├── Update existing issue
│ └── linearis issues update <ISSUE-ID> [--state|--assignee|--priority]
├── Search issues
│ └── linearis issues search "query" [--team|--limit]
├── List recent issues
│ └── linearis issues list [--limit N] [--team Name]
└── Delete issue (soft)
└── linearis issues update <ISSUE-ID> --trashed
Metadata Operations
User wants to...
├── List teams
│ └── linearis teams list
├── List projects
│ └── linearis projects list
├── List cycles/sprints
│ └── linearis cycles list [--team Name] [--active]
├── List labels
│ └── linearis labels list [--team Name]
└── List users
└── linearis users list [--active]
Comments
Add a comment to an issue
└── linearis comments create <ISSUE-ID> --body "Comment text"
Quick Command Reference
Issues CRUD
| Operation | Command | Example |
|---|---|---|
| List | linearis issues list | linearis issues list --limit 10 --team TractionBD |
| Search | linearis issues search "query" | linearis issues search "auth bug" |
| Read | linearis issues read <ID> | linearis issues read TBD-456 |
| Create | linearis issues create "Title" | linearis issues create "Fix login" --team TractionBD --priority 1 |
| Update | linearis issues update <ID> | linearis issues update TBD-123 --state "In Review" |
Create Issue Options
linearis issues create "Title" \
--team "TractionBD" \
--assignee "user-id-or-name" \
--labels "Bug,Critical" \
--priority 1 \
--project "Project Name" \
--description "Detailed description" \
--parent-ticket TBD-100
Priority values: 0 (none), 1 (urgent), 2 (high), 3 (medium), 4 (low)
Update Issue Options
linearis issues update TBD-123 \
--state "In Review" \
--assignee "new-user" \
--priority 2 \
--labels "Bug,P1" \
--clear-labels \
--parent-ticket TBD-200 \
--trashed
Metadata Queries
# Teams
linearis teams list
# Projects
linearis projects list
# Labels (optionally by team)
linearis labels list --team TractionBD
# Users
linearis users list --active
# Cycles/Sprints
linearis cycles list --team TractionBD --active
linearis cycles list --team TractionBD --around-active 3
Comments
linearis comments create TBD-123 --body "This is a comment"
Pattern Recognition - Auto-Invocation
High Confidence Triggers (invoke immediately)
Issue Operations:
- "Create a Linear issue for..."
- "Open a ticket in Linear..."
- "Log this as a Linear bug..."
- "Check Linear issue TBD-123"
- "What's the status of TBD-123?"
- "Update TBD-123 to..."
- "Move TBD-123 to In Review"
- "Assign TBD-123 to..."
- "Close Linear issue..."
- "Search Linear for..."
- "Find issues about..."
Sprint/Cycle Operations:
- "What's in the current sprint?"
- "Show active cycle for..."
- "List team's cycles"
Metadata:
- "List Linear teams"
- "Show all projects in Linear"
- "What labels are available?"
- "Who can I assign this to?"
Issue ID Detection
# Linear issue ID pattern
[A-Z]{2,10}-\d+
# Examples: TBD-123, DEV-456, BACKEND-789
Context Signals
Strong indicators:
- .env contains LINEAR_API_KEY
- Recent messages mention "Linear"
- Issue IDs in ABC-123 format present
- User mentions "sprint", "cycle", "backlog"
Workflow Examples
Create Issue from Bug Report
User: "Create a Linear issue for the login timeout bug"
Steps:
1. Parse request: title=login timeout bug
2. Execute: linearis issues create "Login timeout bug" --team TractionBD --labels "Bug"
3. Return: Issue ID and details from JSON response
Check Issue Status
User: "What's the status of TBD-123?"
Steps:
1. Parse issue ID: TBD-123
2. Execute: linearis issues read TBD-123
3. Return: Issue title, state, assignee, priority from JSON
Update Issue State
User: "Move TBD-123 to In Review and assign to John"
Steps:
1. Get user list: linearis users list --active
2. Find John's ID from JSON
3. Update: linearis issues update TBD-123 --state "In Review" --assignee john-id
4. Confirm: linearis issues read TBD-123
Sprint Planning
User: "What issues are in the current sprint?"
Steps:
1. Get active cycle: linearis cycles list --team TractionBD --active
2. Parse cycle from JSON
3. List issues: linearis issues list --team TractionBD --limit 50
4. Filter by cycle in results
Error Handling
| Error | Cause | Resolution |
|---|---|---|
command not found: linearis | CLI not installed | npm install -g linearis |
No API token found | Missing authentication | Add LINEAR_API_KEY to project .env, then export as LINEAR_API_TOKEN |
Unauthorized | Invalid/expired token | Token may be for wrong workspace; check project .env |
Issue not found | Invalid issue ID or wrong workspace | Verify ID format and that you're using the correct project token |
Team not found | Invalid team name or wrong workspace | Run linearis teams list - may need different project token |
Rate limited | Too many requests | Wait 60s, retry with backoff |
Authentication Troubleshooting
Wrong workspace issues:
Problem: Commands return unexpected teams/issues
Cause: Using global token instead of project-specific token
Fix: Check project .env and use that token
# Verify which workspace you're connected to
LINEAR_API_TOKEN=$(grep LINEAR_API_KEY .env | cut -d= -f2) linearis teams list
Graceful Fallback
If Linearis unavailable:
1. Log the error for visibility
2. Provide web URL: https://linear.app/[workspace]/issue/ABC-123
3. Suggest manual action with instructions
Authentication Strategy
Priority Order:
1. Project .env (LINEAR_API_KEY) - project-specific workspaces
2. LINEAR_API_TOKEN env var - session override
Before Running Commands:
1. Check if project has .env with LINEAR_API_KEY
2. Export token for session
3. If no project .env, prompt user to add LINEAR_API_KEY
Example:
export LINEAR_API_TOKEN="$(grep LINEAR_API_KEY .env | cut -d= -f2)"
linearis teams list
JSON Output Handling
Linearis outputs JSON. Parse and extract relevant fields:
# Get issue title
linearis issues read TBD-123 | jq -r '.title'
# Get issue state
linearis issues read TBD-123 | jq -r '.state.name'
# List issue identifiers and titles
linearis issues list --limit 10 | jq -r '.[] | "\(.identifier): \(.title)"'
Repository

FortiumPartners
Author
FortiumPartners/ensemble/packages/infrastructure/skills/managing-linear-issues
0
Stars
1
Forks
Updated1d ago
Added1w ago