Architecture Reference: For backend config system architecture, see
docs/architecture/config-system.md
This document specifies the UI/UX design for the QNTX configuration panel. It defines the visual layout, interaction model, and future product vision for how users interact with configuration in the web UI.
Group by source: Collapsible sections for each config source (see config-system.md for precedence details):
/etc/qntx/config.toml)~/.qntx/config.toml)~/.qntx/config_from_ui.toml) - Editableproject/config.toml)QNTX_*)Visual precedence: Make it clear which value is effective
~/.qntx/config_from_ui.tomlweb/ts/config-panel.js
web/css/config-panel.css
position: fixed; left: 0; width: 50%; height: 100%;web/index.html (if needed)
// Current:
GET /api/config?introspection=true
→ Flat list of settings with sources
// Enhanced (future):
GET /api/config?introspection=true
→ Grouped by source
→ Each setting knows: key, value, source, is_effective, overridden_by
Backend implementation is documented in docs/architecture/config-system.md.
Current backend capabilities:
config_from_ui.toml┌─────────────────────────────────────┐
│ ≡ Configuration [✕ Close]│
├─────────────────────────────────────┤
│ 🔍 [Filter settings...] │
├─────────────────────────────────────┤
│ │
│ ▼ System Config │
│ (Read-only, /etc/qntx/config.toml)│
│ ┌─────────────────────────────┐ │
│ │ database.path │ │
│ │ /var/lib/qntx/qntx.db │ │
│ │ [system] │ │
│ └─────────────────────────────┘ │
│ │
│ ▼ User Config │
│ (Read-only, ~/.qntx/config.toml) │
│ ┌─────────────────────────────┐ │
│ │ openrouter.api_key │ │
│ │ sk-or-v1-9bee... │ │
│ │ [user] ⚠ Overridden by env │ │
│ └─────────────────────────────┘ │
│ │
│ ▼ UI Config (Editable) │
│ (Managed by UI, ~/.qntx/config... │
│ ┌─────────────────────────────┐ │
│ │ local_inference.enabled │ │
│ │ [✓] true [Edit] │ │
│ │ [user_ui] ✅ Active │ │
│ └─────────────────────────────┘ │
│ ┌─────────────────────────────┐ │
│ │ local_inference.model │ │
│ │ mistral [▼ Edit] │ │
│ │ [user_ui] ✅ Active │ │
│ └─────────────────────────────┘ │
│ │
│ ▼ Project Config │
│ (Read-only, project/config.toml) │
│ (No settings - project config │
│ would override UI settings) │
│ │
│ ▼ Environment Variables │
│ ┌─────────────────────────────┐ │
│ │ openrouter.api_key │ │
│ │ sk-or-v1-bb5b... │ │
│ │ [environment] ✅ Active │ │
│ └─────────────────────────────┘ │
│ │
└─────────────────────────────────────┘
~/.qntx/config_from_ui.tomlis_effective and overridden_by fieldsFor discussion of potential future enhancements including multi-provider configuration support, see Issue #205.
The config panel's current job is to visualize the dataflow from our 5 configuration sources:
Current implementation shows:
openrouter.api_key = sk-*** [ENV] ✓
⚠ overrides [USER]
database.path = /var/lib/qntx/... [PROJECT] ✓
⚠ overrides [SYSTEM]
pulse.daily_budget_usd = 10.0 [USER_UI] ✓
(no overrides)
Concept: Config panel with integrated documentation viewer
Interaction Flow:
openrouter.model)Example Documentation Entry:
┌─────────────────────────────────────────────────────────────┐
│ openrouter.model │
├─────────────────────────────────────────────────────────────┤
│ │
│ Description: │
│ Specifies which AI model to use for OpenRouter │
│ inference calls. Affects cost, speed, and quality. │
│ │
│ Type: string │
│ │
│ Valid Values: │
│ • anthropic/claude-haiku-4 (fast, cheap) │
│ • anthropic/claude-3.5-sonnet:beta (balanced) │
│ • x-ai/grok-code-fast-1 (code-focused) │
│ • meta-llama/llama-3.2-3b-instruct (very fast) │
│ │
│ Default: anthropic/claude-haiku-4.5 │
│ │
│ Examples: │
│ For code generation: x-ai/grok-code-fast-1 │
│ For reasoning tasks: anthropic/claude-3.5-sonnet:beta │
│ For bulk operations: meta-llama/llama-3.2-3b-instruct │
│ │
│ Related Settings: │
│ • openrouter.api_key - Required for OpenRouter access │
│ • local_inference.enabled - Alternative to cloud │
│ │
│ Cost Impact: Varies by model (see OpenRouter pricing) │
│ │
│ [View OpenRouter Models →] │
└─────────────────────────────────────────────────────────────┘
Implementation Considerations:
/api/config/docs/:key endpointSymbol Integration:
docs/architecture/config-system.md - Config loading, persistence, source trackinginternal/config/config.go (implementation)