Configuration
Every value resolves in the same order. Nothing is hidden, and oasis-agent --show-config prints where each value came from.
Resolution order
command-line flag > environment variable > config file > default--base-url has no default and is required. Pointing at a server is an explicit choice, so the agent errors cleanly rather than dialling a stale baked-in address.
# Print every resolved value and which layer supplied it
oasis-agent --show-configConfig files
Two locations, checked in this order. The project file wins.
| Path | Scope |
|---|---|
./.oasis/config.json | This project |
~/.oasis/config.json | This user |
Override the path entirely with --config <path>.
{
"base_url": "http://10.0.0.1:8080",
"model": "qwen",
"thinking_profile": "coding",
"modules": {
"ethercat": true
}
}Config-file keys mirror the flag names in snake_case. An unknown key is a hard error, not a silent no-op. A typo fails at startup rather than producing a run that quietly ignored your setting.
The settings menu
From the REPL:
/config open the settings menu (↑↓ choose, ←→ change, ↵ edit)
/config <key> <val> set one key without opening the menuThe menu writes to the same file and shows which layer currently supplies each value, so you can see when a flag or environment variable is overriding what you are editing.
Core settings
| Flag | Environment variable | Default |
|---|---|---|
--base-url | OASIS_BASE_URL | required |
--model | OASIS_MODEL | qwen |
--cwd | OASIS_CWD | current directory |
--api-key | OASIS_API_KEY | none |
--actor | OASIS_ACTOR | none |
--mode | OASIS_MODE | manual |
--thinking-profile | OASIS_THINKING_PROFILE | off. One of off, creative, coding |
--mcp-config | OASIS_MCP_CONFIG | none |
--context-window | OASIS_CONTEXT_WINDOW | probed from /props, else 120 000 |
--config | — | ./.oasis/config.json, then ~/.oasis/config.json |
Context and compaction
| Flag | Default | Purpose |
|---|---|---|
--context-window | Probed from the endpoint's /props | Tokens the model can hold |
--response-reserve | 8 192 | Tokens held back for the reply |
--max-prompt-tokens | context-window − response-reserve | The compaction trigger |
--no-probe | off | Skip the startup /props probe. Implied when both window values are given explicitly |
--no-probe removes a round trip from the cold-start path. Use it when you already know the window and are running one-shot jobs at volume.
Behaviour
| Flag | Default | Effect |
|---|---|---|
--plan | off | Start read-only. Shorthand for --mode plan |
--skip-permissions | off | Approve every waivable request. Does not waive hard-stop tools |
--no-memory | off | No Memory tool and no memory briefing |
--vision-capable | off | Required for ViewImage to do anything |
--cwd-hint | off | Name the working directory in the system prompt |
--no-delegation-nudge | off | Suppress the hint to hand bulk reading to a subagent |
--no-session | off | Do not save this conversation |
--ethercat-acquire-bus <if> | none | Restrict EtherCAT acquisition to these interfaces. Repeatable |
--cwd-hint changes the prompt
It is off by default because it alters the assembled prompt prefix. Without it the model is not told where it is working and will occasionally guess wrong. Turn it on if you see that happening; expect one cold prefill when you do.
Terminal
| Flag | Environment variable | Effect |
|---|---|---|
--no-color | NO_COLOR | Disable ANSI colour |
--no-history | OASIS_AGENT_NO_HISTORY=1 | Disable persistent input history |
--no-diffs | — | Show file edits as plain results rather than inline diffs |
--no-collapse | — | Show every tool result in full |
--repl | — | Force the interactive REPL. Implied when no other mode is selected and stdin is a terminal |
Config-file-only keys
These name a directory an operator sets once rather than something worth a flag on every run. Set them with /config <key> <value> or by editing the file.
| Key | Points at |
|---|---|
modules | Which capability packs are on, e.g. {"ethercat": true} |
ethercat_catalogue | Vendor ESI XML, which turns an EtherCAT product code into a device name |
checks_catalogue | Descriptor TOML layered over the built-in check catalogue by check id |
See Capability Packs and Conformance Checks.
Update settings
These govern how the binary updates itself. See Installing & Updating.
| Key | Default | Purpose |
|---|---|---|
auto_update | true | Background auto-update, and the update check at startup. Set false to turn both off |
release_host | Compiled in at build time | The release store versions are resolved from |
grant_capabilities | true | Grant the EtherCAT capabilities during an install. Set false to keep the binary unprivileged |
auto_update and grant_capabilities are durable settings rather than environment variables only, because opting out should be written once rather than remembered on every invocation. OASIS_DISABLE_AUTOUPDATER, OASIS_RELEASE_HOST and OASIS_NO_CAPABILITIES are the environment overrides, for CI and containers where writing a config file is awkward.
grant_capabilities on a shared host
Capabilities attach to the file, so a granted binary hands a raw socket to anyone who can execute it. Set grant_capabilities: false where that matters.
Version policy
Two file-only keys pin which versions an install may move to. They are operator-owned and cannot be set with /config. Edit the file.
| Key | Purpose |
|---|---|
minimum_version | Refuse to update to anything older than this |
maximum_version | Refuse to update to anything newer than this |
{ "minimum_version": "0.4.0", "maximum_version": "0.5.0" }An update blocked by a bound says which bound blocked it.
An invalid bound is ignored, not enforced
A value that is not a version is dropped rather than applied. The failure mode of a wrongly enforced bound (every install in a fleet frozen by one bad value) is worse than the failure mode of a missed one.
Paths
| Path | Override with | Contents |
|---|---|---|
~/.oasis | OASIS_ROOT | Installation root: config, sessions, versions, audit log |
~/.local/bin | OASIS_INSTALL_DIR | The launcher |
~/.oasis/sessions | — | Conversation history |
~/.oasis/audit.jsonl | OASIS_AUDIT_FILE | The audit trail |
~/.local/state/oasis-agent/memory/<project> | OASIS_MEMORY_DIR | Persistent per-project notes |
~/.config/oasis-agent/mcp-tokens.json | OASIS_MCP_TOKEN_STORE | Cached MCP OAuth tokens |
Full flag list
oasis-agent --help--help prints every flag with its environment variable and default. A curated reference is at Command Reference.