Skip to content

原文(日本語に翻訳)

オートモード:autoMode.allowautoMode.soft_denyautoMode.environment"$defaults"を含めることで、組み込みリストを置き換えるのではなく、カスタムルールをデフォルトリストと並べて追加できるようになった。

原文(英語)

Auto mode: include "$defaults" in autoMode.allow, autoMode.soft_deny, or autoMode.environment to add custom rules alongside the built-in list instead of replacing it

概要

Claude Codeのオートモード設定において、"$defaults"という特別な値が追加されました。autoMode.allowautoMode.soft_denyautoMode.environment"$defaults"を含めることで、組み込みのデフォルトルール全体を維持しながらカスタムルールを追加できます。これまではカスタムルールを設定するとデフォルトルールが完全に置き換わっていましたが、"$defaults"を使うことで両方を共存させられます。

基本的な使い方

~/.claude/settings.json"$defaults"を使用:

json
{
  "autoMode": {
    "allow": [
      "$defaults",
      "MyCustomTool"
    ]
  }
}

実践例

デフォルトの許可リストに追加のツールを加える

json
{
  "autoMode": {
    "allow": [
      "$defaults",
      "MyInternalTool",
      "CompanyMCPServer__search"
    ]
  }
}

"$defaults"がなければ、組み込みの許可ツールがすべて無効になります。

soft_denyにカスタムルールを追加

json
{
  "autoMode": {
    "soft_deny": [
      "$defaults",
      "Bash(rm *)",
      "Bash(sudo *)"
    ]
  }
}

デフォルトのsoft_denyルールを維持しつつ、追加の制限を加えられます。

環境変数のデフォルト設定を継承しながらカスタム追加

json
{
  "autoMode": {
    "environment": [
      "$defaults",
      {
        "name": "COMPANY_API_URL",
        "value": "https://api.internal.company.com"
      }
    ]
  }
}

$defaultsなしとありの比較

$defaultsなし(デフォルトが無効化される):

json
{
  "autoMode": {
    "allow": ["MyTool"]
    // 組み込みのデフォルト許可ツールがすべて消える
  }
}

$defaultsあり(デフォルトを維持しつつ追加):

json
{
  "autoMode": {
    "allow": ["$defaults", "MyTool"]
    // 組み込みのデフォルト許可ツール + MyTool
  }
}

注意点

  • "$defaults"は配列内の任意の位置に配置できますが、通常は先頭に置くことを推奨します
  • "$defaults"を省略した場合の動作は従来通り(カスタムリストがデフォルトを完全に置き換える)です
  • allowsoft_denyenvironmentのそれぞれで独立して"$defaults"を指定できます

関連情報