linear-cli について
linear-cliは、コマンドラインからLinearの課題や関連作業を管理するスキルです。ターミナルでLinearを扱う開発者向けで、gitとjjとの連携や、対応操作ではCLIを優先する手順も扱います。
主な機能
- 01Linearの課題とチームの管理
- 02プロジェクト、更新、サイクルの管理
- 03マイルストーンとイニシアチブの管理
- 04gitおよびjjとの連携
- 05CLIで不足する操作をGraphQL APIで実行
活用シーン
- 01ターミナルから課題を作成・更新
- 02チームのサイクルを確認・管理
- 03CLIで対応しないGraphQLクエリの実行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ letta-ai/ skills --skill linear-cliインストール後、Claude Code で/linear-cliを入力して読み込まれたか確認します。
同梱ファイルassets/linear-small.svgLICENSE
詳細
Linear CLI
git および jj と連携し、コマンドラインから Linear の課題を管理する CLI です。
前提条件
linear コマンドが PATH 上で利用できる必要があります。確認するには、次のコマンドを実行します。
linear --version
インストールされていない場合は、次の手順に従ってください。 https://github.com/schpet/linear-cli?tab=readme-ov-file#install
Markdown コンテンツのベストプラクティス
Markdown を含む課題の説明やコメント本文を扱う場合は、コンテンツをコマンドライン引数として渡すのではなく、常にファイル指定のフラグを使用してください。
issue createおよびissue updateコマンドでは--description-fileを使用しますcomment addおよびcomment updateコマンドでは--body-fileを使用します
ファイル指定のフラグを使用する理由:
- Linear のウェブ UI で正しく書式設定されます
- 改行や特殊文字に関するシェルのエスケープ問題を回避できます
- Markdown 内に
\nが文字列として表示されるのを防げます - 複数行のコンテンツを扱いやすくなります
ワークフローの例:
# 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
シンプルな1行のコンテンツに限り、インラインフラグ(--description、--body)を使用してください。
利用可能なコマンド
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 config # Interactively generate .linear.toml configuration
linear schema # Print the GraphQL schema to stdout
linear api # Make a raw GraphQL API request
オプションの確認
利用可能なサブコマンドとフラグを確認するには、任意のコマンドに対して --help を実行します。
linear --help
linear issue --help
linear issue list --help
linear issue create --help
各コマンドのヘルプには、利用可能なすべてのフラグとオプションの詳細が記載されています。
Linear GraphQL API を直接使用する
サポートされているすべての操作では、CLI を優先してください。 api コマンドは、CLI で対応していないクエリの代替手段としてのみ使用してください。
利用可能な型とフィールドのスキーマを確認する
スキーマを一時ファイルに書き込み、検索します。
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"
GraphQL リクエストを実行する
重要: 非 null 型マーカー(String の後に感嘆符が付くものなど)を含む GraphQL クエリは、エスケープの問題を避けるため、heredoc を使用して標準入力から渡す必要があります。これらのマーカーを含まないシンプルなクエリは、インラインで渡せます。
# 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
# Pipe to jq for filtering
linear api '{ issues(first: 5) { nodes { identifier title } } }' | jq '.data.issues.nodes[].title'
応用:curl を直接使用する
HTTP を完全に制御する必要がある場合は、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 } }"}'