What happens
ucode opencode ignores your own OpenCode config in ~/.config/opencode/.
Your settings there have no effect during a ucode session:
- permission rules (for example
rm -rf * = deny, git push --force* = deny)
- your MCP servers
disabled_providers / enabled_providers
- skills, agents, commands, plugins, themes,
tui.json
- your global
AGENTS.md
The permission rules are the biggest concern. A user who blocks rm -rf * and force pushes in their global config gets none of that protection under ucode opencode.
Why
ucode changes XDG_CONFIG_HOME to send OpenCode to ucode's own folder. That variable tells OpenCode where its config folder is. When ucode changes it, OpenCode looks in ucode's folder and never reads ~/.config/opencode/. The user's config is invisible.
What it should do
OpenCode is built to read many config files and combine them by priority. ucode should add its file on top of the user's config, not replace the whole folder. Then ucode keeps control of model and provider, and the user keeps everything else.
The fix: name ucode's file with OPENCODE_CONFIG (a layer on top) instead of redirecting XDG_CONFIG_HOME (a full replace).
Note
gemini (GEMINI_CLI_HOME) and pi (PI_CODING_AGENT_DIR) hide the user config in the same way. Separate follow-ups.
What happens
ucode opencodeignores your own OpenCode config in~/.config/opencode/.Your settings there have no effect during a ucode session:
rm -rf *= deny,git push --force*= deny)disabled_providers/enabled_providerstui.jsonAGENTS.mdThe permission rules are the biggest concern. A user who blocks
rm -rf *and force pushes in their global config gets none of that protection underucode opencode.Why
ucode changes
XDG_CONFIG_HOMEto send OpenCode to ucode's own folder. That variable tells OpenCode where its config folder is. When ucode changes it, OpenCode looks in ucode's folder and never reads~/.config/opencode/. The user's config is invisible.What it should do
OpenCode is built to read many config files and combine them by priority. ucode should add its file on top of the user's config, not replace the whole folder. Then ucode keeps control of
modelandprovider, and the user keeps everything else.The fix: name ucode's file with
OPENCODE_CONFIG(a layer on top) instead of redirectingXDG_CONFIG_HOME(a full replace).Note
gemini(GEMINI_CLI_HOME) andpi(PI_CODING_AGENT_DIR) hide the user config in the same way. Separate follow-ups.