Where settings live
Oppla stores configuration at user and project scope. Use the GUI preferences for most tasks or the settings files for automation and reproducibility.- User settings (per-user)
- macOS / Linux:
~/.config/oppla/settings.json
- Windows (planned):
%APPDATA%\Oppla\settings.json
- macOS / Linux:
- Project settings (per-repository)
- Repository root:
.oppla/settings.json
- Project settings override user settings for that repository.
- Repository root:
Open settings
- GUI: Preferences → Settings (or Command Palette →
oppla: Open Settings
) - File: Open
~/.config/oppla/settings.json
(or project.oppla/settings.json
) in the editor
Common configuration areas
AI providers and models
Configure cloud or local AI providers, preferred models, and privacy options. Use environment variables for secrets (recommended). Example (user settings snippet):- Use
api_key_env
to point to env vars rather than storing keys in files. privacy.mode
can belocal_only
,local_first
, orcloud_allowed
.- Configure task-specific models in
task_model_overrides
(see Available Models page).
Key bindings / keymaps
Oppla reads user keymaps from~/.config/oppla/keymap.json
. You can set a base_keymap
in settings to adopt a familiar layout (VSCode, Emacs, Vim, etc.).
Example:
- Open default keymap: Command Palette →
oppla: open default keymap
- For debugging: run
dev: Open Key Context View
- To enable AI-optimized learning, allow
ai_keymap_learning.enabled
.
Themes & visual customization
Theme preferences live in settings; Oppla supportsai_adaptive
mode that auto-adjusts based on time of day and activity.
Example:
~/.config/oppla/themes/
.
CLI settings & installation
- CLI binary (when installed) integrates with your system shell.
- To install CLI on macOS:
oppla: cli install
(creates a symlink to/usr/local/bin/oppla
) - For automated installs, prefer signed release assets and verify checksums.
curl | sh
) without verifying signatures in production environments.
Secret management & environment variables
Preferred approaches:- Local dev: store secrets in OS secret stores (Oppla prompts to save keys securely).
- CI: set provider keys as environment variables (
OPENAI_API_KEY
,ANTHROPIC_API_KEY
, etc.). - Project automation: use a secrets manager and reference tokens with
api_key_env
.
Project-level configuration and AI Rules
Project-level AI behavior and enforcement (AI Rules) should live in.oppla/ai-rules.json
in the repository root. Use project rules to:
- Prevent sending sensitive files to cloud providers
- Require approvals for high-risk paths
- Restrict allowed providers or models
Troubleshooting
- Settings not applied:
- Confirm you’re editing the correct scope (user vs. project).
- Restart Oppla or reload the window after manual edits.
- API key errors:
- Verify env var is set and contains a valid key.
- Check OS secret store permissions and that Oppla can read the secret.
- Keymap conflicts:
- Use
dev: Open Key Context View
and run “AI: Analyze Keymap Usage”.
- Use
- Slow AI responses:
- Switch to
local_first
, reduce context window size, or pick a lower-latency local model.
- Switch to
Best practices checklist
- Use OS secret stores or environment variables for API keys.
- Start AI keymap learning with a default period (7 days) before applying suggestions.
- Prefer local-first or local-only mode for sensitive codebases.
- Keep project-level rules under source control for reproducibility.
- Document any non-standard settings in the repository README for contributors.
Related documentation
- Key Bindings: docs/ide/configuration/key-bindings.mdx
- Themes: docs/ide/configuration/themes.mdx
- AI Overview & configuration: docs/ide/ai/overview.mdx, docs/ide/ai/configuration.mdx
- Privacy & Security: docs/ide/ai/privacy-and-security.mdx
- Agent Panel, Rules, Tools: docs/ide/ai/agent-panel.mdx, docs/ide/ai/rules.mdx, docs/ide/ai/tools.mdx
If you want, I can:
- Add step-by-step screenshots for common configuration flows.
- Provide example automation scripts to provision settings for teams.
- Add validation rules and a sample
oppla: validate-config
CLI snippet to check config health.