Skip to content

Settings Snippet

xsyetopz edited this page Oct 19, 2026 · 3 revisions

Settings Snippet

The settings snippet is the set of Claude Code settings that claudetto needs, as one JSON block. The settings entries of the slices make it, and just generate writes it into this page. A test checks each key against schemas/claude-code-settings.json. To apply it, see Settings Apply. The reason and default of each key are on Settings Snippet Keys.

The Snippet

{
  "$schema": "https://raw.githubusercontent.com/xsyetopz/claudetto/main/schemas/claude-code-settings.json",
  "syncClaudeAiSkills": false,
  "syncClaudeAiPlugins": false,
  "env": {
    "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80.3571",
    "CLAUDE_CODE_AUTO_CONNECT_IDE": "false",
    "CLAUDE_CODE_DISABLE_CRON": "1",
    "CLAUDE_CODE_DISABLE_FAST_MODE": "1",
    "CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY": "1",
    "CLAUDE_CODE_DISABLE_TERMINAL_TITLE": "1",
    "CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL": "1",
    "CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS": "2",
    "CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH": "1",
    "CLAUDE_CODE_PROMPT_CACHE_TTL": "1h",
    "CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT": "1",
    "CLAUDE_CODE_SUBAGENT_MODEL": "claude-sonnet-5-5",
    "DISABLE_ERROR_REPORTING": "1",
    "DISABLE_EXTRA_USAGE_COMMAND": "1",
    "DISABLE_FEEDBACK_COMMAND": "1",
    "DISABLE_INSTALL_GITHUB_APP_COMMAND": "1",
    "DISABLE_UPGRADE_COMMAND": "1"
  },
  "includeGitInstructions": false,
  "permissions": {
    "disableBypassPermissionsMode": "disable",
    "deny": [
      "Read(**/.env)",
      "Read(**/.env.local)",
      "Read(**/.env.production)",
      "Read(**/.env.*.local)",
      "Read(**/.env.development)",
      "Read(**/.env.dev)",
      "Read(**/.env.staging)",
      "Read(**/.env.stage)",
      "Read(**/.env.test)",
      "Read(**/.env.prod)",
      "Read(**/.env.qa)",
      "Read(**/.env.preview)",
      "Read(~/.ssh/**)",
      "Read(~/.aws/credentials)",
      "Read(~/.gnupg/**)",
      "Read(~/.netrc)",
      "Read(~/.docker/config.json)",
      "Bash(rm -rf /)",
      "Bash(rm -rf /*)",
      "Bash(rm -rf ~)",
      "Bash(rm -rf ~/*)",
      "Bash(mkfs *)",
      "Bash(mkfs.*)",
      "Bash(dd * of=/dev/*)",
      "Agent(general-purpose)",
      "Agent(claude-code-guide)",
      "Agent(statusline-setup)",
      "mcp__computer-use",
      "ScheduleWakeup",
      "ReportFindings",
      "EnterPlanMode",
      "ExitPlanMode",
      "TaskCreate",
      "TaskGet",
      "TaskList",
      "TaskStop",
      "TaskUpdate"
    ],
    "ask": [
      "Bash(git push* -f*)",
      "Bash(git push* --force)",
      "Bash(git push* --force *)",
      "Bash(git push* --delete*)",
      "Bash(git push* :*)",
      "Bash(git push* --mirror*)",
      "Bash(git reset* --hard*)",
      "Bash(git clean* -*f*)",
      "Bash(git checkout .)",
      "Bash(git checkout* -- *)",
      "Bash(git restore .)",
      "Bash(git restore -- *)",
      "Bash(git restore* --worktree*)",
      "Bash(git restore* -W*)",
      "Bash(git restore* --source*)",
      "Bash(git branch* -D*)",
      "Bash(git branch* --force*)",
      "Bash(git checkout* -f*)",
      "Bash(git stash drop*)",
      "Bash(git stash clear*)",
      "Bash(git reflog expire*)",
      "Bash(git reflog delete*)",
      "Bash(git gc* --prune*)",
      "Bash(git prune*)",
      "Bash(git filter-*)",
      "Bash(docker run* -v*)",
      "Bash(docker run* --volume*)",
      "Bash(docker run* --mount*)",
      "Bash(docker run* --privileged*)",
      "Bash(docker create* -v*)",
      "Bash(docker create* --volume*)",
      "Bash(docker create* --mount*)",
      "Bash(docker create* --privileged*)",
      "Bash(docker container run* -v*)",
      "Bash(docker container run* --volume*)",
      "Bash(docker container run* --mount*)",
      "Bash(docker container run* --privileged*)",
      "Bash(docker container create* -v*)",
      "Bash(docker container create* --volume*)",
      "Bash(docker container create* --mount*)",
      "Bash(docker container create* --privileged*)",
      "Bash(docker compose run* -v*)",
      "Bash(docker compose run* --volume*)",
      "Bash(docker compose run* --mount*)",
      "Bash(docker compose run* --privileged*)",
      "Bash(docker compose up* -v*)",
      "Bash(docker compose up* --volume*)",
      "Bash(docker compose up* --mount*)",
      "Bash(docker compose up* --privileged*)",
      "Bash(rm -*r*)",
      "Bash(rm -*R*)",
      "Bash(rm * -*r*)",
      "Bash(rm * -*R*)",
      "Bash(rm --recursive*)",
      "Bash(rm * --recursive*)",
      "Bash(sh)",
      "Bash(sh -)",
      "Bash(sh -s*)",
      "Bash(bash)",
      "Bash(bash -)",
      "Bash(bash -s*)",
      "Bash(zsh)",
      "Bash(sudo *)",
      "Bash(npm publish*)",
      "Bash(bun publish*)",
      "Bash(pnpm publish*)",
      "Bash(yarn publish*)",
      "Bash(cargo publish*)",
      "Bash(gh pr create *)",
      "Bash(gh pr merge *)",
      "Bash(gh pr comment *)",
      "Bash(gh pr review *)",
      "Bash(gh issue create *)",
      "Bash(gh issue comment *)",
      "Bash(gh release *)",
      "Bash(* DROP DATABASE *)",
      "Bash(* DROP TABLE *)",
      "Bash(* TRUNCATE *)",
      "Bash(* drop database *)",
      "Bash(* drop table *)",
      "Bash(* truncate table *)"
    ],
    "allow": [
      "Glob",
      "Grep",
      "Bash(git status *)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Bash(git show *)",
      "Bash(git branch)",
      "Bash(git fetch *)",
      "Bash(gh pr view *)",
      "Bash(gh pr list *)",
      "Bash(gh pr diff *)",
      "Bash(gh pr checks *)",
      "Bash(gh issue view *)",
      "Bash(gh issue list *)",
      "Bash(gh run view *)",
      "Bash(gh run list *)",
      "Bash(gh repo view *)",
      "Bash(bun test *)",
      "Bash(bun run *)",
      "Bash(npm test *)",
      "Bash(npm run *)",
      "Bash(pnpm test *)",
      "Bash(pnpm run *)",
      "Bash(cargo build *)",
      "Bash(cargo test *)",
      "Bash(cargo check *)",
      "Bash(go build *)",
      "Bash(go test *)",
      "Bash(go vet *)",
      "Bash(just *)",
      "Bash(make *)"
    ]
  },
  "model": "claude-opus-5-5",
  "availableModels": [
    "claude-opus-5-5",
    "claude-sonnet-5-5",
    "claude-haiku-5-5",
    "claude-fable-5-1"
  ],
  "enforceAvailableModels": true,
  "disableClaudeAiConnectors": true,
  "skillOverrides": {
    "plugin-authoring": "name-only"
  },
  "disableBundledSkills": true,
  "worktree": {
    "baseRef": "head"
  },
  "disableRemoteControl": true,
  "enableArtifact": false,
  "enableWorkflows": false,
  "bashOutputMaxChars": 16000,
  "statusLine": {
    "type": "command",
    "command": "bun --no-env-file \"<plugin folder>/bin/claudetto-statusline\"",
    "padding": 0,
    "refreshInterval": 1,
    "hideVimModeIndicator": true
  },
  "subagentStatusLine": {
    "type": "command",
    "command": "bun --no-env-file \"<plugin folder>/bin/claudetto-statusline\" --subagent"
  },
  "enabledPlugins": {
    "cc-plugin-agents-md@builtin": false,
    "cc-plugin-claude-test@builtin": false,
    "cc-plugin-diff@builtin": false,
    "cc-plugin-easel@builtin": false,
    "cc-plugin-mermaid@builtin": false,
    "cc-plugin-mods-guide@builtin": false,
    "cc-plugin-responsive-mode@builtin": false,
    "cc-plugin-telemetry@builtin": false,
    "cc-plugin-tips@builtin": false,
    "cc-plugin-you-should-know@builtin": false
  },
  "outputStyle": "claudetto:Concise",
  "sandbox": {
    "enabled": true,
    "allowUnsandboxedCommands": true,
    "excludedCommands": ["git fetch *", "git pull *", "git push *", "gh *"],
    "network": {
      "allowedDomains": [
        "github.com",
        "*.github.com",
        "*.githubusercontent.com",
        "registry.npmjs.org",
        "pypi.org",
        "files.pythonhosted.org",
        "crates.io",
        "static.crates.io",
        "index.crates.io",
        "proxy.golang.org"
      ],
      "allowLocalBinding": true
    },
    "filesystem": {
      "allowWrite": [
        "~/.bun/install/cache",
        "~/.npm",
        "~/.cache/pip",
        "~/.cargo/registry",
        "~/go/pkg/mod"
      ]
    }
  },
  "feedbackSurveyRate": 0,
  "feedbackDrafts": "off",
  "spinnerTipsEnabled": false,
  "modelSettings": {
    "claude-haiku-5-5": {
      "autoCompactWindow": 144444
    }
  },
  "autoCompactWindow": 300000,
  "promptSuggestionEnabled": false,
  "awaySummaryEnabled": false,
  "autoMemoryEnabled": false
}
  • <plugin folder> in the two status line commands stands for the absolute path of the installed plugin folder. claudetto-setup fills it in.
  • claudetto-setup leaves out $schema, because it names the schema and is not a setting.

The rm Rules

The six rm rules in permissions.ask match any flag spelling with an r or R after a dash, and --recursive. They also ask for some calls that are not recursive, such as rm -f report.txt, where the r is in the file name. An extra ask is acceptable. The rules do not stop a write outside the allowed folders. The sandbox limits the writes of Bash.

See Also

Clone this wiki locally