Linear CLI
linear-cli
A Linear CLI for the terminal: list, start and create issues, PRs from a branch, JSON output and an agent skill, with git and jj support
- 1,018 ★ on the repository
- Last commit
- ISC
Broad access
Why this level
- A Linear API key gives read and write access to the workspace: issues, comments, projects, documents
- The CLI can delete and archive issues, milestones and documents
- The --public flag publishes an image at a link without authentication, and the skill lets the agent call curl
Install
- Works in
Manual install
brew install schpet/tap/linearFor a project you can use npm install -D @schpet/linear-cli (the package ships prebuilt binaries). A shell installer for macOS and Linux and release binaries also exist.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- A Linear API key gives read and write access to the workspace: issues, comments, projects, documents
- The CLI can delete and archive issues, milestones and documents
- The --public flag publishes an image at a link without authentication, and the skill lets the agent call curl
This is third-party code. Review the repository files before installing.
What it does
linear is a console client for the Linear tracker written in Rust. It finds the current issue from the ID in the git branch name or from a Linear-issue trailer in jj commits, so `linear issue view`, `update`, `comment` and `pr` work without a number. `linear issue start` creates a branch and marks the issue started, `linear issue pr` opens a PR through gh with a ready title and body, and `linear issue query --json` returns a selection by team, state and text for scripts and agents. Beyond issues the CLI manages teams, projects, milestones, documents and attachments. A `linear-cli` skill comes with it: it lets the agent call `linear` and `curl` and describes direct requests to the Linear GraphQL API for cases the commands do not cover.
Who it is for. For developers who track work in Linear and want to handle it from the terminal, scripts and agents such as Claude Code.
Good fit when
- You need to pull an issue from the queue and get a properly named branch: `linear issue start ENG-123`
- An agent has to find issues by filters: `linear issue query --team ENG --state started --json`
- You want a PR with the title and body taken from the issue: `linear issue pr`
- Issue status or fields change from a script: `linear issue update ENG-123 -s started`
- An issue needs a comment or attachment from the terminal: `linear issue comment add`, `linear issue attach`
Not a fit when
- You want an MCP integration: linear-mcp-server and mcp-linear cover that, while this CLI works through the shell
- Attachments must stay inside the workspace: avoid --public, which exposes an image without authentication
- The agent must not be allowed to delete: the CLI has `issue delete`, `issue archive` and deletion of documents and milestones
- You do not track work in Linear: the CLI is tied to its API
Example request
Find my started issues in team ENG, pick the highest priority one and create a branch for itLimitations
A personal Linear API key is required, created on the account security settings page, followed by `linear auth login` and `linear config` in a repository. `linear issue pr` needs the GitHub CLI (gh). Commands without an ID work when the branch name contains the issue ID (for example eng-123-my-feature). When upgrading from 2.x read the upgrade section of the CHANGELOG. The sources do not describe availability of Linear from Russia.
How to disable. Remove the binary (after Homebrew that is `brew uninstall linear`) or the @schpet/linear-cli dev dependency, disable the linear-cli plugin in the /plugin menu and revoke the API key in Linear settings.
FAQ
How do I install Linear CLI and connect it to Claude Code?
Install the CLI via Homebrew (brew install schpet/tap/linear), npm (npm install -D @schpet/linear-cli) or the shell script from releases. The skill connects to Claude Code with /plugin marketplace add schpet/linear-cli and /plugin install linear-cli@linear-cli.
How do I authenticate Linear CLI?
Create an API key on the Linear security settings page and run linear auth login, then linear config inside the repository directory. Multiple workspaces have their own guide in docs/authentication.md.
Does Linear CLI work with jj?
Yes. With git the CLI finds the issue from the ID in the branch name, with jj from the Linear-issue trailer in the commit description that linear issue start adds.
How is Linear CLI different from linear-mcp-server?
linear-mcp-server runs as an MCP server, while linear is called from the shell and brings start, pr and ties to git and jj branches. The skill gives the agent instructions for those commands.
Are attachments visible to everyone?
Not by default: uploads are private and readable only by workspace members. The --public flag publishes raster images at a public.linear.app link anyone can open without authentication, and the CLI prints a warning.
Discussion
No questions or reviews yet.
Related
CLI toolsMCP server for Linear: the agent creates and updates issues, searches the tracker and adds comments through the Linear API
An MCP server for Linear: issues, projects, cycles, milestones, documents and project updates via the GraphQL API
A CLI and skill for Yandex Tracker and Wiki: short output readable by people and agents alike, instead of raw MCP payloads costing thousands of tokens
kaiten-cli
kaiten
Command-line client and MCP server for the Kaiten tracker: cards, comments, checklists and files from the terminal or an agent
yt: Yandex Tracker CLI with safety policies
yt — Yandex Tracker CLI
A cross-platform NativeAOT Yandex Tracker CLI with four sign-in modes, a read-only mode, and queue and write-scope restrictions
A Yandex Tracker CLI built for LLM agents: issues, comments, worklogs, checklists and bulk operations, with an agent skill
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Linear CLI (this entry) | no | 1,018 | ||
| Linear MCP Server | no | API key | 347 | an MCP server through which an agent creates and updates issues, instead of a console client with start and pr commands |
| MCP Linear | no | API key | 148 | an MCP server for issues, projects, cycles, milestones and documents over the GraphQL API |
| Basecamp CLI | yes | 294 | the official Basecamp CLI |
README in short
The README opens with commands that show the workflow: setup, listing, starting, viewing, creating a PR and creating issues. It then covers installation (Homebrew, npm, shell script, binaries, build from source), key setup, a command reference for issues, teams, users, projects, milestones and documents, environment variables and the .linear.toml file. The skills section explains how to install the plugin in Claude Code and how to add the skill for other agents through skills.sh.