Skip to content

bobcats/linear-cli

linear-cli

License: MIT License: Apache 2.0 Rust

A fast, automation-friendly CLI for Linear issue tracking.

Unofficial tool. Not affiliated with Linear.

Highlights

  • 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)

Status

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.

Installation

Build from source:

git clone https://github.com/bobcats/linear-cli
cd linear-cli
cargo build --release
# binary: ./target/release/linear-cli

Optional local install to PATH:

cargo install --path .
# binary name remains: linear-cli

Quick Start

# 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 --markdown

Authentication

Get a token from linear.app/settings/api.

# interactive
linear-cli auth login

# non-interactive
echo "lin_api_xxxxx" | linear-cli auth login --with-token

Token resolution order:

  1. LINEAR_TOKEN
  2. LINEAR_API_TOKEN
  3. keyring storage

Headless Linux note: in CI/containers/SSH-only environments, keyring may be unavailable. Use environment variables.

Output Formats

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=compact
  • LINEAR_CLI_JSON_STYLE=pretty

Development

See CONTRIBUTING.md for contributor workflow.

Core commands:

cargo check
cargo test --workspace
cargo fmt --all
cargo clippy -p linear-cli --no-deps

Documentation

License

Licensed under either of:

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.

About

A fast, automation-friendly CLI for Linear issue tracking.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages