Slash Commands
Aura includes built-in slash commands for runtime control, plus support for user-defined custom commands.
Built-in Commands
Commands are organized by category. Run /help to see them grouped in the TUI picker, or /help <command> for details on a specific command.
Agent
| Command | Aliases | Description |
|---|---|---|
/agent | Switch agent or list available | |
/mode | Switch mode, clear with ‘none’, or list available | |
/model | List models or switch model | |
/think | /effort | Set thinking level: off, on, low, medium, high |
/verbose | /v | Toggle thinking block visibility in output |
Session
| Command | Aliases | Description |
|---|---|---|
/clear | /new | Clear conversation history |
/export | Export conversation to clipboard or file | |
/fork | Fork current session into a new session | |
/name | Set or show the session name | |
/resume | /load | Resume a saved session or list sessions |
/save | Save current session |
Tools
| Command | Aliases | Description |
|---|---|---|
/mcp | List connected MCP servers or reconnect failed ones | |
/plugins | List loaded plugins and their capabilities | |
/policy | Show effective tool policy | |
/sandbox | /landlock | Show or toggle sandbox restrictions |
/skills | List loaded skills | |
/tools | List enabled tools for the current agent/mode |
Context
| Command | Aliases | Description |
|---|---|---|
/compact | Compact conversation context by summarizing old messages | |
/ctx | /context | Show context window stats |
/drop | /remove | Drop last N messages from history |
/insert | Insert a message with given role into history | |
/undo | /rewind | Rewind code and/or messages to a previous turn |
/window | Show or set context window size in tokens |
Execution
| Command | Aliases | Description |
|---|---|---|
/assert | Execute quoted actions if condition is met | |
/auto | Toggle auto mode (continue while TODOs are pending or in-progress) | |
/done | Toggle Done tool (explicit task completion signal) | |
/replay | Replay commands from a YAML file | |
/until | Loop until condition is met, executing actions each iteration |
Config
| Command | Aliases | Description |
|---|---|---|
/hooks | Show active hooks and execution order | |
/info | Show runtime state overview | |
/readbefore | /rb | Configure read-before enforcement for file operations |
/reload | Reload config from disk | |
/set | Set runtime parameters (key=value pairs) | |
/stats | Show session statistics |
Todo
| Command | Aliases | Description |
|---|---|---|
/todo | Show or edit the todo list |
Search
| Command | Aliases | Description |
|---|---|---|
/query | Embedding-based search across the codebase |
System
| Command | Aliases | Description |
|---|---|---|
/exit | /quit | Exit the application |
/help | Show available commands |
/assert — Conditional Actions
/assert evaluates a condition and executes one or more quoted actions if the condition is met. If the condition is not met, it silently does nothing.
Syntax
/assert [not] <condition> "action1" ["action2" ...]
Conditions
| Condition | True when |
|---|---|
todo_empty | No todo items and no summary (blank slate) |
todo_done | All todo items completed, or list is empty |
todo_pending | At least one pending or in-progress todo item |
auto | Auto mode is enabled |
context_above:<N> | Token usage >= N% |
context_below:<N> | Token usage < N% |
history_gt:<N> | Message count > N |
history_lt:<N> | Message count < N |
tool_errors_gt:<N> | Tool errors > N |
tool_errors_lt:<N> | Tool errors < N |
tool_calls_gt:<N> | Tool calls > N |
tool_calls_lt:<N> | Tool calls < N |
turns_gt:<N> | LLM turns > N |
turns_lt:<N> | LLM turns < N |
compactions_gt:<N> | Compactions > N |
compactions_lt:<N> | Compactions < N |
iteration_gt:<N> | Current iteration > N |
iteration_lt:<N> | Current iteration < N |
tokens_total_gt:<N> | Cumulative tokens (in+out) > N |
tokens_total_lt:<N> | Cumulative tokens (in+out) < N |
model_context_gt:<N> | Model max context > N tokens |
model_context_lt:<N> | Model max context < N tokens |
model_has:<cap> | Model has capability (vision, tools, thinking, thinking_levels, embedding, reranking, context_override) |
model_params_gt:<N> | Model parameters > N billion (supports decimals like 0.5) |
model_params_lt:<N> | Model parameters < N billion |
model_is:<name> | Model name matches (case-insensitive) |
exists:<path> | File or directory exists (relative to CWD or absolute) |
bash:<cmd> | Shell command exits 0 (120s timeout) |
Prefix any condition with not to negate it. Join conditions with and for composition:
/assert "history_gt:5 and history_lt:10" "You're in the sweet spot."
/assert "auto and context_above:70" "/compact"
Examples
Guard against a forgotten todo list:
- /mode plan
- Plan the refactor
- /assert todo_empty "You forgot to create a todo list. Call TodoCreate now."
Phase transition — switch to edit mode only if planning produced todos:
- /mode plan
- Create a detailed plan for implementing the auth system
- /assert not todo_empty "/mode edit" "Execute the plan"
Verify completion after auto mode:
- /auto
- /done
- Implement the feature
- /assert not todo_done "There are still incomplete items. Finish them all."
Multiple sequential actions when condition is met:
- /assert todo_pending "/mode edit" "/think high" "Execute all remaining tasks"
Verify a build passes before continuing:
- /assert not bash:"go build ./..." "Build is failing. Fix the errors before continuing."
Notes
- Arguments use quote-aware splitting via shlex. Multi-word conditions and actions must be quoted. Each quoted group or unquoted token is one argument. If quote parsing fails, arguments fall back to whitespace splitting.
- Actions execute sequentially via
ProcessInput— each one fully completes before the next starts. - If an action modifies todo state, subsequent actions see the new state. Use separate
/assertlines if you need per-action guards. - Unknown conditions evaluate to false (safe for forward compatibility).
/until — Looping Conditional
/until loops until a condition becomes true, executing actions each iteration when the condition is not yet met. It replaces the `` Go template pattern for bounded retries with a proper unbounded loop.
Syntax
/until [--max N] [not] <condition> "action1" ["action2" ...]
Semantics
- Check context cancellation
- Evaluate condition (same conditions as
/assert) - If condition is met — exit silently
- If condition is not met — execute all actions sequentially
- Repeat from step 1
- If
--max Nis set and N iterations are exhausted — return an error
The condition is the exit condition. /until X means “loop until X is true.” This is the opposite of /assert X which fires actions when X is true. When converting repeated /assert patterns to /until, invert the condition:
Repeated /assert pattern | /until equivalent |
|---|---|
/assert todo_empty "action" | /until not todo_empty "action" |
/assert not bash:X "action" | /until bash:X "action" |
Bounding
No explicit max iterations needed in most cases — the loop is bounded by task timeout:, agent max_steps, and the loop-detection plugin. --max N provides an optional per-command cap.
Examples
Keep going until the LLM creates a plan:
- /mode plan
- Create a detailed plan
- /until not todo_empty "You MUST call TodoCreate to create the plan"
Keep going until a build passes:
- /until bash:"go build ./..." "Build is failing. Fix the errors."
With an explicit iteration cap:
- /until --max 30 bash:"go test ./..." "Tests are failing. Fix them."
Combined conditions:
- /until "todo_done and bash:go build ./..." "Not done yet. Keep working."
Notes
- Uses the same condition system and argument parsing as
/assert. - Each iteration logs
[until] attempt Nto the debug log for observability. - Actions execute sequentially via
ProcessInput— the LLM takes a full turn for each action before the next iteration.
/mcp — MCP Server Management
/mcp lists connected MCP servers and their tools. It also supports reconnecting failed or unconnected servers.
Syntax
/mcp # List all MCP servers and their tools
/mcp reconnect # Reconnect all enabled but unconnected servers
/mcp reconnect <server> # Reconnect a specific server by name
Examples
List all servers and their discovered tools:
/mcp
Reconnect a server that failed during startup:
/mcp reconnect context7
Reconnect all failed servers at once:
/mcp reconnect
Notes
- Only enabled servers that are not currently connected are reconnected.
- Server name matching is case-insensitive.
- Connection errors are displayed inline.
Custom Slash Commands
Define your own commands as Markdown files in .aura/config/commands/.
Format
---
name: review
description: "Code review the current changes"
hints:
- "file path"
- "focus area"
---
Review the following code changes with focus on:
- Correctness
- Edge cases
- Go idioms
Target: $1
Focus: $2
Full arguments: $ARGUMENTS
Argument Substitution
| Placeholder | Description |
|---|---|
$1, $2, … | Positional arguments |
$ARGUMENTS | All arguments as a single string |
Behavior
- All custom commands have
Forward=true— the rendered body is sent to the LLM as a user message - Conflict detection against built-in commands runs at startup
- Commands are loaded from
.aura/config/commands/*.md
Note: Custom commands support ghost text hints in the TUI input area.
Plugin-Defined Commands
Plugins can register slash commands by exporting Command() and ExecuteCommand(). This is useful when the command requires Go logic, state, or access to the SDK context that a Markdown file cannot provide.
Plugin commands have the lowest conflict priority: built-in > custom (Markdown) > plugin.
Each plugin may define at most one command. See Plugin Command Functions for signatures, SDK types, and an example.