Extended Thinking
Aura supports extended thinking/reasoning, allowing models to reason before responding.
Thinking Levels
| Level | Description |
|---|---|
off / false | No thinking — direct response |
on / true | Enable thinking at the default level (medium) |
low | Minimal reasoning |
medium | Moderate reasoning |
high | Maximum reasoning effort |
Set per-agent in the agent frontmatter via model.think.
Controls
| Method | Description |
|---|---|
/think [level] or /effort | Set thinking level (off, on, low, medium, high) |
Ctrl+R | Toggle thinking off ↔ on (true) |
Ctrl+E | Cycle all levels (off → on → low → medium → high → off) |
--think flag | Set starting level from CLI |
Thinking Display
Thinking blocks are rendered in faint gray in the TUI. Toggle visibility:
/verbosecommandCtrl+Tkeybinding
Prior Turn Handling
Each agent configures how thinking blocks from prior conversation turns are handled:
| Mode | Description |
|---|---|
"" (default) | Keep thinking blocks as-is in history |
"strip" | Strip thinking from older messages that exceed the token threshold |
"rewrite" | Condense older thinking via a dedicated agent or self-rewrite |
Set in agent frontmatter: thinking: "strip"
Both strip and rewrite respect configurable thresholds in features/thinking.yaml:
thinking:
agent: Thinking # dedicated agent for rewriting
prompt: "" # named prompt for self-rewrite (overrides agent)
keep_last: 5 # recent messages whose thinking is preserved
token_threshold: 300 # minimum tokens for a block to be affected
keep_last— the N most recent messages always keep their thinking blocks unchanged.token_threshold— blocks below this threshold are left alone (small thinking blocks are cheap to keep).prompt— when set, uses the current agent’s model with a named system prompt instead of delegating to a separate agent. Mirrors compaction’s self-compact pattern.
Agent resolution follows the same three-tier pattern as compaction:
prompt:set → self-rewrite with current modelagent:set → use dedicated Thinking agent- Neither → use pre-built thinking agent (error if nil)
Both modes mutate the builder in place — what the LLM sees is what gets saved to sessions and shown in /export.
If thinking: rewrite is configured and the agent or prompt cannot be resolved, it fails with an error. No silent fallback to stripping.