Linear CLI
Website: https://linear.app CLI Tool: linear-cli Authentication: Linear API key
Description
Linear CLI is a command-line interface for Linear, the modern issue tracking and project management tool. Manage issues, projects, teams, and workflows from the terminal. Essential for developers who prefer CLI workflows and automation with Linear's project management features.
Commands
Authentication
Login
linear-cli auth login
linear-cli auth
Authenticate with Linear API key.
Status
linear-cli auth status
Check authentication status.
Issues
List Issues
linear-cli issue list
linear-cli issue list --team TEAM
linear-cli issue list --assignee @me
linear-cli issue list --state backlog
linear-cli issue list --state started
linear-cli issue list --state completed
List issues with filters.
View Issue
linear-cli issue view <issue-id>
linear-cli issue view ENG-123
linear-cli issue view <issue-id> --web
View issue details or open in browser.
Create Issue
linear-cli issue create
linear-cli issue create --title "Bug fix" --description "Details"
linear-cli issue create -t "Title" -d "Description" --team TEAM
linear-cli issue create --priority urgent
linear-cli issue create --assignee user@example.com
Create new issue interactively or with flags.
Update Issue
linear-cli issue update <issue-id>
linear-cli issue update ENG-123 --state started
linear-cli issue update ENG-123 --assignee user@example.com
linear-cli issue update ENG-123 --priority high
linear-cli issue update ENG-123 --title "New title"
Update issue properties.
Close Issue
linear-cli issue close <issue-id>
linear-cli issue close ENG-123
linear-cli issue close ENG-123 --comment "Fixed in PR #456"
Close or complete issue.
Comment on Issue
linear-cli issue comment <issue-id> "Comment text"
linear-cli issue comment ENG-123 "Added fix"
Add comment to issue.
Assign Issue
linear-cli issue assign <issue-id> <email>
linear-cli issue assign ENG-123 user@example.com
linear-cli issue assign ENG-123 @me
Assign issue to user.
Projects
List Projects
linear-cli project list
linear-cli project list --team TEAM
linear-cli project list --state active
List projects.
View Project
linear-cli project view <project-id>
linear-cli project view <project-key>
View project details.
Create Project
linear-cli project create
linear-cli project create --name "Q1 Goals"
linear-cli project create --name "Project" --team TEAM
Create new project.
Teams
List Teams
linear-cli team list
linear-cli teams
List all teams.
View Team
linear-cli team view <team-key>
linear-cli team view ENG
View team details.
Labels
List Labels
linear-cli label list
linear-cli label list --team TEAM
List labels.
Create Label
linear-cli label create --name "bug" --color "#ff0000"
linear-cli label create --name "feature" --team TEAM
Create new label.
Workflow States
List States
linear-cli state list
linear-cli state list --team TEAM
List workflow states.
Cycles
List Cycles
linear-cli cycle list
linear-cli cycle list --team TEAM
linear-cli cycle list --state active
List sprint cycles.
View Cycle
linear-cli cycle view <cycle-id>
View cycle details.
Search
Search Issues
linear-cli search "search term"
linear-cli search "bug in auth"
linear-cli search "priority:urgent assignee:@me"
Search across issues.
Configuration
Set Default Team
linear-cli config set team TEAM
linear-cli config set team ENG
Set default team for commands.
Get Config
linear-cli config get <key>
linear-cli config list
View configuration.
Examples
Daily Workflow
# Check your assigned issues
linear-cli issue list --assignee @me --state started
# View specific issue
linear-cli issue view ENG-123
# Update issue status
linear-cli issue update ENG-123 --state in-progress
# Add comment
linear-cli issue comment ENG-123 "Working on this now"
# Complete issue
linear-cli issue close ENG-123
Creating Issues
# Interactive creation
linear-cli issue create
# With all details
linear-cli issue create \
--title "Fix login bug" \
--description "Users can't log in with OAuth" \
--team ENG \
--priority urgent \
--assignee user@example.com \
--label bug
# Quick bug report
linear-cli issue create \
-t "API timeout on /users endpoint" \
-d "Getting 504 errors" \
--priority high \
--label bug
Issue Management
# List backlog items
linear-cli issue list --state backlog --team ENG
# List high priority issues
linear-cli issue list --priority high
# List issues by label
linear-cli issue list --label bug
# Search for issues
linear-cli search "authentication"
# Bulk update (via script)
for issue in $(linear-cli issue list --label old-bug --format json | jq -r '.[].id'); do
linear-cli issue update $issue --state backlog
done
Project Planning
# List active projects
linear-cli project list --state active
# Create new project
linear-cli project create \
--name "Q1 2024 Goals" \
--description "Quarterly objectives" \
--team ENG
# View project progress
linear-cli project view PROJ-123
# Create issues for project
linear-cli issue create \
--title "Setup CI/CD" \
--project PROJ-123 \
--team ENG
Team Management
# List all teams
linear-cli team list
# View team issues
linear-cli issue list --team ENG
# View team workflow
linear-cli state list --team ENG
# List team members
linear-cli team view ENG
Sprint/Cycle Management
# List active cycles
linear-cli cycle list --state active
# View current cycle
linear-cli cycle view current
# List issues in cycle
linear-cli issue list --cycle current
# Add issue to cycle
linear-cli issue update ENG-123 --cycle current
Automation Scripts
# Daily standup report
#!/bin/bash
echo "=== My Issues ==="
linear-cli issue list --assignee @me --state started
echo ""
echo "=== Completed Yesterday ==="
linear-cli issue list --assignee @me --state completed --updated 1d
# Create issue from git commit
#!/bin/bash
BRANCH=$(git branch --show-current)
if [[ $BRANCH == bug/* ]]; then
TITLE=$(echo $BRANCH | cut -d'/' -f2-)
linear-cli issue create \
--title "$TITLE" \
--label bug \
--team ENG
fi
# Auto-close issues from PR
#!/bin/bash
# In git hook or CI
ISSUE_IDS=$(git log -1 --pretty=%B | grep -oE "ENG-[0-9]+")
for ISSUE in $ISSUE_IDS; do
linear-cli issue close $ISSUE --comment "Closed via PR"
done
Labels and Organization
# Create label set
linear-cli label create --name "bug" --color "#d73a4a"
linear-cli label create --name "feature" --color "#0075ca"
linear-cli label create --name "enhancement" --color "#a2eeef"
# Add labels to issue
linear-cli issue update ENG-123 --add-label bug
linear-cli issue update ENG-123 --add-label urgent
# List issues by label
linear-cli issue list --label bug --state backlog
Reporting
# Count issues by state
echo "Backlog: $(linear-cli issue list --state backlog | wc -l)"
echo "In Progress: $(linear-cli issue list --state started | wc -l)"
echo "Completed: $(linear-cli issue list --state completed | wc -l)"
# List overdue issues
linear-cli issue list --state started --sort due-date
# Team velocity report
linear-cli cycle view current --format json | jq '.completedIssues'
Notes
- Authentication: Requires Linear API key from Settings → API
- Issue IDs: Format is TEAM-NUMBER (e.g., ENG-123)
- Teams: Each workspace has multiple teams with unique keys
- States: Configurable workflow states (backlog, started, completed, etc.)
- Priorities: None, low, medium, high, urgent
- Labels: Customizable tags for categorization
- Projects: Long-term initiatives that group issues
- Cycles: Sprint periods (usually 1-2 weeks)
- Assignees: Issues can be assigned to team members
- Subscribers: Users who get notified of updates
- Parent Issues: Issues can have sub-issues
- Relations: Issues can be related or blocked by others
- Estimates: Story points for planning
- Due Dates: Optional deadlines for issues
- SLA: Service level agreements for support teams
- Templates: Reusable issue templates
- Integrations: GitHub, GitLab, Slack, Figma
- API: Full GraphQL API available
- Webhooks: Real-time event notifications
- Output Formats: Default, JSON, table
- Filtering: Powerful query language for searches
- Sorting: By priority, date, state, etc.
- Pagination: For large result sets
- Config File: ~/.linear/config.json
- Environment: LINEAR_API_KEY for CI/CD
- Best Practices:
- Use clear, descriptive issue titles
- Add labels for easy filtering
- Assign issues to track ownership
- Update status regularly
- Link to PRs and commits
- Use projects for epics
- Set priorities appropriately
- Add context in descriptions
- Comment with progress updates
- Close issues when done
Comments (0)
Add a Comment
No comments yet. Be the first to comment!