| name | linear |
| description | Linear integration with Linearis CLI - rules, team config, issue format, and all Linear operations (create, update, comment, list, triage, view, project create/plan). Use when creating or managing Linear issues, referencing issues in commits/PRs, or working with Linear projects. |
Linear Integration Rules
CLI Tool: Linearis
Use Linearis CLI as the primary tool for Linear operations.
Installation
mise use -g npm:linearis@2025.12.3
Authentication
Linearis uses the $LINEAR_API_TOKEN environment variable for authentication.
Why Linearis over MCP
- More stable than Linear MCP server (which frequently disconnects)
- JSON output for easy parsing
- No token overhead in LLM context
- Simple CLI commands via terminal
Team Configuration
- Default Team: Self Driven Platform
- Identifier:
PLTFRM
- ID:
94fb9928-3874-464a-9f3d-a354d3364f5c
- Alternative Team: Platform ICEBOX
- Identifier:
PLAI
- ID:
7357e730-4a1a-4f1a-8e53-f42a5077dbbd
- Use only when explicitly requested
IMPORTANT: Always use PLTFRM as the issue team, unless explicitly requested otherwise.
Default Settings
| Setting | Default Value | Notes |
|---|
| Team | Self Driven Platform (PLTFRM) | Unless ICEBOX specifically requested |
| Assignee | me (current user) | Auto-assign to creator |
| Status | Backlog | Not Triage or Todo |
| Priority | Based on inference | See auto-detection rules |
| Labels | Based on inference | See auto-detection rules |
Status Options
- Backlog: Default for new issues (planned work)
- Triage: Use
/linear-triage or --status Triage for unplanned/incoming requests
- Todo: Ready to start
- In Progress: Currently being worked on
- In Review: Awaiting review
- Done: Completed
- Canceled: Will not be done
Auto-Detection Rules
Labels from Title Prefix
| Title Pattern | Label |
|---|
feat:, feat(, feature | Feature |
fix:, fix(, bug | Bug |
chore:, chore( | Chore |
docs:, docs(, documentation | Docs |
refactor:, refactor( | Improvement |
Priority from Keywords
| Keywords in Title/Description | Priority |
|---|
urgent, critical, broken, production | 1 (Urgent) |
important, high, asap | 2 (High) |
| (default) | 3 (Normal) |
low, minor, nice-to-have, someday | 4 (Low) |
Issue Reference Format
Always Use Full Markdown URLs
When referencing Linear issues in PR descriptions, commits, or documentation, always use the full markdown URL format:
# Correct
Closes [PLTFRM-123: Issue Title](https://linear.app/cloudwalk/issue/PLTFRM-123/issue-slug)
# Avoid (less informative)
Closes PLTFRM-123
Magic Words for Auto-Linking
Closes - Closes the issue when PR is merged
Fixes - Fixes the issue when PR is merged
Resolves - Resolves the issue when PR is merged
Linearis CLI Commands Reference
Issues
linearis issues create "Title" --team PLTFRM --status Backlog -a me
linearis issues create "feat: new feature" \
--team PLTFRM \
--status Backlog \
-a me \
-d "Description here" \
--labels "Feature" \
-p 3 \
--project "Project Name"
linearis issues read PLTFRM-123
linearis issues update PLTFRM-123 --status "In Progress"
linearis issues list --team PLTFRM --assignee me
linearis issues search "search query"
Comments
linearis comments create PLTFRM-123 --body "Comment text"
Projects
linearis projects list
linearis issues list --project "Project Name"
Labels
linearis labels list
Teams
linearis teams list
Workflow Integration
Creating Issues from Code Context
When working on code and needing to create a related issue:
- Use
/linear-create with context from current work
- Include file paths and relevant code snippets in description
- Link the created issue in subsequent commits
Linking Commits to Issues
git commit -m "feat(auth): add JWT validation
Closes [PLTFRM-123: Add JWT validation](https://linear.app/cloudwalk/issue/PLTFRM-123/add-jwt-validation)"
PR Description Format
## Related Issues
Closes [PLTFRM-123: Issue Title](https://linear.app/cloudwalk/issue/PLTFRM-123/issue-slug)
## Summary
- Implementation details here
MCP Fallback
Use Linear MCP only when Linearis CLI cannot perform the operation:
- Complex GraphQL queries not supported by Linearis
- Operations requiring real-time subscriptions
- Bulk operations not available in CLI
For most day-to-day operations (create, read, update, list, comment), prefer Linearis CLI.
/linear-create
Overview
Create a new Linear issue using Linearis CLI with intelligent inference for labels and priority.
Steps
-
Parse Arguments:
- Extract title from arguments (required)
- Extract description (optional)
- Extract team (default: PLTFRM)
- Extract project (optional)
- Extract labels (optional, or auto-detect)
- Extract priority (optional, or auto-detect)
- Extract status (default: Backlog)
-
Auto-Detect Labels from Title:
feat:, feat(, feature → Label: Feature
fix:, fix(, bug → Label: Bug
chore:, chore( → Label: Chore
docs:, docs( → Label: Docs
refactor:, refactor( → Label: Improvement
-
Auto-Detect Priority from Keywords:
urgent, critical, broken, production → Priority 1 (Urgent)
important, high, asap → Priority 2 (High)
- Default → Priority 3 (Normal)
low, minor, nice-to-have → Priority 4 (Low)
-
Create Issue with Linearis CLI:
linearis issues create "Title" \
--team PLTFRM \
--status Backlog \
-a me \
-d "Description" \
--labels "Label1,Label2" \
-p 3
-
Parse JSON Response:
- Extract issue identifier (e.g., PLTFRM-123)
- Extract issue URL
- Extract issue title
-
Generate Output:
- Display created issue details
- Provide full markdown URL for references
Default Settings
| Setting | Default | Notes |
|---|
| Team | PLTFRM | Self Driven Platform |
| Status | Backlog | Use /linear-triage for Triage |
| Assignee | me | Current user |
| Priority | 3 (Normal) | Unless detected from keywords |
| Labels | Auto-detected | Based on title prefix |
Output Format
## Issue Created
**Issue**: [PLTFRM-123: Issue Title](https://linear.app/cloudwalk/issue/PLTFRM-123/issue-slug)
**Team**: Self Driven Platform
**Status**: Backlog
**Priority**: Normal (3)
**Labels**: Feature
**Assignee**: @me
### Use in Commits/PRs
Closes PLTFRM-123: Issue Title
Examples
/linear-create "feat: add user authentication"
/linear-create "fix: login timeout" "Users are experiencing timeouts after 30 seconds"
/linear-create "chore: update dependencies" --priority 4 --labels "Chore,maintenance"
/linear-create "feat: new dashboard" --project "Q1 2025"
/linear-create "fix: critical production bug breaking payments"
Arguments
Arguments: $ARGUMENTS
- First argument: Issue title (required)
- Second argument: Issue description (optional)
--team: Team key (default: PLTFRM)
--project: Project name or ID
--labels: Comma-separated labels
--priority or -p: Priority 1-4
--status: Status name (default: Backlog)
Safety Checks
- ✅ Always use PLTFRM team unless explicitly specified
- ✅ Always set status to Backlog (not Triage/Todo)
- ✅ Always assign to current user
- ✅ Auto-detect labels and priority when not specified
- ✅ Generate full markdown URL for issue reference
- ❌ Never create issue without a title
/linear-update
Overview
Update an existing Linear issue using Linearis CLI.
Steps
-
Parse Arguments:
- Extract issue ID (required)
- Extract fields to update:
--title: New title
--description or -d: New description
--status: New status
--priority or -p: New priority (1-4)
--assignee or -a: New assignee
--labels: New labels (comma-separated)
--project: Add to project
-
Update Issue with Linearis CLI:
linearis issues update PLTFRM-123 \
--status "In Progress" \
-p 2
-
Parse JSON Response:
- Confirm update success
- Extract updated fields
-
Display Updated Issue:
- Show what changed
- Provide issue URL
Output Format
## Issue Updated
**Issue**: [PLTFRM-123: Issue Title](https://linear.app/cloudwalk/issue/PLTFRM-123/issue-slug)
### Changes Applied
| Field | Old Value | New Value |
|-------|-----------|-----------|
| Status | Backlog | In Progress |
| Priority | Normal (3) | High (2) |
Common Status Values
| Status | Description |
|---|
| Backlog | Planned work, not started |
| Triage | Needs review/prioritization |
| Todo | Ready to start |
| In Progress | Currently being worked on |
| In Review | Awaiting review |
| Done | Completed |
| Canceled | Will not be done |
Examples
/linear-update PLTFRM-123 --status "In Progress"
/linear-update PLTFRM-123 --priority 1
/linear-update PLTFRM-123 --status "In Review" --labels "Feature,ready-for-review"
/linear-update PLTFRM-123 -d "Updated description with more details"
/linear-update PLTFRM-123 --status "In Progress"
/linear-update PLTFRM-123 --status "Done"
Arguments
Arguments: $ARGUMENTS
- First argument: Issue identifier (required)
--title: New title
--description or -d: New description
--status: New status
--priority or -p: Priority 1-4
--assignee or -a: New assignee
--labels: Comma-separated labels
--project: Project name or ID
Safety Checks
- ✅ Always confirm issue exists before updating
- ✅ Show what will be changed before applying
- ❌ Never update without specifying issue ID
/linear-comment
Overview
Add a comment to a Linear issue using Linearis CLI.
Steps
-
Parse Arguments:
- Extract issue ID (required)
- Extract comment body (required)
-
Create Comment with Linearis CLI:
linearis comments create PLTFRM-123 --body "Comment text here"
-
Parse JSON Response:
- Confirm comment created
- Extract comment details
-
Display Confirmation:
- Show comment added
- Provide issue URL
Output Format
## Comment Added
**Issue**: [PLTFRM-123: Issue Title](https://linear.app/cloudwalk/issue/PLTFRM-123/issue-slug)
### Comment
> Comment text here...
**View**: [See in Linear](https://linear.app/cloudwalk/issue/PLTFRM-123/issue-slug#comment-xyz)
Examples
/linear-comment PLTFRM-123 "Started working on this"
/linear-comment PLTFRM-123 "Completed initial implementation. Ready for review."
/linear-comment PLTFRM-123 "Progress update:
- Implemented feature X
- Fixed bug Y
- Need to add tests"
/linear-comment PLTFRM-123 "Fixed in commit abc123. See PR #456"
Arguments
Arguments: $ARGUMENTS
- First argument: Issue identifier (required)
- Second argument: Comment body (required)
- Supports markdown formatting
Use Cases
- Progress updates during development
- Questions or clarifications
- Review feedback
- Blockers or dependency notes
- Completion notes
/linear-list
Overview
List Linear issues with filters using Linearis CLI.
Steps
-
Parse Filter Arguments:
--team: Team filter (default: PLTFRM)
--assignee or -a: Assignee filter (default: me)
--status: Status filter
--project: Project filter
--label: Label filter
--limit or -l: Result limit (default: 20)
-
List Issues with Linearis CLI:
linearis issues list \
--team PLTFRM \
--assignee me \
--limit 20
-
Parse JSON Response:
- Extract issue list
- Format for table display
-
Display Results:
- Show issues in table format
- Include count and filters applied
Output Format
## Issues (15 found)
**Filters**: Team: PLTFRM | Assignee: me | Status: all
| ID | Title | Status | Priority | Updated |
|----|-------|--------|----------|---------|
| PLTFRM-123 | feat: add authentication | In Progress | High | 2h ago |
| PLTFRM-122 | fix: login timeout | Backlog | Normal | 1d ago |
| PLTFRM-121 | chore: update deps | Done | Low | 3d ago |
**View in Linear**: [Team Issues](https://linear.app/cloudwalk/team/PLTFRM/active)
Examples
/linear-list
/linear-list --status "In Progress"
/linear-list --project "Q1 2025"
/linear-list --assignee all
/linear-list --label "Bug"
/linear-list --limit 50
/linear-list --status "Backlog" --label "Feature" --limit 10
Arguments
Arguments: $ARGUMENTS
--team: Team key (default: PLTFRM)
--assignee or -a: Assignee filter (default: me, use "all" for all)
--status: Status name filter
--project: Project name or ID
--label: Label name filter
--limit or -l: Max results (default: 20)
Default Behavior
- Shows issues assigned to current user
- From PLTFRM team
- All statuses (except archived)
- Limited to 20 results
/linear-triage
Overview
Quick shortcut to create a Linear issue in Triage status (for unplanned/incoming requests).
When to Use
Use /linear-triage instead of /linear-create when:
- Receiving ad-hoc requests that need review
- Creating issues from Slack messages or emails
- Capturing bugs reported by users
- Anything that needs prioritization before starting
Steps
-
Parse Arguments:
- Same as
/linear-create
- Status is automatically set to Triage
-
Create Issue with Linearis CLI:
linearis issues create "Title" \
--team PLTFRM \
--status Triage \
-a me
-
Display Created Issue:
- Same output as
/linear-create
- Highlights Triage status
Output Format
## Issue Created (Triage)
**Issue**: [PLTFRM-123: Issue Title](https://linear.app/cloudwalk/issue/PLTFRM-123/issue-slug)
**Team**: Self Driven Platform
**Status**: ⚠️ Triage (needs prioritization)
**Assignee**: @me
> This issue is in Triage. Review and move to Backlog when prioritized.
Difference from /linear-create
| Aspect | /linear-create | /linear-triage |
|---|
| Default Status | Backlog | Triage |
| Use Case | Planned work | Incoming requests |
| Priority | Auto-detected | Usually needs review |
Examples
/linear-triage "User reported login issue"
/linear-triage "API timeout from customer" "Customer XYZ reported timeouts on endpoint /api/v1/data"
/linear-triage "Production error in payments" --labels "Bug"
Arguments
Arguments: $ARGUMENTS
- First argument: Issue title (required)
- Second argument: Issue description (optional)
--labels: Comma-separated labels (optional)
--priority or -p: Priority 1-4 (optional)
--project: Project name (optional)
Workflow
- Create issue with
/linear-triage
- Review and prioritize in Linear
- Move to Backlog when ready to plan
- Move to Todo when ready to start
/linear-view
Overview
View detailed information about a Linear issue using Linearis CLI.
Steps
-
Parse Issue Identifier:
- Extract issue ID from arguments (required)
- Supports formats:
PLTFRM-123, 123, or full UUID
-
Fetch Issue Details:
linearis issues read PLTFRM-123
-
Parse JSON Response:
- Extract all issue fields
- Format for readable output
-
Display Issue Information:
- Title and identifier
- Status and priority
- Assignee and team
- Labels and project
- Description
- URL
Output Format
## PLTFRM-123: Issue Title
**Status**: In Progress
**Priority**: Normal (3)
**Assignee**: @username
**Team**: Self Driven Platform
**Labels**: Feature, backend
**Project**: Q1 2025
**Created**: 2025-01-10
**Updated**: 2025-01-13
### Description
Issue description content here...
### Links
- **Linear**: [View in Linear](https://linear.app/cloudwalk/issue/PLTFRM-123/issue-slug)
- **Git Branch**: `pltfrm-123-issue-slug`
### Reference for PRs
Closes PLTFRM-123: Issue Title
Examples
/linear-view PLTFRM-123
/linear-view 123
Arguments
Arguments: $ARGUMENTS
- First argument: Issue identifier (required)
- Format:
PLTFRM-123 or just 123
Error Handling
- If issue not found, display error message
- If identifier format invalid, suggest correct format
/linear-project-create
Overview
Create a Linear project from a Cursor plan file, converting plan tasks into Linear issues.
Steps
-
Parse Arguments:
- Extract plan file path (required, or detect from
.cursor/plans/)
- Extract project name (optional, defaults to plan name)
- Extract team (default: PLTFRM)
-
Read Plan File:
- Load plan from
.cursor/plans/ directory
- Parse YAML frontmatter for metadata
- Extract tasks/todos from plan content
-
Create Linear Project:
- Note: Linearis CLI doesn't support project creation directly
- Use Linear MCP or create issues with
--project flag to existing project
-
Create Issues from Tasks:
- For each task in the plan:
linearis issues create "Task title" \
--team PLTFRM \
--status Backlog \
--project "Project Name" \
-d "Task description from plan"
-
Update Plan with Issue Links:
- Add Linear issue IDs to plan tasks
- Create mapping between plan tasks and issues
-
Display Results:
- List all created issues
- Show project link
- Provide summary
Output Format
## Project Created from Plan
**Plan**: `.cursor/plans/2025-01-13-feature-x.md`
**Project**: [Project Name](https://linear.app/cloudwalk/project/project-id)
**Team**: Self Driven Platform
### Issues Created (5)
| # | Issue | Title | Status |
|---|-------|-------|--------|
| 1 | [PLTFRM-123](url) | Task 1 from plan | Backlog |
| 2 | [PLTFRM-124](url) | Task 2 from plan | Backlog |
| 3 | [PLTFRM-125](url) | Task 3 from plan | Backlog |
| 4 | [PLTFRM-126](url) | Task 4 from plan | Backlog |
| 5 | [PLTFRM-127](url) | Task 5 from plan | Backlog |
### Plan Updated
Tasks in plan now include Linear issue references.
Examples
/linear-project-create .cursor/plans/2025-01-13-feature-x.md
/linear-project-create .cursor/plans/plan.md --project "Q1 Feature Release"
/linear-project-create
Arguments
Arguments: $ARGUMENTS
- First argument: Plan file path (optional, auto-detects most recent)
--project: Project name in Linear (will create issues linked to this project)
--team: Team key (default: PLTFRM)
Workflow
- Create plan using
/plan command
- Review and refine plan
- Run
/linear-project-create to create issues
- Work on issues, update status
- Plan file stays in sync (optional)
Notes
- Requires existing Linear project to link issues to
- Each plan task becomes one Linear issue
- Task dependencies are noted in issue descriptions
- Plan file is updated with issue references after creation
/linear-project-plan
Overview
Generate a Cursor plan file from an existing Linear project, converting issues into actionable tasks.
Steps
-
Parse Arguments:
- Extract project name or ID (required)
- Extract output path (optional, defaults to
.cursor/plans/)
-
Fetch Project Details:
linearis projects list
-
Fetch Project Issues:
linearis issues list --project "Project Name"
-
Generate Plan File:
- Create YAML frontmatter with project metadata
- Convert issues to todo items
- Preserve issue relationships as dependencies
- Include issue links in task descriptions
-
Write Plan File:
- Save to
.cursor/plans/ directory
- Use naming convention:
YYYY-MM-DD-project-name.md
-
Display Results:
- Show created plan file path
- Summarize tasks imported
Output Format
## Plan Created from Project
**Project**: [Project Name](https://linear.app/cloudwalk/project/project-id)
**Plan File**: `.cursor/plans/2025-01-13-project-name.md`
### Tasks Imported (8)
| Status | Count |
|--------|--------|
| Backlog | 3 |
| Todo | 2 |
| In Progress | 2 |
| Done | 1 |
### Next Steps
1. Review the generated plan
2. Start working on tasks using the plan
3. Update Linear issues as you progress
Examples
/linear-project-plan "Q1 2025 Features"
/linear-project-plan "Project Name" --output .cursor/plans/q1-features.md
/linear-project-plan "Project Name" --team PLTFRM
Arguments
Arguments: $ARGUMENTS
- First argument: Project name or ID (required)
--output: Custom output file path
--team: Filter issues by team
--status: Filter issues by status (e.g., only active issues)
Status Mapping
| Linear Status | Plan Status |
|---|
| Backlog | pending |
| Triage | pending |
| Todo | pending |
| In Progress | in_progress |
| In Review | in_progress |
| Done | completed |
| Canceled | cancelled |
Workflow
- Identify Linear project to work on
- Run
/linear-project-plan "Project Name"
- Review generated plan
- Execute tasks using the plan
- Update Linear issues as you complete work
Use Cases
- Onboarding to existing project
- Planning sprint work from Linear backlog
- Creating execution roadmap from project issues
- Syncing Linear project state to local plan