Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
schpet avatar

Linear Cli

  • 7.1k installs
  • 878 repo stars
  • Updated July 23, 2026
  • schpet/linear-cli

linear-cli is an agent skill for Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.

About

Manage Linear issues from the command line using the linear cli This skill allows automating linear management 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 bash linear version If not installed globally you can run it without installing via npx bash 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 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

  • Use `--description-file` for `issue create` and `issue update` commands
  • Use `--body-file` for `comment add` and `comment update` commands
  • 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

Linear Cli by the numbers

  • 7,069 all-time installs (skills.sh)
  • +372 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #89 of 2,209 Security skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

linear-cli capabilities & compatibility

Capabilities
use ` description file` for `issue create` and · use ` body file` for `comment add` and `comment · ensures proper formatting in the linear web ui · avoids shell escaping issues with newlines and s · prevents literal `\n` sequences from appearing i
Use cases
documentation
From the docs

What linear-cli says it does

--- name: linear-cli description: Manage Linear issues from the command line using the linear cli.
SKILL.md
This skill allows automating linear management.
SKILL.md
allowed-tools: Bash(linear:*), Bash(curl:*) --- # Linear CLI A CLI to manage Linear issues from the command line, with git and jj integration.
SKILL.md
npx skills add https://github.com/schpet/linear-cli --skill linear-cli

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs7.1k
repo stars878
Security audit3 / 3 scanners passed
Last updatedJuly 23, 2026
Repositoryschpet/linear-cli

When should developers use linear-cli and what problem does it solve?

Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.

Who is it for?

Developers working with linear-cli patterns described in the skill documentation.

Skip if: Skip when cached docs are empty or the task is outside the skill's documented scope.

When should I use this skill?

Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.

What you get

Grounded guidance and workflows from SKILL.md for linear-cli.

  • Linear issue
  • issue comment
  • state transition

Files

SKILL.mdMarkdownGitHub ↗

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

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 auth
linear auth login
linear auth logout
linear auth list
linear auth default
linear auth token
linear auth whoami
linear auth migrate

linear issue
linear issue id
linear issue mine
linear issue query
linear issue title
linear issue start
linear issue view
linear issue url
linear issue describe
linear issue commits
linear issue pull-request
linear issue delete
linear issue create
linear issue update
linear issue comment
linear issue comment add
linear issue comment delete
linear issue comment update
linear issue comment list
linear issue attach
linear issue link
linear issue relation
linear issue relation add
linear issue relation delete
linear issue relation list
linear issue agent-session
linear issue agent-session list
linear issue agent-session view

linear team
linear team create
linear team delete
linear team list
linear team id
linear team autolinks
linear team members

linear project
linear project list
linear project view
linear project create
linear project update
linear project delete

linear project-update
linear project-update create
linear project-update list

linear cycle
linear cycle list
linear cycle view

linear milestone
linear milestone list
linear milestone view
linear milestone create
linear milestone update
linear milestone delete

linear initiative
linear initiative list
linear initiative view
linear initiative create
linear initiative archive
linear initiative update
linear initiative unarchive
linear initiative delete
linear initiative add-project
linear initiative remove-project

linear initiative-update
linear initiative-update create
linear initiative-update list

linear label
linear label list
linear label create
linear label delete

linear document
linear document list
linear document view
linear document create
linear document update
linear document delete

linear config

linear schema

linear api

Reference Documentation

  • auth - Manage Linear authentication
  • issue - Manage Linear issues
  • team - Manage Linear teams
  • project - Manage Linear projects
  • project-update - Manage project status updates
  • cycle - Manage Linear team cycles
  • milestone - Manage Linear project milestones
  • initiative - Manage Linear initiatives
  • initiative-update - Manage initiative status updates (timeline posts)
  • label - Manage Linear issue labels
  • document - Manage Linear documents
  • config - Interactively generate .linear.toml configuration
  • schema - Print the GraphQL schema to stdout
  • api - Make a raw GraphQL API request

For curated examples of organization features (initiatives, labels, projects, bulk operations), see organization-features.

Discovering Options

To see available subcommands and flags, run --help on any command:

linear --help
linear issue --help
linear issue list --help
linear issue create --help

Each command has detailed help output describing all available flags and options.

Some commands have required flags that aren't obvious. Notable examples:

  • issue list requires a sort order — provide it via --sort (valid values: manual, priority), the issue_sort config option, or the LINEAR_ISSUE_SORT env var. Also requires --team <key> unless the team can be inferred from the directory — if unknown, run linear team list first.
  • --no-pager is only supported on issue list — passing it to other commands like project list will error.

Using the Linear GraphQL API Directly

Prefer the CLI for all supported operations. The api command should only be used as a fallback for queries not covered by the CLI.

Check the schema for available types and fields

Write the schema to a tempfile, then search it:

linear schema -o "${TMPDIR:-/tmp}/linear-schema.graphql"
grep -i "cycle" "${TMPDIR:-/tmp}/linear-schema.graphql"
grep -A 30 "^type Issue " "${TMPDIR:-/tmp}/linear-schema.graphql"

Make a GraphQL request

Important: GraphQL queries containing non-null type markers (e.g. String followed by an exclamation mark) must be passed via heredoc stdin to avoid escaping issues. Simple queries without those markers can be passed inline.

# Simple query (no type markers, so inline is fine)
linear api '{ viewer { id name email } }'

# Query with variables — use heredoc to avoid escaping issues
linear api --variable teamId=abc123 <<'GRAPHQL'
query($teamId: String!) { team(id: $teamId) { name } }
GRAPHQL

# Search issues by text
linear api --variable term=onboarding <<'GRAPHQL'
query($term: String!) { searchIssues(term: $term, first: 20) { nodes { identifier title state { name } } } }
GRAPHQL

# Numeric and boolean variables
linear api --variable first=5 <<'GRAPHQL'
query($first: Int!) { issues(first: $first) { nodes { title } } }
GRAPHQL

# Complex variables via JSON
linear api --variables-json '{"filter": {"state": {"name": {"eq": "In Progress"}}}}' <<'GRAPHQL'
query($filter: IssueFilter!) { issues(filter: $filter) { nodes { title } } }
GRAPHQL

# Pipe to jq for filtering
linear api '{ issues(first: 5) { nodes { identifier title } } }' | jq '.data.issues.nodes[].title'

Advanced: Using curl directly

For cases where you need full HTTP control, use linear auth token:

curl -s -X POST https://api.linear.app/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: $(linear auth token)" \
  -d '{"query": "{ viewer { id } }"}'

Related skills

FAQ

What does linear-cli do?

Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.

When should I invoke linear-cli?

Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.

Where is the source documentation?

Ground claims in SKILL.md excerpts and linked reference files from the cached docs.

Is Linear Cli safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Securityappsec

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.