Skip to content

原文(日本語に翻訳)

claude --dangerously-skip-permissions daemon <subcommand>daemon サブコマンドを実行する代わりに、チャットプロンプトとして扱われてしまっていた問題を修正

原文(英語)

Fixed claude --dangerously-skip-permissions daemon <subcommand> being treated as a chat prompt instead of running the subcommand

概要

Claude Codeには、バックグラウンドセッションを管理するスーパーバイザープロセスの状態確認・停止を行う claude daemon statusclaude daemon stop --any といったサブコマンドがあります。しかし、--dangerously-skip-permissions(または --allow-dangerously-skip-permissions)フラグを先頭に付けて claude --dangerously-skip-permissions daemon status のように実行すると、daemon status という文字列がサブコマンドとして解釈されず、そのまま「daemon status」という新しい対話セッションのプロンプトとして扱われてしまう不具合がありました。claude コマンドをこのフラグ付きでエイリアス化している環境では特に発生しやすいパターンでした。修正後は、先頭に --dangerously-skip-permissions または --allow-dangerously-skip-permissions が付いている場合でも、daemon サブコマンドが正しくルーティングされ実行されるようになりました。

基本的な使い方

bash
# 修正前
claude --dangerously-skip-permissions daemon status
# ❌ "daemon status" という文字列がチャットプロンプトとして送信され、
#    新しい対話セッションが「daemon status」というお題で開始してしまう

# 修正後
claude --dangerously-skip-permissions daemon status
# ✅ daemon サブコマンドとして解釈され、
#    スーパーバイザーの状態(バージョン・ソケットディレクトリ・稼働ワーカー数など)が出力される

実践例

claudeを常にフラグ付きでエイリアスしている環境でのdaemon操作

bash
# ~/.bashrc や ~/.zshrc で以下のようにエイリアスしている場合
alias claude='claude --dangerously-skip-permissions'

# 修正前は次のコマンドが意図通り動かなかった
claude daemon status
# ❌ 実質的に `claude --dangerously-skip-permissions daemon status` となり、
#    チャットプロンプトとして誤解釈されていた

# 修正後は正しく daemon サブコマンドとして動作する
claude daemon status

バックグラウンドセッションのスーパーバイザーを再起動する

bash
# アップデート後にスーパーバイザーを新しいバージョンへ切り替える
claude --dangerously-skip-permissions daemon stop --any --keep-workers
# ✅ --keep-workers を付けているため、稼働中のバックグラウンドセッションは
#    維持されたまま、次の claude agents で新しいスーパーバイザーが起動する

CI・自動化スクリプトからdaemonの状態を確認する

bash
# 権限プロンプトを避けたい自動化スクリプト内での診断コマンド
if ! claude --dangerously-skip-permissions daemon status; then
  echo "supervisor unreachable" >&2
  exit 1
fi

注意点

  • この挙動が適用されるのは、先頭のフラグが --dangerously-skip-permissions または --allow-dangerously-skip-permissions の場合のみです。それ以外のフラグが先頭にある場合は、これまで通り通常の対話セッションが開始されます
  • --dangerously-skip-permissions は全ての権限確認をスキップする強力なフラグです。daemon サブコマンド呼び出しに限らず、利用は信頼できる環境に限定してください
  • claude daemon statusclaude daemon stop --any 自体の使い方(サブコマンドの一覧やオプション)は本修正で変わっていません

関連情報