Skip to content

原文(日本語に翻訳)

起動時の不要なAPI呼び出しをスキップすることで、非インタラクティブモード(-p)のパフォーマンスを改善しました。

原文(英語)

Improved performance in non-interactive mode (-p) by skipping unnecessary API calls during startup

概要

-p(または --print)フラグを使用した非インタラクティブモードの起動が高速化されました。インタラクティブセッションでは必要なAPI呼び出しも、非インタラクティブモードでは不要なケースがあり、これらをスキップすることで起動オーバーヘッドが削減されました。CI/CDパイプラインや自動化スクリプトでClaude Codeを使用している場合に特に効果を感じられます。

関連する改善として、MCP認証失敗のキャッシュ、MCPツールトークンカウントのバッチ処理なども実装され、起動時間全体が短縮されています。

基本的な使い方

bash
# 非インタラクティブモードでの実行(改善された)
claude -p "このコードをレビューして" < src/main.ts

# または
claude --print "package.jsonの依存関係を一覧表示して"

# パイプとの組み合わせ
cat error.log | claude -p "このエラーの原因を分析して"

実践例

ユースケース1: CI/CDパイプラインでのコードレビュー

プルリクエストのCI/CDプロセスでClaude Codeを使用する場合。

bash
#!/bin/bash
# .github/scripts/code-review.sh

# 変更されたファイルを取得
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD)

# 各ファイルをClaude Codeでレビュー(非インタラクティブモード)
for file in $CHANGED_FILES; do
  if [[ "$file" == *.ts ]] || [[ "$file" == *.tsx ]]; then
    echo "レビュー中: $file"
    # 改善された起動パフォーマンスで高速実行
    claude -p "このTypeScriptファイルの問題点を指摘してください:
    - 型安全性の問題
    - パフォーマンスの問題
    - セキュリティの問題
    簡潔にリストアップしてください。" < "$file"
    echo "---"
  fi
done

ユースケース2: バッチ処理での自動化

複数のタスクをスクリプトで自動処理する場合。

bash
#!/bin/bash
# docs-generator.sh

# ソースファイル一覧
SOURCE_FILES=$(find src -name "*.ts" -not -name "*.test.ts")

mkdir -p docs/api

for file in $SOURCE_FILES; do
  filename=$(basename "$file" .ts)
  echo "ドキュメント生成中: $filename"

  # 起動が高速化されたため、多数のファイルでも効率的
  claude -p "このTypeScriptファイルからAPIドキュメントをMarkdown形式で生成してください。
  関数名、パラメータ、戻り値、使用例を含めてください。" \
    < "$file" \
    > "docs/api/${filename}.md"

  echo "完了: docs/api/${filename}.md"
done

ユースケース3: ログ分析の自動化

定期的なログ分析をcronジョブで実行する場合。

bash
#!/bin/bash
# cron-log-analysis.sh
# crontab: 0 9 * * * /usr/local/bin/cron-log-analysis.sh

LOG_FILE="/var/log/app/$(date +%Y-%m-%d).log"
REPORT_FILE="/reports/daily-$(date +%Y-%m-%d).md"

if [ -f "$LOG_FILE" ]; then
  echo "ログ分析開始: $LOG_FILE"

  # 非インタラクティブモードで分析(高速起動)
  claude -p "このアプリケーションログを分析してください:
  1. エラーの頻度と種類
  2. パフォーマンスの問題
  3. 異常なパターン
  4. 推奨アクション
  Markdown形式でレポートを作成してください。" \
    < "$LOG_FILE" \
    > "$REPORT_FILE"

  echo "レポート生成完了: $REPORT_FILE"
fi

注意点

  • パフォーマンス改善はv2.1.49での複数の最適化によって実現されています:
    • 起動時の不要なAPI呼び出しをスキップ
    • MCP認証失敗のキャッシュ(HTTP/SSE MCPサーバー)
    • MCPツールトークンカウントのバッチ処理
    • analyticsトークンカウントのHTTP呼び出し削減
  • 非インタラクティブモードでは、インタラクティブモード用のUIコンポーネントの初期化もスキップされます。
  • -p フラグはプロンプトを標準入力または引数として受け取り、結果を標準出力に出力します。
  • --output-format json--output-format stream-json フラグと組み合わせることで、構造化された出力を取得できます。

関連情報