/linear-cli
Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.
$ npx -y skills add schpet/linear-cli --skill linear-cli --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/linear-cli
Context preview
The summary Claude sees to decide when to auto-load this skill.
Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.
SKILL.md
linear-cli.SKILL.mdname: linear-cli
description: Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.
allowed-tools: Bash(linear:*), Bash(curl:*)
Linear CLI
A CLI to manage Linear issues from the command line, with git and jj integration.
Prerequisites
The `linear` command must be available on PATH. To check:
linear --version
If not installed globally, you can run it without installing via npx:
npx @schpet/linear-cli --version
All subsequent commands can be prefixed with `npx @schpet/linear-cli` in place of `linear`. Otherwise, follow the install instructions at:\ https://github.com/schpet/linear-cli?tab=readme-ov-file#install
Common Tasks
Copy-pasteable recipes for the most frequent flows. Prefer these dedicated commands over `linear api` — reach for the GraphQL fallback only when no dedicated command or flag covers the operation.
Query issues with filters
`issue query` searches across all assignees and supports structured filters that can be combined:
linear issue query --team ENG --state started --json
linear issue query --project "Mobile App" --state backlog --state triage --unassigned
linear issue query --assignee sam --label bug --updated-after 2026-01-01
Note: `linear issue list` is an alias of `issue mine` and only shows _your_ issues — use `issue query` for anything scoped to other people or a whole team/project.
List my issues
linear issue mine --state started --sort priority
Create an issue
linear issue create --team ENG --title "Fix login redirect" \
--description-file ./description.md --no-interactive
Write multi-line markdown to a file and pass `--description-file` (see the markdown section below); `--no-interactive` avoids prompts in scripted use.
Update an issue's state, assignee, or labels
linear issue update ENG-123 --state "In Review" --assignee sam
linear issue update ENG-123 --unassign
linear issue update ENG-123 --add-label security # add, keep existing labels
linear issue update ENG-123 --remove-label sprint-42 # detach; does not delete the label
linear issue update ENG-123 --remove-label sprint-42 --add-label sprint-43 # atomic swap
linear issue update ENG-123 --label infra --label security # replaces the label set
Add a comment
linear issue comment add ENG-123 --body-file ./comment.md
Attach an image or screenshot so it is visible inline
linear issue comment add ENG-123 --attach ./screenshot.png
This uploads the image and embeds it in a comment, where Linear renders it inline. Do not use `linear issue attach` when the image must be visible: that command creates a sidebar link attachment and does not render images inline.
View an issue / get its URL
linear issue view ENG-123 # details incl. comments
linear issue view ENG-123 --json # structured output
linear issue url ENG-123 # print just the URL
Best Practices for Markdown Content
When working with issue descriptions or comment bodies that contain markdown, **always prefer using file-based flags** instead of passing content as command-line arguments:
- Use `--description-file` for `issue create` and `issue update` commands
- Use `--body-file` for `comment add` and `comment update` commands
**Why use file-based flags:**
- Ensures proper formatting in the Linear web UI
- Avoids shell escaping issues with newlines and special characters
- Prevents literal `\n` sequences from appearing in markdown
- Makes it easier to work with multi-line content
**Example workflow:**
# Write markdown to a temporary file
cat > /tmp/description.md <<'EOF'
## Summary
- First item
- Second item
## Details
This is a detailed description with proper formatting.
EOF
# Create issue using the file
linear issue create --title "My Issue" --description-file /tmp/description.md
# Or for comments
linear issue comment add ENG-123 --body-file /tmp/comment.md
**Only use inline flags** (`--description`, `--body`) for simple, single-line content.
Available Commands
Compact command list, generated from `linear --help`:
linear api
linear auth
linear auth default
linear auth list
linear auth login
linear auth logout
linear auth migrate
linear auth token
linear auth whoami
linear config
linear cycle
linear cycle list
linear cycle view
linear document
linear document create
linear document delete
linear document list
linear document update
linear document view
linear initiative
linear initiative add-project
linear initiative archive
linear initiative create
linear initiative delete
linear initiative list
linear initiative remove-project
linear initiative unarchive
linear initiative update
linear initiative view
linear initiative-update
linear initiative-update create
linear initiative-update list
linear issue
linear issue agent-session
linear issue agent-session list
linear issue agent-session view
linear issue attach
linear issue comment
linear issue comment add
linear issue comment delete
linear issue comment list
linear issue comment update
linear issue commits
linear issue create
linear issue delete
linear issue describe
linear issue id
linear issue link
linear issue mine
linear issue pull-request
linear issue query
linear issue relation
linear issue relation add
linear issue relation delete
linear issue relation list
linear issue start
linear issue title
linear issue update
linear issue url
linear issue view
linear label
linear label create
linear label delete
linear label list
linear milestone
linear milestone create
linear milestone delete
linear milestone list
linear milestone update
linear milestone view
linear project
linear project create
linear project delete
linear project list
linear project update
linear project view
linear project-update
linear project-update create
linear project-update list
linear schema
linear team
linear
Read more
name: linear-cli description: Manage Linear issues from the command line using the linear cli. This skill allows automating linear management. allowed-tools: Bash(linear:*), Bash(curl:*)
Linear CLI
A CLI to manage Linear issues from the command line, with git and jj integration.
Prerequisites
The `linear` command must be available on PATH. To check:
linear --version
If not installed globally, you can run it without installing via npx:
npx @schpet/linear-cli --version
All subsequent commands can be prefixed with `npx @schpet/linear-cli` in place of `linear`. Otherwise, follow the install instructions at:\ https://github.com/schpet/linear-cli?tab=readme-ov-file#install
Common Tasks
Copy-pasteable recipes for the most frequent flows. Prefer these dedicated commands over `linear api` — reach for the GraphQL fallback only when no dedicated command or flag covers the operation.
Query issues with filters
`issue query` searches across all assignees and supports structured filters that can be combined:
linear issue query --team ENG --state started --json linear issue query --project "Mobile App" --state backlog --state triage --unassigned linear issue query --assignee sam --label bug --updated-after 2026-01-01
Note: `linear issue list` is an alias of `issue mine` and only shows _your_ issues — use `issue query` for anything scoped to other people or a whole team/project.
List my issues
linear issue mine --state started --sort priority
Create an issue
linear issue create --team ENG --title "Fix login redirect" \ --description-file ./description.md --no-interactive
Write multi-line markdown to a file and pass `--description-file` (see the markdown section below); `--no-interactive` avoids prompts in scripted use.
Update an issue's state, assignee, or labels
linear issue update ENG-123 --state "In Review" --assignee sam linear issue update ENG-123 --unassign linear issue update ENG-123 --add-label security # add, keep existing labels linear issue update ENG-123 --remove-label sprint-42 # detach; does not delete the label linear issue update ENG-123 --remove-label sprint-42 --add-label sprint-43 # atomic swap linear issue update ENG-123 --label infra --label security # replaces the label set
Add a comment
linear issue comment add ENG-123 --body-file ./comment.md
Attach an image or screenshot so it is visible inline
linear issue comment add ENG-123 --attach ./screenshot.png
This uploads the image and embeds it in a comment, where Linear renders it inline. Do not use `linear issue attach` when the image must be visible: that command creates a sidebar link attachment and does not render images inline.
View an issue / get its URL
linear issue view ENG-123 # details incl. comments linear issue view ENG-123 --json # structured output linear issue url ENG-123 # print just the URL
Best Practices for Markdown Content
When working with issue descriptions or comment bodies that contain markdown, **always prefer using file-based flags** instead of passing content as command-line arguments:
- Use `--description-file` for `issue create` and `issue update` commands
- Use `--body-file` for `comment add` and `comment update` commands
**Why use file-based flags:**
- Ensures proper formatting in the Linear web UI
- Avoids shell escaping issues with newlines and special characters
- Prevents literal `\n` sequences from appearing in markdown
- Makes it easier to work with multi-line content
**Example workflow:**
# Write markdown to a temporary file cat > /tmp/description.md <<'EOF' ## Summary - First item - Second item ## Details This is a detailed description with proper formatting. EOF # Create issue using the file linear issue create --title "My Issue" --description-file /tmp/description.md # Or for comments linear issue comment add ENG-123 --body-file /tmp/comment.md
**Only use inline flags** (`--description`, `--body`) for simple, single-line content.
Available Commands
Compact command list, generated from `linear --help`:
linear api linear auth linear auth default linear auth list linear auth login linear auth logout linear auth migrate linear auth token linear auth whoami linear config linear cycle linear cycle list linear cycle view linear document linear document create linear document delete linear document list linear document update linear document view linear initiative linear initiative add-project linear initiative archive linear initiative create linear initiative delete linear initiative list linear initiative remove-project linear initiative unarchive linear initiative update linear initiative view linear initiative-update linear initiative-update create linear initiative-update list linear issue linear issue agent-session linear issue agent-session list linear issue agent-session view linear issue attach linear issue comment linear issue comment add linear issue comment delete linear issue comment list linear issue comment update linear issue commits linear issue create linear issue delete linear issue describe linear issue id linear issue link linear issue mine linear issue pull-request linear issue query linear issue relation linear issue relation add linear issue relation delete linear issue relation list linear issue start linear issue title linear issue update linear issue url linear issue view linear label linear label create linear label delete linear label list linear milestone linear milestone create linear milestone delete linear milestone list linear milestone update linear milestone view linear project linear project create linear project delete linear project list linear project update linear project view linear project-update linear project-update create linear project-update list linear schema linear team linear
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.
Repo: schpet/linear-cli

