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
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 /assert lines 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

  1. Check context cancellation
  2. Evaluate condition (same conditions as /assert)
  3. If condition is met — exit silently
  4. If condition is not met — execute all actions sequentially
  5. Repeat from step 1
  6. If --max N is 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 N to 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.


Back to top

Copyright © 2026 idelchi. Distributed under the MIT License.