Full-auto mode lets VT Code run without pausing for human approval. Use this capability only when you fully trust the workspace configuration and have reviewed the safeguards below.
--full-auto is intentionally separate from permission auto mode:
--permission-mode autokeeps the normal interactive/session runtime and routes risky actions through the background classifier.--full-autouses the explicit[automation.full_auto]allow-list and skips the classifier entirely.
- Update
vtcode.toml- Enable the feature:
automation.full_auto.enabled = true. - Configure the tool allow-list to match your risk tolerance.
- (Recommended) Keep
require_profile_ack = trueso a profile file is required.
- Enable the feature:
- Create the acknowledgement profile
- Place the file referenced by
automation.full_auto.profile_pathin your workspace. - Document acceptable behaviours, escalation procedures, and any workspace-specific hazards.
- Place the file referenced by
- Review tool policies
- Full-auto still honours existing tool policies; denied tools remain blocked.
- Tools not included in the allow-list will be rejected automatically.
- Launch the agent
- Run
vtcode --full-auto(combine with other CLI flags as needed). - The agent will also set
--skip-confirmationsinternally.
- Run
- VT Code displays the active allow-list at session start.
- Tool permission prompts are bypassed for allow-listed tools.
- Non allow-listed tools are rejected before execution, and their attempts are logged.
- Git diff confirmations and other safety prompts are skipped automatically.
- If the acknowledgement profile is missing (while required), the CLI aborts before launching.
[automation.full_auto]
enabled = true
require_profile_ack = true
profile_path = "automation/full_auto_profile.toml"
allowed_tools = [
"read_file",
"list_files",
"grep_file",
"run_pty_cmd", # optionally include write or shell tools
]Tips:
- Use the constants listed in
vtcode_core::config::constants::toolsto avoid typos. - Include
"*"to allow every registered tool (not recommended unless the workspace is fully isolated). - Combine with tool policies if you need per-tool constraints or prompts even in full-auto mode.
For longer autonomous builds, prefer enabling the planner/evaluator harness instead of relying on a single uninterrupted build loop:
[agent.harness]
orchestration_mode = "plan_build_evaluate"
max_revision_rounds = 2When enabled, vtcode exec --full-auto writes a small set of working artifacts under
.vtcode/tasks/:
current_spec.md: high-level execution speccurrent_contract.md: observable done criteria and verification contractcurrent_task.md: tracker statecurrent_evaluation.md: skeptical evaluator output after a completion attempt
This keeps long-running work resumable and makes evaluator-driven revision rounds explicit instead of relying on the generator to judge itself.
The profile file is a simple acknowledgement document. Suggested content:
- Operator name and timestamp approving autonomous execution.
- Workspace-specific limitations (e.g., directories that must not be modified).
- Contact or escalation details if the automation encounters unexpected failures.
- Rollback procedures or monitoring steps to follow after autonomous runs.
Keeping this file under version control provides a clear audit trail for when full-auto mode was used and under which guardrails.