Auwai

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:

  1. $XDG_CONFIG_HOME/auwai/config.toml (default ~/.config/auwai/config.toml)
  2. <repo>/config.toml
  3. <repo>/.auwai/config.toml
  4. 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.