A fast, comprehensive command-line interface for Linear built in Rust.
$ npx -y skills add nesszer/linear-cli --agent claude-code
A fast, comprehensive command-line interface for Linear built in Rust. Manage issues, projects, cycles, sprints, documents, and more -- entirely from your terminal.
# Pre-built binary (fastest — no compilation)
cargo binstall linear-cli
# From crates.io (compiles from source)
cargo install linear-cli
# With OS keyring support (Keychain, Credential Manager, Secret Service)
cargo install linear-cli --features secure-storage
# From source
git clone https://github.com/nesszer/linear-cli.git
cd linear-cli && cargo build --release
Pre-built binaries for Linux (x86_64, aarch64), macOS (x86_64, aarch64), and Windows (x86_64) are available at GitHub Releases. cargo-binstall downloads these automatically.
# Recommended: let the CLI update itself
linear-cli update
# Check without installing
linear-cli update --check
# Manual fallback when you want the Cargo path directly
cargo install linear-cli --force
# Manual fallback for keyring-enabled builds
cargo install linear-cli --force --features secure-storage
cargo update updates a project's Cargo.lock. It does not upgrade an installed linear-cli binary.
# 1. Set your API key (get one at https://linear.app/settings/api)
printf '%s\n' "$LINEAR_API_KEY" | linear-cli config set-key
# Or use OAuth 2.0 (browser-based, auto-refreshing)
linear-cli auth oauth
# 2. List your issues
linear-cli i list --mine
# 3. Start working on an issue (assigns to you, sets In Progress, creates branch)
linear-cli i start LIN-123 --checkout
# 4. When done, mark complete and create a PR
linear-cli done
linear-cli g pr LIN-123
Full issue lifecycle management with 16 subcommands.
linear-cli issues list # List issues
linear-cli i list -t ENG --mine # My issues on a team
linear-cli i list --since 7d --group-by state # Last 7 days, grouped by status
linear-cli i list --label bug --count-only # Count bugs
linear-cli i list --view "My Sprint" # Apply a saved custom view
linear-cli i get LIN-123 # Issue details
linear-cli i get LIN-123 --history # Activity timeline
linear-cli i get LIN-123 --comments # Inline comments
linear-cli i get LIN-1 LIN-2 LIN-3 # Batch fetch
linear-cli i create "Fix login" -t ENG -p 1 # Create urgent issue
linear-cli i create "Fix login" -t ENG --project "Q2 Roadmap"
linear-cli i update LIN-123 -s Done # Update status
linear-cli i update LIN-123 -l bug -l urgent # Add labels
linear-cli i update LIN-123 --due tomorrow # Set due date
linear-cli i update LIN-123 -e 3 # Set estimate
linear-cli i start LIN-123 --checkout # Start + checkout branch
linear-cli i stop LIN-123 # Return to backlog
linear-cli i close LIN-123 # Mark as Done
linear-cli i assign LIN-123 "Alice" # Assign to user
linear-cli i move LIN-123 "Q2 Project" # Move to project
linear-cli i transfer LIN-123 ENG # Transfer to team
linear-cli i comment LIN-123 -b "LGTM" # Add comment
linear-cli i archive LIN-123 # Archive
linear-cli i open LIN-123 # Open in browser
linear-cli i link LIN-123 # Print URL
Create flags: --team, --description, --data, --priority, --state, --assignee, --labels, --due, --estimate, --project, --template, --dry-run
List flags: --mine, --team, --state, --assignee, --project, --label, --since, --view, --group-by (state/priority/assignee/project), --count-only, --archived
Full project CRUD with label management and archiving.
linear-cli projects list # List all projects
linear-cli p get "Q1 Roadmap" # Project details
linear-cli p create "New Feature" -t ENG # Create project
linear-cli p update PROJECT_ID --name "Renamed" # Update project
linear-cli p members "Q1 Roadmap" # List members
linear-cli p add-labels PROJECT_ID bug # Add labels
linear-cli p remove-labels PROJECT_ID bug # Remove labels
linear-cli p set-labels PROJECT_ID bug feat # Replace all labels
linear-cli p archive PROJECT_ID # Archive
linear-cli p unarchive PROJECT_ID # Unarchive
linear-cli p open "Q1 Roadmap" # Open in browser
linear-cli p delete PROJECT_ID # Delete
Track project health with status updates (onTrack, atRisk, offTrack).
linear-cli project-updates list PROJECT_ID # List updates
linear-cli pu get UPDATE_ID # Get update details
linear-cli pu create PROJECT_ID -b "On track" # Create update
linear-cli pu update UPDATE_ID -b "Updated" # Edit update
linear-cli pu archive UPDATE_ID # Archive
linear-cli pu unarchive UPDATE_ID # Unarchive
linear-cli teams list # List all teams
linear-cli t get ENG # Team details
linear-cli t members ENG # List members
linear-cli t create "Platform" -k PLT # Create team
linear-cli t update TEAM_ID --name "Infra" # Update team
linear-cli t delete TEAM_ID # Delete team
linear-cli cycles list -t ENG # List cycles
linear-cli c current -t ENG # Current cycle
linear-cli c get CYCLE_ID # Cycle details with issues
linear-cli c create -t ENG --start 2026-03-01 --end 2026-03-14
linear-cli c update CYCLE_ID --name "Sprint 5"
linear-cli c complete CYCLE_ID # Complete cycle
linear-cli c delete CYCLE_ID
Plan and manage cycle-based sprints with progress visualization, burndown charts, and velocity tracking.
linear-cli sprint status -t ENG # Current sprint status
linear-cli sp progress -t ENG # Progress bar visualization
linear-cli sp plan -t ENG # Next sprint's planned issues
linear-cli sp carry-over -t ENG --force # Move incomplete to next cycle
linear-cli sp burndown -t ENG # ASCII burndown chart
linear-cli sp velocity -t ENG # Velocity across past 6 sprints
linear-cli sp velocity -t ENG -n 10 # Velocity across past 10 sprints
# Documents
linear-cli documents list # List documents
linear-cli d create "ADR-001" -c "Content..." # Create document
linear-cli d update DOC_ID -c "Updated" # Update
linear-cli d delete DOC_ID # Delete
# Labels
linear-cli labels list # List labels
linear-cli l create "priority:p0" -c "#FF0000" # Create with color
linear-cli l update LABEL_ID -n "Renamed" # Rename
linear-cli l delete LABEL_ID # Delete
# Comments
linear-cli comments list ISSUE_ID # List comments
linear-cli cm create ISSUE_ID -b "Comment text" # Add comment
linear-cli cm update COMMENT_ID -b "Edited" # Edit
linear-cli cm delete COMMENT_ID # Delete
# Milestones
linear-cli milestones list -p "Q1 Roadmap" # List project milestones
linear-cli ms create "Beta" -p PROJECT_ID # Create milestone
linear-cli ms update MS_ID --name "GA" # Update
linear-cli ms delete MS_ID # Delete
# Roadmaps
linear-cli roadmaps list # List roadmaps
linear-cli rm get ROADMAP_ID # Roadmap details
linear-cli rm create "2026 Plan" # Create
linear-cli rm update RM_ID --name "H1 2026" # Update
linear-cli rm delete RM_ID # Delete
# Initiatives
linear-cli initiatives list # List initiatives
linear-cli init get INIT_ID # Initiative details
linear-cli init create "Platform Migration" # Create
linear-cli init update INIT_ID --name "Renamed" # Update
linear-cli init delete INIT_ID # Delete
linear-cli views list # List saved views
linear-cli v get VIEW_ID # View details
linear-cli v create "My Bugs" -t ENG # Create view
linear-cli v update VIEW_ID --name "Open Bugs" # Update
linear-cli v delete VIEW_ID # Delete
linear-cli i list --view "My Bugs" # Apply view to issue list
linear-cli relations list LIN-123 # List relationships
linear-cli rel add LIN-123 blocks LIN-456 # Add relation
linear-cli rel remove LIN-123 blocks LIN-456 # Remove relation
linear-cli rel parent LIN-456 LIN-123 # Set parent issue
linear-cli rel unparent LIN-456 # Remove parent
linear-cli attachments list ISSUE_ID # List attachments
linear-cli att get ATTACHMENT_ID # Get details
linear-cli att create ISSUE_ID -u URL -t "Doc" # Create attachment
linear-cli att link-url ISSUE_ID URL # Link a URL
linear-cli att update ATTACHMENT_ID -t "New" # Update
linear-cli att delete ATTACHMENT_ID # Delete
Local templates and Linear workspace (remote) templates.
# Local templates
linear-cli templates list # List local templates
linear-cli tpl create bug --team ENG --priority 2 --label bug
linear-cli --dry-run --output json tpl create bug --team ENG
linear-cli tpl show TEMPLATE_NAME # Show details
linear-cli tpl delete TEMPLATE_NAME --force # Delete
# Linear workspace templates
linear-cli tpl remote-list # List API templates
linear-cli tpl remote-get TEMPLATE_ID # Get template
linear-cli tpl remote-create -n "Bug Report" --type issue
linear-cli tpl remote-update TEMPLATE_ID # Update
linear-cli tpl remote-delete TEMPLATE_ID # Delete
linear-cli notifications list # Unread notifications
linear-cli n count # Unread count
linear-cli n read NOTIFICATION_ID # Mark as read
linear-cli n read-all # Mark all as read
linear-cli n archive NOTIFICATION_ID # Archive one
linear-cli n archive-all # Archive all
# Statuses
linear-cli statuses list -t ENG # List workflow states
linear-cli st update STATUS_ID --name "Review" # Rename a status
# Time tracking
linear-cli time list ISSUE_ID # List time entries
linear-cli tm update ENTRY_ID --hours 2.5 # Update entry
linear-cli favorites list # List favorites
linear-cli fav add ISSUE_ID # Add to favorites
linear-cli fav remove FAVORITE_ID # Remove
linear-cli is a Claude Code plugin with 38 hand-picked skills, indexed on Flowy in the Productivity category. Install it with the command on its page. It includes linear-api, linear-attachments, linear-bulk. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it