一键导入
linear-cli
Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use by any agent before writing specs, editing code, or changing workflow files when the change could add compatibility behavior, aliases, silent fallbacks, or default-value fallbacks.
Use before presenting implementation plans and after non-trivial commits when the review should run through Claude Code with the configured Fable model. Runs claude -p in streaming review mode, derives the Fable model from claude/settings.json, constrains tools for read-only review plus currentness checks, handles resume, and defines review timeout semantics.
Use when committing, pushing, or preparing PRs. Defines the user's commit workflow, message style discovery, review handoff, and branch/worktree push requirements.
Linearのissueを整理し、会話しながら新規issueに落とすスキル。2つのモードを持つ: (1) 既存issue整理: Backlogの全issueをINVEST原則で診断し、分割・統合・再分類を提案・実行 (2) 会話→issue化: ユーザーとの対話から要件を引き出し、適切な粒度のissueに落とす 両モード完了後、整理された実行計画を自動生成する。 トリガー: 「issueを整理して」「Backlog整理」「issue棚卸し」「やること整理」「実行計画を作って」 「issueの粒度を揃えて」「issueに落として」「要件をissueにして」
Use before presenting implementation plans and after non-trivial commits that require review. Runs codex exec in read-only review mode, handles resume, MCP transport errors, and review timeout semantics.
Use for code implementation, bug fixes, refactors, and test additions. Enforces the user's development style: YAGNI, TDD, clear contracts, separation of concerns, no unsolicited fallback or backward-compatibility helpers, and maintainable code structure.
| 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:*) |
A CLI to manage Linear issues from the command line, with git and jj integration.
Generated from linear CLI v1.10.0
workspace = "lilpacys-workspace"
team_id = "LIL"
issue_sort = "priority"
linear issue list defaults to state=unstarted and assignee=self. When listing issues, always include all assignees and all states:
linear issue list -A --all-states --sort priority
When working on a Linear issue, move through states without skipping:
linear issue update <ID> -s "Todo"linear issue update <ID> -s "In Progress"linear issue update <ID> -s "In Review"linear issue update <ID> -s "Done"linear issue comment add <ID> -b "コメント本文"Do not move an issue directly to Done.
The linear command must be available on PATH. To check:
linear --version
If not installed, follow the instructions at:
https://github.com/schpet/linear-cli?tab=readme-ov-file#install
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:
--description-file for issue create and issue update commands--body-file for comment add and comment update commandsWhy use file-based flags:
\n sequences from appearing in markdownExample 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.
When reading and updating issue descriptions that contain inline images or uploaded files, do not round-trip the output of plain linear issue view back into linear issue update.
linear issue view downloads uploads.linear.app assets to local temp files by default/tmp or /var/folders/... paths on the current machinelinear issue update --description-file, the issue description will contain broken local-file image linksSafe read paths for issue descriptions with images:
linear issue view ISSUE-ID --no-download when you want the rendered markdown with remote asset URLs preservedlinear api when you need the raw issue.description field exactly as storedSafe update workflow for image-containing descriptions:
# Read the raw description without rewriting upload URLs
linear issue view PM-122 --no-download
# Or fetch the raw description field exactly as stored
linear api --variable id=PM-122 <<'GRAPHQL'
query($id: String!) {
issue(id: $id) {
description
}
}
GRAPHQL
# Edit the markdown in a temp file, then write it back
linear issue update PM-122 --description-file /tmp/description.md
Recovery if an inline image was broken by a bad round-trip:
linear issue viewlinear issue attach ISSUE-ID /path/to/file.png--description-filelinear 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 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 config # Interactively generate .linear.toml configuration
linear schema # Print the GraphQL schema to stdout
linear api # Make a raw GraphQL API request
For curated examples of organization features (initiatives, labels, projects, bulk operations), see organization-features.
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.
Prefer the CLI for all supported operations. The api command should only be used as a fallback for queries not covered by the CLI.
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"
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'
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 } }"}'