← Back to Skills Marketplace
kyaukyuai

Linear CLI

by Yuya Kakui · GitHub ↗ · v3.2.0 · MIT-0
cross-platform ⚠ suspicious
656
Downloads
1
Stars
1
Active Installs
25
Versions
Install in OpenClaw
/install kyaukyuai-linear-cli
Description
Use the linear-cli agent-native runtime to read and mutate Linear from Claude Code, Codex, or other agents. Use when the runtime needs default JSON output, s...
README (SKILL.md)

Linear CLI

An agent-native Linear runtime for the current v3 execution model, with stable JSON contracts, startup discovery, dry-run previews, timeout-aware write semantics, source-adjacent intake, and git/jj workflow integration.

Recommended Agent Loop

When using this CLI from an agent runtime, prefer this order:

  1. Discover command traits with linear capabilities; use --compat v1 only when an older consumer still expects the trimmed legacy shape
  2. Read Linear state with default-JSON core surfaces or --json
  3. Preview writes with --dry-run --json when available
  4. Apply writes on the default machine-readable surface, then inspect operation, receipt, and error.details
  5. Inspect exit codes and error.details instead of parsing styled terminal text

Prompt-driven human/debug flows are secondary and explicit. When a command supports prompts or editor entry, pass --profile human-debug --interactive; otherwise missing required inputs fail fast.

Agent-safe execution semantics are now the default runtime behavior. --text and --profile human-debug are the explicit human/debug escape hatches for maintainers, and --profile agent-safe remains accepted for compatibility with older automation.

When upstream tooling hands the runtime a normalized Slack, ticket, or similar source envelope, prefer --context-file, add --apply-triage if that envelope already contains deterministic team/state/label hints, and choose --autonomy-policy explicitly when the wrapper needs suggest-only or preview-required staging.

Recommended supporting docs:

Prerequisites

The linear command must be available on PATH. To check:

linear --version

If not installed, follow the instructions at:
https://github.com/kyaukyuai/linear-cli?tab=readme-ov-file#install

Best Practices for Markdown Content

When working with issue descriptions or comment bodies that contain markdown, prefer file-based flags for existing files and stdin for generated pipeline content:

  • Use --description-file for issue create and issue update commands when the content already exists on disk
  • Use --body-file for comment add and comment update commands when the content already exists on disk
  • Pipe stdin for generated markdown, for example cat description.md | linear issue create --title "My Issue" --team ENG

Why avoid large inline flags:

  • Ensures proper formatting in the Linear web UI
  • Avoids shell escaping issues with newlines and special characters
  • Prevents literal \ sequences from appearing in markdown
  • Makes it easier to work with multi-line content in scripts and pipelines

Example workflow:

# Write markdown to a temporary file
cat > /tmp/description.md \x3C\x3C'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 pipe generated markdown directly
cat /tmp/description.md | linear issue create --title "My Issue" --team ENG

# 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

linear auth               # Manage Linear authentication
linear issue              # Manage Linear issues
linear team               # Manage Linear teams
linear project            # Manage Linear projects
linear project-update     # Manage project status updates
linear cycle              # Manage Linear team cycles
linear milestone          # Manage Linear project milestones
linear initiative         # Manage Linear initiatives
linear initiative-update  # Manage initiative status updates (timeline posts)
linear label              # Manage Linear issue labels
linear document           # Manage Linear documents
linear notification       # Manage Linear notifications
linear webhook            # Manage Linear webhooks
linear workflow-state     # Manage Linear workflow states
linear user               # Manage Linear users
linear project-label      # Manage Linear project labels
linear config             # Interactively generate .linear.toml configuration
linear schema             # Print the GraphQL schema to stdout
linear api                # Make a raw GraphQL API request
linear capabilities       # Describe the agent-facing command surface
linear resolve            # Resolve references without mutating Linear

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
  • notification - Manage Linear notifications
  • webhook - Manage Linear webhooks
  • workflow-state - Manage Linear workflow states
  • user - Manage Linear users
  • project-label - Manage Linear project labels
  • config - Interactively generate .linear.toml configuration
  • schema - Print the GraphQL schema to stdout
  • api - Make a raw GraphQL API request
  • capabilities - Describe the agent-facing command surface
  • resolve - Resolve references without mutating Linear

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.

For machine-readable discovery, prefer:

linear capabilities
linear capabilities --compat v1

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 \x3C\x3C'GRAPHQL'
query($teamId: String!) { team(id: $teamId) { name } }
GRAPHQL

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

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

