Skip to content

OpenCode

LNAI exports unified configuration to OpenCode’s native format, transforming settings as needed.

.opencode/
├── AGENTS.md # Symlink → ../.ai/AGENTS.md
├── rules/ # Symlink → ../.ai/rules/
├── skills/<name>/ # Symlinks → ../../.ai/skills/<name>/
└── <overrides> # Symlinks from .ai/.opencode/
opencode.json # Generated (at project root)
SourceOutputType
.ai/AGENTS.md.opencode/AGENTS.mdSymlink
.ai/rules/.opencode/rules/Symlink
.ai/skills/<name>/.opencode/skills/<name>/Symlink
.ai/settings.jsonopencode.jsonTransformed
.ai/.opencode/<path>.opencode/<path>Symlink
// Input (Claude format)
{ "permissions": { "allow": ["Bash(git:*)"] } }
// Output (OpenCode format)
{ "permission": { "bash": { "git *": "allow" } } }
// Input (Claude stdio)
{ "command": "npx", "args": ["-y", "@example/mcp"] }
// Output (OpenCode local)
{ "type": "local", "command": ["npx", "-y", "@example/mcp"] }
ClaudeOpenCode
stdio (command, args)type: "local", command: [...]
type: "http" or "sse"type: "remote"
env: {}environment: {}
${VAR}{env:VAR}

Any settings in overrides.opencode are deep-merged into the output.