linear-cli について
linear-cli は、コマンドラインから Linear のイシューや関連するワークスペース情報を扱うツールです。イシューの参照、検索、作成、更新に対応し、CLI で扱いにくい操作には GraphQL を利用できます。
主な機能
- 01イシューの説明、コメント、メタデータを表示
- 02イシューの一覧表示と検索
- 03対話形式またはコマンドでイシューを作成
- 04イシューの状態更新とコメント追加
- 05CLI から Linear GraphQL を利用
活用シーン
- 01着手前にイシューの要件を読む
- 02状態、担当者、チーム、テキストで作業を探す
- 03タスク作業中にイシューを作成・更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ editframe/ skills --skill linear-cliインストール後、Claude Code で/linear-cliを入力して読み込まれたか確認します。
詳細
Linear CLI
コマンドラインからLinearの課題トラッカーを操作します。主な用途は次のとおりです。
- 課題からタスクを開始する -- IDで課題を取得し、説明を読んで作業を開始します
- 課題を検索/一覧表示する -- 状態、担当者、チーム、またはフリーテキスト検索で課題を探します
- 課題の詳細を表示する -- 説明全文、コメント、メタデータを読み取ります
- 課題の状態を更新する -- 課題を開始済みにし、進捗コメントを追加します
セットアップ
インストール
brew install schpet/tap/linear
認証
- https://linear.app/settings/account/security でAPIキーを作成します(ゲストではなくメンバーとしてのアクセスが必要です)
linear auth loginを実行し、プロンプトが表示されたらキーを貼り付けます- 確認します:
linear auth whoami
このリポジトリの設定
linear config
これにより、チームIDとワークスペースのスラッグを含む .linear.toml がリポジトリのルートに作成されます。このファイルはgitにチェックインされ、すべてのエージェントと開発者が同じ設定を共有できます。
課題からタスクを開始する
課題ID(例:ENG-123)を指定された場合:
# Read the full issue -- description, state, assignee, labels, comments
linear issue view ENG-123
# Get just the title (useful for branch names or commit messages)
linear issue title ENG-123
# Get the Linear URL
linear issue url ENG-123
実装を始める前に、エージェントは要件を理解するために課題の説明を読む必要があります。
タスクのライフサイクル
開始時:実装を始めたらすぐに、課題を「In Progress」に移動します。
linear issue update ENG-123 -s started
# or via GraphQL if CLI fails (see Updating Issues below)
本番環境へのデプロイ時:デプロイが完全に完了し、変更が本番環境に反映された後にのみ、「In Review」に移動します。Linearの状態を憶測で更新したり、プッシュ直後に更新したりしないでください。課題を開いたレビュアーは本番サイトを確認するため、変更がすでに反映されている必要があります。
必要な手順:
- telecine main にプッシュする(またはPRをマージする)
- デプロイジョブが正常に完了するまで、
scripts/wait-for-telecine-actionで待機する - その後にのみ、「In Review」に移動し、コメントを追加する
# From monorepo/ — MUST complete before touching Linear
scripts/wait-for-telecine-action
# Then move to In Review
linear api <<'GRAPHQL'
mutation {
issueUpdate(id: "EF2-123", input: { stateId: "2717b5fe-9ea0-429f-8edd-cf8eabe0551d" }) { success }
}
GRAPHQL
linear issue comment add EF2-123 -b "Deployed to production. <one-line summary of what changed>"
コメントは、コミットの一覧ではなく、実装または修正した内容を説明する1文にしてください。
課題の検索と一覧表示
# List unstarted issues assigned to you (default)
# --sort is required: manual or priority (NOT "updated")
linear issue list --sort priority
# List issues in a specific state
linear issue list -s started --sort priority
linear issue list -s backlog --sort priority
linear issue list --all-states --sort priority
# List issues for all assignees
linear issue list -A --sort priority
# List unassigned issues
linear issue list -U --sort priority
# Filter by project -- requires exact name match; use GraphQL if not found
linear issue list --project "Project Name" --sort priority --team ENG
# Filter by team (required if no .linear.toml in repo)
linear issue list --team ENG --sort priority
# Limit results
linear issue list --limit 10 --sort priority
GraphQL経由でプロジェクト内の課題を一覧表示する(プロジェクトの閲覧に推奨)
CLIの --project フィルターは不安定です(名前の完全一致が必要で、チームも指定する必要があります)。代わりにGraphQLを使用します:
# First find the project ID
linear api <<'GRAPHQL'
query {
projects(first: 50) {
nodes { id name }
}
}
GRAPHQL
# Then fetch its issues
linear api <<'GRAPHQL'
query {
project(id: "<id>") {
issues(first: 50) {
nodes { identifier title state { name } assignee { name } priority }
}
}
}
GRAPHQL
GraphQL経由のフリーテキスト検索
CLIには組み込みの検索コマンドはありませんが、api サブコマンドからGraphQL API全体を利用できます:
linear api --variable term="onboarding" <<'GRAPHQL'
query($term: String!) {
searchIssues(term: $term, first: 20) {
nodes { identifier title state { name } assignee { name } }
}
}
GRAPHQL
フィルタリングするには jq にパイプします:
linear api --variable term="bug" <<'GRAPHQL'
query($term: String!) {
searchIssues(term: $term, first: 20) {
nodes { identifier title state { name } }
}
}
GRAPHQL
課題の更新
# Mark as started (sets state to "In Progress")
# NOTE: linear issue update fails with "Could not determine team key from issue ID"
# for non-standard prefixes (e.g. EF2-123). Use GraphQL mutation instead (see below).
linear issue update ENG-123 -s started
# Update title or description
linear issue update ENG-123 -t "New title"
linear issue update ENG-123 --description-file /tmp/desc.md
# Add a comment
linear issue comment add ENG-123 -b "Started implementation"
# For multi-line markdown comments, use a file
linear issue comment add ENG-123 --body-file /tmp/comment.md
GraphQL経由で課題の状態を更新する(CLIの更新が失敗した場合)
# Find the state ID first
linear api <<'GRAPHQL'
query {
workflowStates(filter: { name: { eq: "Done" } }) {
nodes { id name team { key } }
}
}
GRAPHQL
# Then update one or more issues in a single mutation
linear api <<'GRAPHQL'
mutation {
issueUpdate(id: "EF2-123", input: { stateId: "<state-id>" }) { success }
}
GRAPHQL
# Batch update multiple issues
linear api <<'GRAPHQL'
mutation {
a: issueUpdate(id: "EF2-436", input: { stateId: "<state-id>" }) { success }
b: issueUpdate(id: "EF2-435", input: { stateId: "<state-id>" }) { success }
}
GRAPHQL
課題の作成
# Interactive (prompts for details)
linear issue create
# Non-interactive
linear issue create -t "Fix rendering bug" --description-file /tmp/desc.md -a self -s unstarted
# Create and immediately start working
linear issue create -t "Investigate flaky test" --start
複数行のMarkdownコンテンツを指定する場合は、シェルのエスケープに関する問題を避けるため、必ず --description-file または --body-file を使用してください。
CLIオプションの確認
すべてのコマンドで --help を使用できます:
linear --help
linear issue --help
linear issue list --help
linear issue create --help
CLIには課題以外にも、多数のサブコマンドがあります -- linear team、linear project、linear document、linear label、linear milestone。これらのいずれかで --help を実行してください。
ワークスペースのリファレンス
ミューテーションでは、これらのIDを直接使用できます。事前に問い合わせる必要はありません。
ユーザー
| 名前 | ID |
|---|---|
| Collin Miller | 7fa0b8f1-b1d2-462a-8edd-5365fb5e1d4a |
| Jeremy Yudkin | 12ae7fdb-6af1-45fd-b656-a1052b387605 |
ワークフローの状態(チーム:EF2)
| 状態 | ID | 種類 |
|---|---|---|
| Backlog | deceb52d-a969-493a-974c-228d0e595e08 | backlog |
| Todo | fb95e2be-9938-42bf-8248-276d4b1af951 | unstarted |
| In Progress | ac7b4c8f-d2a9-4e74-a9ff-392506703bd2 | started |
| In Review | 2717b5fe-9ea0-429f-8edd-cf8eabe0551d | started |
| Done | 5fcec8c5-d69d-4cf4-bcad-e73654b2fae2 | completed |
| Canceled | 1fbe9606-44eb-486c-8521-daf848673435 | canceled |
| Duplicate | ec2113c9-0b49-407a-82e1-3d1f39c7037a | canceled |
プロジェクト
| 名前 | ID | 状態 |
|---|---|---|
| Editframe 2026 Launch / Bug Fixes | b43b5d1d-8431-4e19-b4ae-c05760c02996 | 計画中 |
| App and Dashboard For Launch | 5fbea590-482f-4fcd-89f3-b0e581e43546 | 開始済み |
| Demo Improvements (Pre Launch) | 6c616f08-8bc9-4f8c-9109-26863099ffc3 | 開始済み |
| Dev Rel Catnip | 90b4643c-9b09-43fc-8fd8-9e78de7669a5 | 開始済み |
| Bug Fixes | 9c2beb23-32c3-4c24-a896-ca69eb99da49 | 開始済み |
| Clean Slate Task Collection | 12e632b9-6ce7-4a06-8403-46b419e3f649 | 開始済み |
| Docs/Site Feedback (2025) | 4ccf4054-9b6a-4ccf-85e6-088fe60851e4 | 開始済み |
| EF - Rendering Improvements | fd8a3df6-e174-41ee-a7f2-b7d49bca6094 | バックログ |
| EF - Preview Improvements | 4772c169-6f0f-4c01-b408-801ebd49bb3a | バックログ |
| Launch Documentation Beta | f8babb39-f732-4611-999e-f7db4d0aa48c | バックログ |
| Stack Trace Project | e2f37910-6a4f-4f45-a877-889c62526e6b | 計画中 |
このスキルを使う場面
- ユーザーが Linear の課題 ID を提示し、その作業に着手したい場合
- ユーザーが Linear の課題を検索したい場合
- ユーザーが自分に割り当てられた課題や、特定の状態にある課題を確認したい場合
- ユーザーが課題のステータスを更新したり、コメントを追加したりしたい場合
- エージェントが実装を始める前に、課題の要件を確認する必要がある場合