Configuration
Auwai reads runtime settings from config.toml.
The process environment is not the configuration surface.
Files
The loader merges these files in order, with later files overriding earlier ones:
$XDG_CONFIG_HOME/auwai/config.toml(default~/.config/auwai/config.toml)<repo>/config.toml<repo>/.auwai/config.toml- a path passed explicitly by a caller
A missing file is not an error.
Copy config.example.toml to one of the first three locations to start.
Keys
[paths]
| Key | Default | Purpose |
|---|---|---|
home |
~/.local/share/auwai |
Registry and workspace state |
[budget]
| Key | Default | Purpose |
|---|---|---|
context_window |
0 |
Model window; 0 uses 65,536 with no ceiling |
lock |
false |
Force the configured ceiling over a larger explicit value |
budget |
auto |
auto, a profile, or a token count |
reserve |
0 |
Tokens reserved for prompt and output; 0 derives it |
ratio |
0.25 |
Fraction of the available window for an auto budget |
[database]
| Key | Default | Purpose |
|---|---|---|
path |
empty | Ledger path; empty means .auwai/auwai.sqlite |
journal_mode |
WAL |
SQLite journal mode |
busy_timeout_ms |
5000 |
Lock wait in milliseconds |
A relative path is resolved under the repository.
Keep one database per repository; a database whose meta.root names another
repository is refused.
[guard]
| Key | Default | Purpose |
|---|---|---|
allow_raw_read |
false |
Allow raw reads of indexed first-party files |
[codebase_memory]
| Key | Default | Purpose |
|---|---|---|
bin |
empty | Binary path; empty searches PATH |
auto |
true |
Export findings and decisions automatically |
[workspace]
| Key | Default | Purpose |
|---|---|---|
name |
empty | Default workspace; empty uses the nearest manifest |
[index]
| Key | Default | Purpose |
|---|---|---|
fts_limit |
4000 |
Maximum FTS candidates before re-rank |
content_max_tokens |
240 |
Body digest token cap |
content_max_chars |
3072 |
Body digest character cap |
touch_limit |
120 |
Maximum change-surface paths; 0 keeps all |
[harness]
| Key | Default | Purpose |
|---|---|---|
hint |
true |
Inject the short Auwai nudge |
prime |
true |
Inject workspace status at session start |
repo |
empty | Default repository for slash commands |
skill_dir |
empty | Skill directory for the Hermes plugin |
Interactive setup
./auwai init
prints the initialization brief: the current interpreter, SQLite/FTS5 status, the repository and ledger paths, and the questions to ask the user. After the answers, write the file and create the ledger:
./auwai init --write --scope repo --context-window 262144
Use --scope user for ~/.config/auwai/config.toml, or --scope repo for
.auwai/config.toml. --database-path, --journal-mode,
--busy-timeout-ms, --allow-raw-read, --cbm-auto, --hint, and --prime
are optional.
The Hermes slash command is /auwai-init.
Precedence
A command-line flag wins over a config value.
A config value wins over a built-in default.
context_window is a default and, when positive, a ceiling.
Set lock = true to make the ceiling win over a larger explicit value.
Bootstrap paths
Two integration paths are environment variables because the config loader cannot be found without them:
| Variable | Purpose |
|---|---|
AUWAI_SKILL_DIR |
Where the skill bundle is installed |
AUWAI_CLI |
The CLI path for the OpenCode guard |
They are not runtime settings and never contain secrets.
Budget profiles
The query path uses scout, default, deep, max, and exhaustive.
The full-read path uses its own formula and does not read the profile setting.
Current limits
The scope policy is not configurable per repository yet. The fixed prompt is a CLI value or a constant, not a measured harness value. The watcher interval is a CLI value.