Overrides
Overrides
Section titled “Overrides”Overrides let you customize tool-specific settings while maintaining a unified configuration.
JSON Overrides
Section titled “JSON Overrides”Define in settings.json under the overrides key:
{ "permissions": { ... }, "mcpServers": { ... }, "overrides": { "claudeCode": { "model": "opus" }, "opencode": { "theme": "dark" } }}Values are deep-merged into the generated configuration.
Merge Behavior
Section titled “Merge Behavior”- Objects: Recursively merged
- Arrays: Concatenated and deduplicated
- Primitives: Override wins
Common Overrides
Section titled “Common Overrides”Claude Code:
{ "overrides": { "claudeCode": { "model": "opus", "customInstructions": "Additional context..." } }}OpenCode:
{ "overrides": { "opencode": { "theme": "system", "keybindings": "vim" } }}File Overrides
Section titled “File Overrides”Place files in tool-specific directories within .ai/:
.ai/├── .claude/ # Claude Code file overrides└── .opencode/ # OpenCode file overridesFiles are symlinked to the tool’s output directory:
| Source | Target |
|---|---|
.ai/.claude/<path> | .claude/<path> |
.ai/.opencode/<path> | .opencode/<path> |
Example
Section titled “Example”.ai/.claude/└── commands/ └── deploy.mdAfter lnai sync:
.claude/├── CLAUDE.md # from unified config├── settings.json # generated└── commands/ └── deploy.md # symlinkUse JSON overrides for settings, file overrides for additional files like custom commands.