Skip to content

Auto-Approve

The Auto-Approve menu lets you set granular permissions for what Kodik does automatically, without interrupting you with confirmation prompts.

Auto Approve controls when Kodik asks for permission. To remove a capability from the agent entirely, use the separate Harness section; disabling a tool there removes it from the agent and makes its Auto Approve controls inactive. See Tools.

Image

Auto-approve is off by default: Kodik asks for your confirmation before every tool call, including reading or editing files. Once enabled, you configure fine-grained permissions separately for files inside the workspace and outside it.

The Approval Mode picker (mode) selects one of three levels:

  • Default Approvals (default) — only the granular permissions and command patterns you enable below run without asking; the blocked list (see below) always wins. Everything else prompts.
  • Autopilot (autopilot) — all actions and terminal commands run automatically. The model’s own judgment is the main gate: a command it flags as risky still asks for confirmation, and the approval card shows the model’s reason (e.g. “Rewrites remote history” for a force-push). A command on your blocked list still asks, even here.
  • Full Access (fullAccess) — everything runs without ever asking, except commands on your blocked list, which still ask. Use it only in isolated, disposable environments.

In Autopilot and Full Access, sensitive-file protection is also bypassed — Kodik can edit sensitive files without additional confirmation.

Earlier versions had an Autopilot toggle (autopilotMode). An enabled toggle migrates automatically to mode: "autopilot"; the old Autopilot behavior of refusing commands with $(...) substitutions is gone — the model’s own risk judgment covers those now.

Each permission applies separately for files inside the workspace and outside it (...Externally).

PermissionToolDefault
Read project files (readFiles)read_fileon
Read all files (readFilesExternally)read_file outside workspaceoff
List files and directories (listFiles)globon
List all files (listFilesExternally)glob outside workspaceoff
Search in files (rg)rg (ripgrep)on
Search in all files (rgExternally)rg outside workspaceoff
Fetch web content (webFetch)web_fetchoff
Search the web (webSearch)web_searchoff
Edit existing project files (editFiles)edit_fileoff
Edit existing files anywhere (editFilesExternally)edit_file outside workspaceoff
Create project files (createFiles)create_fileoff
Create files anywhere (createFilesExternally)create_file outside workspaceoff
Delete project files (deleteFiles)delete_fileoff
Delete files anywhere (deleteFilesExternally)delete_file outside workspaceoff
Edit notebooks (editNotebooks)edit_notebookoff
Edit notebooks everywhere (editNotebooksExternally)edit_notebook outside workspaceoff
Edit sensitive files (editSensitiveFiles)overrides pattern protectionoff
Create sensitive files (createSensitiveFiles)overrides pattern protectionoff
Delete sensitive files (deleteSensitiveFiles)overrides pattern protectionoff

An ...Externally or sensitive-file permission is automatically disabled if its corresponding base permission is off. Existing installations copy their previous edit-file permissions to the new create- and delete-file permissions once during migration; the three sets can then be changed independently.

Command patterns (commandPatterns) let you approve specific terminal commands without enabling Autopilot. Each pattern supports the * wildcard (e.g. npm run *, git *). Individual patterns can be temporarily disabled without being deleted.

Commands are matched case-insensitively from the start of the string. If a command is chained with &&, ||, ;, or |, every segment must match an enabled pattern before Kodik runs it without asking. Commands that use command substitution such as `...` or $(...) always pause for approval.

The blocked list (blockedCommands) is a deny-first backstop: any command matching a pattern on it always requires your confirmation, in every mode — Default, Autopilot, and Full Access alike. It takes precedence over your command patterns, so a broad allow rule (for example git *) can’t auto-run something you’ve blocked (for example git push *). Each pattern supports the * wildcard and is checked against every segment of a chained command.

The list is empty by default — nothing is blocked out of the box. Add the commands you never want auto-run in Settings → Auto Approve → Blocked Commands. Common choices:

  • File deletion: rm *, sudo rm *, del *, Remove-Item *
  • Git clean: git clean*
  • Disk destruction: mkfs*, dd if=*, format *
  • System power: shutdown*, reboot*
  • Other dangerous: chmod -R 777 /, chown -R *:* /, :(){:|:&};:

Kodik additionally protects files that match sensitive file patterns, even when a file mutation is enabled (unless that operation’s editSensitiveFiles, createSensitiveFiles, or deleteSensitiveFiles permission is explicitly turned on). The default protected patterns include:

  • Secrets and environment variables: **/.env, **/.env.*, **/secrets.*, **/secret.*, **/*secret*, **/*password*, **/*credentials*
  • Package lock files: **/package.json, **/package-lock.json, **/yarn.lock, **/pnpm-lock.yaml, **/composer.lock, **/Gemfile.lock, **/Pipfile.lock, **/poetry.lock, **/cargo.lock
  • Configuration files: **/*.config.js/ts/mjs/cjs/json, **/tsconfig.json, **/jsconfig.json, **/babel.config.*, **/webpack.config.*, **/vite.config.*, **/rollup.config.*, **/.eslintrc.*, **/.prettierrc.*
  • Git files: **/.gitignore, **/.gitattributes, **/.gitmodules, **/.git/**
  • Docker and deployment: **/Dockerfile, **/docker-compose.yml/yaml, **/.dockerignore, **/kubernetes/**/*.yaml
  • CI/CD: **/.github/workflows/**, **/.gitlab-ci.yml, **/.circleci/**, **/.travis.yml, **/azure-pipelines.yml, **/Jenkinsfile
  • IDE files: **/.vscode/**, **/.idea/**, **/.vs/**
  • Database migrations: **/migrations/**, **/migrate/**
  • All dotfiles: **/.*

You can extend or narrow this list in settings.

Kodik can always read its own configuration assets (skills, commands, rules, hooks, sub-agents) without any auto-approve permissions — this is independent of your settings.

For most workflows, start conservatively:

  • Auto-approve reading project files (readFiles, listFiles, rg)
  • Set the request limit to 10–20
  • Leave editing and Autopilot off

As trust in the agent grows, gradually add permissions. Tighten settings for critical production work; Autopilot is acceptable in isolated throwaway environments.