Configuration

All configuration lives under .aura/config/ as YAML and Markdown files. Bootstrap the default configuration with:

aura init

Directory Structure

.aura/
├── config/
│   ├── agents/           # Agent definitions (Markdown + YAML frontmatter)
│   │   └── features/     # Hidden agents used by internal features (e.g. embeddings, guardrail)
│   ├── commands/         # Custom slash commands (Markdown + YAML frontmatter)
│   ├── features/         # Feature configs (YAML)
│   ├── hooks/            # User hook definitions (YAML) — pre/post tool execution
│   ├── lsp/              # LSP server definitions (YAML)
│   ├── mcp/              # MCP server definitions (YAML)
│   ├── modes/            # Mode definitions (Markdown + YAML frontmatter)
│   ├── prompts/          # System prompts (Markdown + YAML frontmatter, supports `inherit:`)
│   │   ├── system/       # Main system prompts (referenced by agent `system:` field)
│   │   ├── features/     # Feature-specific prompts (compaction, thinking)
│   │   └── logs/         # Logging-specific prompts
│   ├── providers/        # Provider configs (YAML)
│   ├── rules/            # Persistent approval rules (created on-demand when approvals are saved)
│   ├── sandbox/          # Landlock sandbox config (YAML) — merged into features sandbox
│   ├── tasks/            # Scheduled task definitions (YAML)
│   └── tools/            # Optional tool text overrides (any tool type)
├── plugins/              # Go plugins (recursive: organize into subdirs freely)
├── sessions/             # Saved sessions ({uuid}.json)
├── skills/               # LLM-invocable skills (Markdown + YAML frontmatter)
├── embeddings/           # Embeddings index
├── memory/               # Persistent key-value memory files
└── debug.log             # Debug log (when --debug is enabled)

Files under each config type (e.g. agents/, prompts/) are loaded recursively — subfolder organization does not affect loading.

Name Resolution

All name-based lookups (agents, modes, prompts, providers, commands, MCP servers, plugins, hooks, LSP servers, slash commands) are case-insensitive. For example, /agent high and /agent High resolve to the same agent. Tool and model names remain case-sensitive (LLM-facing contracts).

Sessions

Sessions are stored as JSON files at .aura/sessions/{uuid}.json. Each session contains the conversation history, metadata (title, agent, mode, model, provider, thinking state, loaded tools, sandbox state, read-before policy, session approvals, stats, cumulative usage), and todo list. Manage sessions with /save, /resume, /name, and /fork.

Embeddings Index

The embeddings index is stored at .aura/embeddings/. It is automatically created and incrementally updated when using the Query tool, /query command, or aura query CLI.

Workspace Instructions

Aura automatically loads AGENTS.md files into the system prompt. When --workdir is used, it walks upward from the working directory, collecting AGENTS.md files at each level until it reaches a .git directory, the launch directory, or the filesystem root. Without --workdir, only the current directory and config homes are checked.

Example Files

Each config directory includes a .example. reference file (e.g. agent.example.md, provider.example.yaml) that documents every possible field. These files are not loaded by Aura — they exist purely as documentation. To use one as a starting point, copy and rename it (removing .example. from the name).

Runtime Overrides

The --override / -O flag sets config values from the command line using dot-notation, without editing YAML files. It’s repeatable and has the highest priority in the config chain — overriding YAML files, agent frontmatter, mode settings, and other CLI flags like --max-steps.

# Override features
aura --override features.tools.max_steps=5 run "quick task"
aura -O features.compaction.threshold=0.9 -O features.guardrail.mode=block run "..."

# Override model settings
aura --override model.name=qwen3:8b run "explain this"
aura --override model.generation.temperature=0.1 run "be precise"
aura --override model.context=200000 run "large context task"

Two sections are supported:

  • features.* — all 14 feature sub-structs (~80 fields): tools, compaction, guardrail, sandbox, thinking, vision, etc.
  • model.* — name, provider, think, context, generation params (temperature, top_p, etc.)

Unknown fields produce a clear error at startup. Zero values work correctly (features.tools.max_steps=0 sets max_steps to 0, not “unset”).

Environment Variables

All CLI flags support AURA_ prefixed environment variables (e.g. AURA_AGENT, AURA_MODEL, AURA_DEBUG). Precedence: CLI flag > AURA_* env var > default. Use aura --print-env to see all resolved settings.

Provider tokens follow the pattern AURA_PROVIDERS_{NAME}_TOKEN (e.g. AURA_PROVIDERS_OPENROUTER_TOKEN). Tokens can also be set in provider YAML configs or loaded from an env file via --env-file (default: secrets.env).


Table of contents


Back to top

Copyright © 2026 idelchi. Distributed under the MIT License.