mcpField
L
linear-cli

linear-cli

github.com/editframe生産性1968 回インストール2 週間前に更新
リポジトリ

linear-cli について

linear-cli は、コマンドラインから Linear のイシューや関連するワークスペース情報を扱うツールです。イシューの参照、検索、作成、更新に対応し、CLI で扱いにくい操作には GraphQL を利用できます。

主な機能

  1. 01イシューの説明、コメント、メタデータを表示
  2. 02イシューの一覧表示と検索
  3. 03対話形式またはコマンドでイシューを作成
  4. 04イシューの状態更新とコメント追加
  5. 05CLI から Linear GraphQL を利用

活用シーン

  1. 01着手前にイシューの要件を読む
  2. 02状態、担当者、チーム、テキストで作業を探す
  3. 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
認証
  1. https://linear.app/settings/account/security でAPIキーを作成します(ゲストではなくメンバーとしてのアクセスが必要です)
  2. linear auth login を実行し、プロンプトが表示されたらキーを貼り付けます
  3. 確認します: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の状態を憶測で更新したり、プッシュ直後に更新したりしないでください。課題を開いたレビュアーは本番サイトを確認するため、変更がすでに反映されている必要があります。

必要な手順:

  1. telecine main にプッシュする(またはPRをマージする)
  2. デプロイジョブが正常に完了するまで、scripts/wait-for-telecine-action で待機する
  3. その後にのみ、「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 Miller7fa0b8f1-b1d2-462a-8edd-5365fb5e1d4a
Jeremy Yudkin12ae7fdb-6af1-45fd-b656-a1052b387605
ワークフローの状態(チーム:EF2)
状態ID種類
Backlogdeceb52d-a969-493a-974c-228d0e595e08backlog
Todofb95e2be-9938-42bf-8248-276d4b1af951unstarted
In Progressac7b4c8f-d2a9-4e74-a9ff-392506703bd2started
In Review2717b5fe-9ea0-429f-8edd-cf8eabe0551dstarted
Done5fcec8c5-d69d-4cf4-bcad-e73654b2fae2completed
Canceled1fbe9606-44eb-486c-8521-daf848673435canceled
Duplicateec2113c9-0b49-407a-82e1-3d1f39c7037acanceled
プロジェクト
名前ID状態
Editframe 2026 Launch / Bug Fixesb43b5d1d-8431-4e19-b4ae-c05760c02996計画中
App and Dashboard For Launch5fbea590-482f-4fcd-89f3-b0e581e43546開始済み
Demo Improvements (Pre Launch)6c616f08-8bc9-4f8c-9109-26863099ffc3開始済み
Dev Rel Catnip90b4643c-9b09-43fc-8fd8-9e78de7669a5開始済み
Bug Fixes9c2beb23-32c3-4c24-a896-ca69eb99da49開始済み
Clean Slate Task Collection12e632b9-6ce7-4a06-8403-46b419e3f649開始済み
Docs/Site Feedback (2025)4ccf4054-9b6a-4ccf-85e6-088fe60851e4開始済み
EF - Rendering Improvementsfd8a3df6-e174-41ee-a7f2-b7d49bca6094バックログ
EF - Preview Improvements4772c169-6f0f-4c01-b408-801ebd49bb3aバックログ
Launch Documentation Betaf8babb39-f732-4611-999e-f7db4d0aa48cバックログ
Stack Trace Projecte2f37910-6a4f-4f45-a877-889c62526e6b計画中

このスキルを使う場面

  • ユーザーが Linear の課題 ID を提示し、その作業に着手したい場合
  • ユーザーが Linear の課題を検索したい場合
  • ユーザーが自分に割り当てられた課題や、特定の状態にある課題を確認したい場合
  • ユーザーが課題のステータスを更新したり、コメントを追加したりしたい場合
  • エージェントが実装を始める前に、課題の要件を確認する必要がある場合

コメント