A fast, automation-friendly CLI for Linear issue tracking.
Unofficial tool. Not affiliated with Linear.
- LLM/script-friendly output (JSON by default in non-TTY contexts)
- Read + core write workflows for issues
- Projects, project milestones, teams, cycles, labels, users, and search commands
- Multiple output formats: JSON, CSV, Markdown, table
- Secure token storage in system keyring (with env-var override)
Current release line includes:
- Authentication (
auth login|status|logout|token) - Issue read and write operations (create/update/comment/lifecycle/relation/delete)
- Project milestone CRUD and issue milestone assignment
- Project/team/cycle read operations
- Semantic search
See ROADMAP.md for upcoming work.
Build from source:
git clone https://github.com/bobcats/linear-cli
cd linear-cli
cargo build --release
# binary: ./target/release/linear-cliOptional local install to PATH:
cargo install --path .
# binary name remains: linear-cli# authenticate
linear-cli auth login
# issue workflows
linear-cli issue view ENG-123
linear-cli issue list --assignee @me --limit 10
linear-cli issue create --team ENG --title "Fix login bug"
linear-cli issue update ENG-123 --priority 2 --state "In Progress"
linear-cli issue update ENG-123 --milestone "Beta"
linear-cli issue comment add ENG-123 --body "Started investigation"
linear-cli issue lifecycle archive ENG-123
linear-cli issue relation link ENG-123 ENG-456
# other resources
linear-cli project list
linear-cli milestone list --project APP
linear-cli milestone create --project APP --name "Beta" --target-date 2026-06-30
linear-cli team list
linear-cli cycle current
# output format selection
linear-cli issue list --json | jq '.[0].identifier'
linear-cli project list --csv > projects.csv
linear-cli cycle current --markdownGet a token from linear.app/settings/api.
# interactive
linear-cli auth login
# non-interactive
echo "lin_api_xxxxx" | linear-cli auth login --with-tokenToken resolution order:
LINEAR_TOKENLINEAR_API_TOKEN- keyring storage
Headless Linux note: in CI/containers/SSH-only environments, keyring may be unavailable. Use environment variables.
All list/view-style commands support:
--json--csv--markdown--table
If no explicit format is passed, output is auto-selected by TTY detection.
JSON style control:
LINEAR_CLI_JSON_STYLE=compactLINEAR_CLI_JSON_STYLE=pretty
See CONTRIBUTING.md for contributor workflow.
Core commands:
cargo check
cargo test --workspace
cargo fmt --all
cargo clippy -p linear-cli --no-deps- Contributor guide: CONTRIBUTING.md
- Agent-specific repository context: AGENTS.md
- Future direction: ROADMAP.md
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you is dual-licensed as above without additional terms.