Skip to content

原文(日本語に翻訳)

  • 複雑なBashコマンドに対する権限プロンプトによって引き起こされるフリーズおよびCPU100%ループを修正しました

原文(英語)

  • Fixed freezes and 100% CPU loops triggered by permission prompts for complex bash commands

概要

Claude Codeが複雑なBashコマンド(パイプライン、サブシェル、複数コマンドの連結など)を実行しようとした際に、権限プロンプトの表示処理でフリーズしたりCPUが100%に張り付くループが発生する問題がありました。バージョン2.1.73でこの問題が修正され、複雑なコマンドの権限確認がスムーズに行われるようになりました。

基本的な使い方

修正後は、複雑なBashコマンドに対しても権限プロンプトが正常に表示されます。

bash
# 複雑なパイプラインコマンドの例
claude "このディレクトリ内のJSファイルを検索して行数を数えてください"
# → find . -name "*.js" | xargs wc -l のようなコマンドが権限プロンプトなしにフリーズすることがなくなった

実践例

パイプラインを含む複雑なコマンド

bash
# 以前はこのようなコマンドで権限プロンプトがフリーズすることがあった
find . -name "*.ts" -not -path "./node_modules/*" | xargs grep "TODO" | sort | uniq -c | sort -rn

# v2.1.73以降は正常に権限確認が表示される

サブシェルやコマンド置換を含むコマンド

bash
# ネストされたコマンド置換
echo "Current branch: $(git branch --show-current), Last commit: $(git log -1 --format='%s')"

# 複数のコマンドをセミコロンで連結
cd /tmp && mkdir -p test-dir; cd test-dir && touch file.txt

ヒアドキュメントを含むコマンド

bash
# ヒアドキュメントを使ったファイル生成
cat <<'EOF' > config.yaml
server:
  port: 8080
  host: localhost
EOF

注意点

  • この修正はv2.1.73で適用されます。それ以前のバージョンでは、複雑なBashコマンドの権限プロンプトでフリーズが発生する可能性があります
  • フリーズが発生した場合は、Claude Codeプロセスを強制終了(Ctrl+C を複数回押す、または別ターミナルから kill)する必要がありました
  • 権限プロンプトの動作は permissions.allowpermissions.deny の設定、およびフックで制御できます
  • Bashコマンドの自動承認リスト(allowlist)を活用すると、頻繁に使用する安全なコマンドの権限プロンプトを省略できます

関連情報