原文(日本語に翻訳)
起動時の不要な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フラグと組み合わせることで、構造化された出力を取得できます。