Auto Mode
Auto mode enables continuous execution without requiring user confirmation between iterations.
Enabling Auto Mode
| Method | Description |
|---|---|
Ctrl+A | Toggle auto mode on/off |
/auto | Toggle auto mode |
--auto flag | Start with auto mode enabled |
Behavior
In auto mode, the assistant loop continues automatically as long as:
- There are pending or in-progress todo items, OR
- The LLM is making tool calls
The loop stops when:
- All todo items are completed (none pending or in-progress)
- The LLM calls the Done tool
max_stepsis reached (default: 50)token_budgetis exhausted (if configured)- The user cancels (
Ctrl+C)
Done Tool
The Done tool provides an explicit task completion signal. When the LLM determines it has finished the task, it calls Done with a summary.
Toggle
/done toggles Done tool enforcement. When enabled, the LLM must call Done to exit the tool-calling loop (instead of simply not making tool calls).
Injectors in Auto Mode
Built-in injectors provide guardrails during auto mode:
| Injector | When | What |
|---|---|---|
| todo-reminder | Before chat | Reminds about pending todos every N iterations |
| max-steps | Before chat | Disables tools when iteration limit reached |
| session-stats | Before chat | Shows session stats summary (turns, tool calls, context usage, top tools) every 5 turns |
| todo-not-finished | After response | Warns if todos incomplete and no tool calls |
| empty-response | After response | Handles empty LLM responses |
| done-reminder | After response | Reminds LLM to call Done tool when stopping |
| loop-detection | After tool exec | Detects repeated identical tool calls |
| failure-circuit-breaker | After tool exec | Stops after 3+ consecutive different tool failures |
| repeated-patch | After tool exec | Warns after 5+ patches to same file |
These injectors ship as Go plugins in .aura/plugins/injectors/. Edit the plugin source code to customize detection logic and messages. Disable individual injectors with disabled: true in their plugin.yaml.
Custom Injectors
Define your own condition-based injectors as Go plugins. See Synthetic Injectors for full documentation on plugin hooks, conditions, composition (and), negation (not), and trigger control (once).