MyNixOS website logo

JSON configuration for Claude Code settings.json.

Declarations
Type
JSON value
Default
{ }
Example
{
  hooks = {
    PostToolUse = [
      {
        hooks = [
          {
            command = "nix fmt $(jq -r '.tool_input.file_path' <<< '$CLAUDE_TOOL_INPUT')";
            type = "command";
          }
        ];
        matcher = "Edit|MultiEdit|Write";
      }
    ];
    PreToolUse = [
      {
        hooks = [
          {
            command = "echo 'Running command: $CLAUDE_TOOL_INPUT'";
            type = "command";
          }
        ];
        matcher = "Bash";
      }
    ];
  };
  includeCoAuthoredBy = false;
  model = "claude-3-5-sonnet-20241022";
  permissions = {
    additionalDirectories = [
      "../docs/"
    ];
    allow = [
      "Bash(git diff:*)"
      "Edit"
    ];
    ask = [
      "Bash(git push:*)"
    ];
    defaultMode = "acceptEdits";
    deny = [
      "WebFetch"
      "Bash(curl:*)"
      "Read(./.env)"
      "Read(./secrets/**)"
    ];
    disableBypassPermissionsMode = "disable";
  };
  statusLine = {
    command = "input=$(cat); echo \"[$(echo \"$input\" | jq -r '.model.display_name')] 📁 $(basename \"$(echo \"$input\" | jq -r '.workspace.current_dir')\")\"";
    padding = 0;
    type = "command";
  };
  theme = "dark";
}