Claude Code の使い方入門:CLIインストールから Python 自動化まで

Claude Code の使い方入門:CLIインストールから Python 自動化まで

※本記事にはプロモーション(広告・アフィリエイトリンク)を含みます。

Claude とチャットするだけでなく、CLI から呼び出してスクリプトに組み込む——そこまでできると、Claude Code は一段と便利になります。この記事では、インストールから対話モード、非対話の -p モード、Python の subprocess から呼び出すバッチ実行まで、手順を順番に書きます。「何から始めればいいか分からない」という方が、この記事だけで動かせる状態を目指しています。

インストールと認証

Claude Code は npm パッケージとして配布されています。Node.js(v18 以上)が入っていれば、次の1行でインストールできます。

npm install -g @anthropic-ai/claude-code

インストール後は claude コマンドが使えるようになります。バージョンを確認して、正しく入ったか確かめましょう。

claude --version

認証の流れ

Claude Code は Anthropic のアカウント(Claude.ai のサブスクリプション)で認証します。API キーは不要です。初回起動時にブラウザが開き、アカウントにログインして認証コードを取得するフローになります。

claude
# → ブラウザが開き、Anthropic の認証ページに誘導される

SSH 先のサーバー等、ヘッドレス環境ではブラウザが自動で開かない場合があります。そのときは表示される URL を別端末のブラウザで開き、取得したコードを貼り付ける形になります(環境によって異なります)。

対話モードの基本操作

認証が済んだら claude を実行すると対話モードが始まります。コードのあるディレクトリで起動すると、カレントディレクトリのファイルをコンテキストとして読み込んでくれます。

よく使う操作をまとめます。

操作 コマンド・キー
終了 /exit または Ctrl+C
会話をリセット /clear
ファイルを参照させる @ファイルパス
モデルを変更 /model

CLAUDE.md でプロジェクトのルールを渡す

プロジェクトルートに CLAUDE.md を置くと、Claude Code はそれを自動で読み込みます。「このリポジトリは Next.js App Router 構成です」「コミットメッセージは英語で」など、毎回説明したいことを書いておくと手間が減ります。

CLAUDE.md の書き方は別記事で詳しくまとめています:Claude Code の CLAUDE.md を書く手順と実用的な設定例

-p オプションで非対話実行する

-p(--print)オプションを使うと、対話セッションを起動せず、1回のプロンプトを投げて結果を標準出力に返せます。

claude -p "package.json を読んで、依存パッケージの概要を100字で説明して"

出力をファイルにリダイレクトすることもできます。

claude -p "README のドラフトを書いて" > README_draft.md

-p と組み合わせるオプション

オプション 説明
--output-format text テキストのみ出力(デフォルト)
--output-format json JSON 形式で出力。スクリプト連携向け
--output-format stream-json ストリーミング JSON
--max-turns N エージェントループの最大ターン数を N に制限

スクリプトからパースする用途では --output-format json にして result フィールドを取り出すほうが、余分なテキストが混入しにくく堅牢です(執筆時点の仕様)。

claude -p "質問" --output-format json \
  | python3 -c "import sys, json; print(json.load(sys.stdin)['result'])"

Python subprocess から呼び出してバッチ処理を自動化する

私は Python の subprocess から claude -p を呼び出して、記事生成をバッチ処理で自動実行しています。API キーなしで動くので、Claude のサブスクリプションで利用でき、執筆時点では別途 API 費用はかかりません(利用プランや条件は変更される場合があります)。

基本の呼び出しパターンです。

import subprocess
import sys

def run_claude(prompt: str) -> str:
    result = subprocess.run(
        ["claude", "-p", prompt],
        capture_output=True,
        text=True,
        encoding="utf-8",
        timeout=120,  # 秒。処理が長引いた場合のタイムアウト
    )
    if result.returncode != 0:
        print(f"エラー: {result.stderr}", file=sys.stderr)
        raise RuntimeError("claude コマンドが失敗しました")
    return result.stdout.strip()

タイムアウト超過時は subprocess.TimeoutExpired 例外が発生します。バッチ処理では try/except で捕まえてスキップまたはリトライを実装しておくと安定します。

複数件をループ処理する例

import subprocess
import json
import time

products = [
    {"name": "ヴィンテージデニムジャケット", "brand": "Levi's", "size": "M"},
    {"name": "古着フランネルシャツ", "brand": "Pendleton", "size": "L"},
]

for product in products:
    prompt = (
        "以下の商品情報をもとに、ECサイト向け商品説明文を150字で書いてください。\n"
        + json.dumps(product, ensure_ascii=False)
    )
    result = subprocess.run(
        ["claude", "-p", prompt],
        capture_output=True, text=True, encoding="utf-8",
        timeout=120,
    )
    if result.returncode == 0:
        print(f"【{product['name']}】\n{result.stdout.strip()}\n")
    time.sleep(3)  # レート制限を考慮して間隔を空ける

time.sleep() で間隔を空けているのは、連続呼び出しでレート制限に引っかかるリスクを減らすためです。適切な値は利用状況によって異なるので、様子を見ながら調整してください。

つまずきやすいポイント

Node.js のバージョンが古い

Claude Code は Node.js v18 以上を要求します(執筆時点)。node --version で確認し、古ければ nvm 等でアップデートしてください。

-p の出力に余分なテキストが混じる

デフォルトの --output-format text では、ステータスメッセージが混入することがあります。スクリプトでパースする場合は --output-format json を使うと対処しやすくなります。

認証トークンが失効する

長期間使わないと認証が切れることがあります。再度 claude を起動して認証フローをやり直してください。

まとめ

Claude Code は npm install -g @anthropic-ai/claude-code の1行でインストールでき、API キーなしで Anthropic アカウントだけで使い始められます。

ステップ やること
1 npm でインストール → claude を起動して認証
2 対話モードで基本操作を覚え、CLAUDE.md を整える
3 -p オプションで非対話実行を試す
4 Python subprocess に組み込んでバッチ処理へ

まず claude -p "こんにちは" を1回実行して、応答が返ってくることを確認してみてください。そこから先は、CLAUDE.md を整えたり、スクリプトに組み込んだりと、用途に合わせて広げていけます。

この記事で触れたもの

よくある質問

Claude Code を使うのに API キーは必要ですか?

不要です。Claude Code は Anthropic のアカウント(Claude.ai のサブスクリプション)で認証します。`claude` を初回起動するとブラウザ経由の認証フローが始まるので、API キーを別途発行・設定する必要はありません。

claude -p と通常の claude コマンドの違いは何ですか?

`claude`(引数なし)は対話モードで起動して会話を続けられます。`claude -p` にプロンプトを渡す形式は非対話モードで、1回の入力への応答だけを標準出力に返して終了します。スクリプトやパイプと組み合わせる用途には -p が向いています。

Windows でも Claude Code は使えますか?

執筆時点の公式ドキュメントによると、macOS と Linux が主なサポート対象です。Windows では WSL(Windows Subsystem for Linux)経由での利用が推奨されています。環境によって動作が異なる場合があります。

Python の subprocess で claude -p を連続呼び出しするとエラーになりますが、どうすればいいですか?

レート制限やタイムアウトが原因の可能性があります。`time.sleep()` で呼び出し間隔を空ける、`subprocess.run` に `timeout` を設定するといった対策が有効です。`returncode` と `stderr` を確認すると原因の手がかりになります。