Configuration Management
Relevant source files
The following files were used as context for generating this wiki page:
Configuration Management in oboete controls how the system captures agent data, redacts secrets, and manages AI provider chains. The system uses a central TOML configuration file located in the home directory to define behavioral parameters for memory curation, embedding providers, and data capture rules.
The configuration architecture prioritizes fail-open recording and robust redaction. If the configuration file is missing, the system falls back to built-in defaults to ensure coding agents continue to function. Users can manage these settings through the oboete setup and oboete doctor commands.
Sources: src/config.rs:1-10, src/main.rs:175-190
Configuration Structure
The primary configuration file resides at <OBOETE_HOME>/config.toml. It defines the provider chain, curation parameters, and redaction logic. The system uses the Config struct to represent the complete settings.
Core Components
The configuration is divided into several logical sections:
- Providers: A chain of AI services (OpenAI-compatible or CLI-based) used for curation and summarization.
- Summary: Settings for the background worker that curates memory windows.
- Embedding: Parameters for semantic search providers.
- Redaction: User-defined rules and allowlists for masking secrets.
- Capture: Controls for what data types the system stores.
Sources: src/config.rs:10-25
The diagram above illustrates the hierarchy of configuration structures within the oboete system.
Sources: src/config.rs:12-40, src/config.rs:88-110
AI Provider Management
Oboete manages a fallback chain of providers. It tries each provider in order until one succeeds or the chain exhausts. Providers are either Openai (network API) or Cli (local headless tools like claude or codex).
Provider Attributes
| Field | Type | Description |
|---|---|---|
name | String | Unique identifier for the provider. |
daily_budget | u32 | Maximum number of calls allowed per day. Defaults to 300 for APIs. |
timeout_s | u64 | Global timeout for the request. Defaults to 90s for APIs and 300s for CLIs. |
subscription | bool | Indicates if the provider uses a coding subscription (e.g., Claude Code). |
limits | Limits | Token ceilings and USD pricing for paid entries. |
Sources: src/config.rs:135-210, src/config.rs:250-270
Default Chain Order
The system defines a default chain that prioritizes free services before moving to paid or subscription-based models:
- Groq: Strict-schema models (gpt-oss, qwen).
- OpenRouter: Free tier models.
- Mistral: Mistral-small-latest.
- NIM: NVIDIA super models.
- OpenCode Go: Flat-rate glm models.
- Subscribed CLIs:
codexandclaude.
Sources: src/config.rs:356-425
Capture and Redaction Settings
The Capture and Redaction sections control the data ingestion pipeline. These settings are loaded per hook call to ensure they apply even if other parts of the config are invalid.
Redaction Rules
Users can extend the built-in Gitleaks-style rules by adding to the extra_rules array. Each rule defines a regex and optional keywords or entropy requirements. The allowlist holds SHA-256 hashes of values that should not be masked.
Sources: src/config.rs:460-490, src/redact.rs:105-150
Capture Constraints
The Capture table defines what specific agent events are saved to the database.
| Option | Default | Description |
|---|---|---|
store_prompts | true | Whether to record the text of user prompts. |
tool_output | Full | Controls if tool outputs are stored whole or as head-tail clips. |
Sources: src/config.rs:495-515
Home Directory and Environment
The system determines the data directory in the following order of precedence:
- The
--homeCLI argument. - The
OBOETE_HOMEenvironment variable. - The default path:
~/.oboete.
Sources: src/main.rs:175-185, src/config.rs:275-285
This flowchart describes the logic used to locate and initialize the system configuration at runtime.
Sources: src/main.rs:175-190, src/config.rs:435-455
Setup and Diagnostics
The oboete setup command manages the integration between the binary and various coding agents. It modifies agent configuration files (like settings.json for Claude or config.toml for Codex) to wire hook events to the oboete binary.
Doctor Command
The oboete doctor command validates the effective configuration and environment state. It reports:
- The status of hook wiring for all supported agents.
- The health and size of the SQLite databases.
- The readiness of configured providers and API keys.
- Effective capture and redaction rules.
Sources: src/setup.rs:1-15, src/setup.rs:770-800, src/setup.rs:920-950
Configuration Management ensures that the oboete memory store remains secure and functional across different environments. By separating capture settings from curation logic and providing robust defaults, the system maintains recording continuity while allowing users to fine-tune AI usage and privacy rules.