Skip to content

原文(日本語に翻訳)

Bash ツールが、任意に大きな値を受け入れる代わりに、ドキュメント化された最大タイムアウトを強制適用するようになった

原文(英語)

Bash tool now enforces the documented maximum timeout instead of accepting arbitrarily large values

概要

Bash ツールのタイムアウト設定が改善され、ドキュメントに記載された最大値を超える値が指定された場合に自動的に上限値に制限されるようになりました。以前はタイムアウト値を非常に大きな値に設定できましたが、この変更によりシステムリソースの予期しない占有を防ぎ、長時間実行されるコマンドの適切な管理が保証されます。

基本的な使い方

Bash ツールのタイムアウト設定(デフォルト: 120,000ms = 2分)は引き続き使用できますが、最大値を超える設定は自動的に制限されます。

bash
# 通常の使用(制限に引っかかることはない)
# Claude が Bash ツールでコマンドを実行する際、
# 適切なタイムアウト値が自動設定される

# 長時間実行が必要なコマンドは明示的に分割することを推奨

実践例

長時間実行コマンドの対処法

タイムアウト制限に引っかかる可能性がある処理の例と対処法:

bash
# ❌ 長時間かかる可能性があるコマンド(タイムアウトする場合がある)
npm install  # 大規模プロジェクトで遅い場合

# ✅ バックグラウンドで実行して結果を後から確認
npm install &
# 完了を待ってから結果確認

# ✅ より小さな単位に分割
npm install --prefer-offline  # キャッシュを活用して高速化

大規模なビルドやテストの実行

bash
# ❌ 全テストを一度に実行(タイムアウトリスクあり)
# Claude にこう頼む: "全テストを実行して"

# ✅ テストを分割して実行
# Claude にこう頼む: "unit テストのみ先に実行して"
npm test -- --testPathPattern="unit"

データ処理スクリプトの最適化

bash
# 時間のかかるデータ処理はバッチに分割
python process.py --batch 1 --total-batches 5
python process.py --batch 2 --total-batches 5
# ...

タイムアウト値の確認

Claude Code の Bash ツールに設定されているタイムアウト値を確認するには、公式ドキュメントを参照してください。一般的な目安:

操作タイプ推奨アプローチ
短いコマンド(ls, git status など)そのまま実行
ビルドコマンドバックグラウンド実行を検討
大規模テスト部分的に実行して分割
データ処理チャンクに分割

注意点

  • この変更は Bash ツールを使用する際に自動的に適用されます。特別な設定は不要です
  • 最大タイムアウト値を超えるような長時間処理は、バックグラウンド実行(&)や処理の分割を検討してください
  • タイムアウトが発生した場合、Claude に「タイムアウトしたので別の方法で実行して」と伝えると適切な代替手段を提案します

関連情報