原文(日本語に翻訳)
オートモード:autoMode.allow、autoMode.soft_deny、autoMode.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.allow、autoMode.soft_deny、autoMode.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"を省略した場合の動作は従来通り(カスタムリストがデフォルトを完全に置き換える)ですallow、soft_deny、environmentのそれぞれで独立して"$defaults"を指定できます