linear cli
a cli to list, start and create issues in the linear issue tracker. git and jj aware to keep you in the right views in linear. allows jumping to the web or the linear desktop app similar to gh.
works great with AI agents — the CLI includes a skill that lets agents create issues, update status, and manage your Linear workflow alongside your code.
here's how it works:
linear config # setup your repo, it writes a config file
linear issue mine # list unstarted issues assigned to you
linear issue query --all-teams # query issues across all teams
linear issue query --search "login bug" # search issues in your configured team
linear issue start # choose an issue to start, creates a branch
linear issue start ABC-123 # start a specific issue
linear issue view # see current branch's issue as markdown
linear issue pr # makes a PR with title/body preset, using gh cli
linear issue create # create a new issue
it aims to be a complement to the web and desktop apps that lets you stay on the command line in an interactive or scripted way.
screencast demos
linear issue create
linear issue start
install
homebrew
brew install schpet/tap/linear
deno via jsr
deno install -A --reload -f -g -n linear jsr:@schpet/linear-cli
npm / bun / pnpm
install as a dev dependency to pin a version in your project:
npm install -D @schpet/linear-cli
# or
bun add -D @schpet/linear-cli
# or
pnpm add -D @schpet/linear-cli
then run via your package manager:
npx linear issue list
bunx linear issue list
note: this package ships pre-built binaries
package on npm: @schpet/linear-cli
binaries
https://github.com/schpet/linear-cli/releases/latest
local dev
git clone https://github.com/schpet/linear-cli
cd linear-cli
deno task install
setup
-
create an API key at linear.app/settings/account/security[^1]
-
authenticate with the CLI:
linear auth login
-
configure your project:
cd my-project-repo
linear config
see docs/authentication.md for multi-workspace support and other authentication options.
the CLI works with both git and jj version control systems:
- git: works best when your branches include Linear issue IDs (e.g.
eng-123-my-feature). use linear issue start or linear UI's 'copy git branch name' button and related automations.
- jj: detects issues from
Linear-issue trailers in your commit descriptions. use linear issue start to automatically add the trailer, or add it manually with jj describe, e.g. jj describe "$(linear issue describe ABC-123)"
commands
issue commands
the current issue is determined by:
- git: the issue id in the current branch name (e.g.
eng-123-my-feature)
- jj: the
Linear-issue trailer in the current or ancestor commits
note that Linear's GitHub integration will suggest git branch names.