# Complex variables via JSON
linear api --variables-json '{"filter": {"state": {"name": {"eq": "In Progress"}}}}' \x3C\x3C'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 } }"}'
Usage Guidance
This skill is a documentation-heavy wrapper around the local `linear` CLI and appears internally consistent. Before installing or using it: 1) ensure you have a trusted `linear` binary installed from the linked repository; 2) understand that the CLI uses your Linear credentials (configured via `linear auth` or .linear.toml) — do not pass files or stdin that contain secrets unless you intend the CLI to consume them; 3) be cautious when invoking commands that accept file paths or stdin (bulk-file, content-file, bulk-stdin) to avoid accidental exposure of local files; and 4) review any use of curl or raw API commands if you plan to let the agent execute autonomously, since those could make arbitrary network requests if used improperly.
Capability Analysis
Type: OpenClaw Skill Name: kyaukyuai-linear-cli Version: 3.2.0 The skill bundle provides a comprehensive interface to the Linear CLI, including commands for issue management and authentication. It includes high-risk capabilities such as the ability to retrieve the Linear API token via `linear auth token` and broad network access via `Bash(curl:*)`, which is explicitly documented in `SKILL.md` as a fallback for GraphQL requests. While these features are aligned with the stated purpose of the skill, they represent a significant attack surface for data exfiltration if the agent is compromised. No evidence of intentional malice or harmful instructions was found in the documentation or the Deno-based documentation generator script (`scripts/generate-docs.ts`).
Capability Assessment
Purpose & Capability
The skill's name/description match the instructions and reference docs: it expects a local `linear` CLI and documents commands for reading/mutating Linear resources. It does not require unrelated environment variables, binaries, or config paths.
Instruction Scope
SKILL.md tells the agent to run the `linear` CLI and to use file/stdin flags (e.g., --content-file, --bulk-file, --bulk-stdin) and occasional interactive editor flows. Allowed-tools includes Bash(linear:*) and Bash(curl:*). This is reasonable for a CLI wrapper, but means an agent run can read local files passed to those flags and (because curl is allowed) perform network calls if invoked that way — review any file paths you give the agent and be cautious about piping secrets or system config into the CLI.
Install Mechanism
There is no install spec (instruction-only), so nothing will be written to disk by the skill itself. The README points to a GitHub repo for installing the `linear` binary — that is external to the skill and should be reviewed/trusted by the user before installation.
Credentials
The skill declares no required env vars or credentials (none in requires.env). Operationally, the `linear` CLI needs Linear credentials (auth configured via `linear auth` or .linear.toml) to perform mutations — this is expected and proportional, but those secrets will be used by the CLI if present. The skill does not ask for unrelated credentials.
Persistence & Privilege
always is false and the skill is user-invocable; it does not request persistent/global privileges or modify other skills' configurations. Autonomous invocation is allowed by default but is not combined with other red flags here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install kyaukyuai-linear-cli
  3. After installation, invoke the skill by name or use /kyaukyuai-linear-cli
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v3.2.0
Refresh skill docs for linear-cli v3.2.0
v3.1.0
Refresh skill docs for linear-cli v3.1.0
v3.0.1
Rollout hardening for linear-cli v3.0.1
v3.0.0
Refresh skill docs for linear-cli v3.0.0
v2.15.0
Add agent-safe execution profile and downstream certification for v2.15.0
v2.14.0
Add operation receipts, unified preview/apply contracts, and reference resolution for v2.14.0
v2.13.0
Refresh skill docs for linear-cli v2.13.0
v2.12.4
Refresh skill docs for linear-cli v2.12.4
v2.11.0
Refresh skill docs for linear-cli v2.11.0
v2.10.0
Refresh skill docs for linear-cli v2.10.0
v2.9.1
Refresh skill docs for linear-cli v2.9.1
v2.9.0
Add agent UX consistency improvements and safer stdin/write workflows for linear-cli v2.9.0
v2.8.2
Add dry-run safety rails and automation contract v2 read surfaces
v2.8.1
Publish Linear CLI skill for v2.8.1
v2.8.0
Automation Contract v2 and write safety rails
v2.7.1
Release linear-cli v2.7.1
v2.7.0
Refresh skill docs for linear-cli v2.7.0
v2.6.0
Refresh skill docs for linear-cli v2.6.0
v2.5.0
Refresh skill docs for linear-cli v2.5.0
v2.4.1
Add JSON output for issue relation add/delete
Metadata
Slug kyaukyuai-linear-cli
Version 3.2.0
License MIT-0
All-time Installs 1
Active Installs 1
Total Versions 25
Frequently Asked Questions

What is Linear CLI?

Use the linear-cli agent-native runtime to read and mutate Linear from Claude Code, Codex, or other agents. Use when the runtime needs default JSON output, s... It is an AI Agent Skill for Claude Code / OpenClaw, with 656 downloads so far.

How do I install Linear CLI?

Run "/install kyaukyuai-linear-cli" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Linear CLI free?

Yes, Linear CLI is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Linear CLI support?

Linear CLI is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Linear CLI?

It is built and maintained by Yuya Kakui (@kyaukyuai); the current version is v3.2.0.

💬 Comments