- BREAKING: Switch from "never overwrite" to "last wins" merge strategy
.envvalues now override existing OS environment variables- This matches the opencode-cli convention (local overrides user)
- Add multi-location
.envloading with cascading merge:~/.config/opencode/.env— global defaults (user email, shared API keys)<projectDir>/.opencode/.env— project-specific overrides (wins)
- Refactor
loadEnvFile()→loadEnvFromPath()+loadMergedEnv()+getGlobalConfigDir() - Update AGENTS.md, README.md, and skill document with new behavior
- Fix skills directory structure for plugin linker compatibility
- The linker expects
skills/<group>/<skill-name>/but the skill was atskills/<skill-name>/directly - The skill was silently never linked because the linker treated the skill directory as a group directory
- The linker expects
- Inject
.envvariables intoprocess.envat plugin init time (Phase 1)- Downstream plugins can now read
.envvalues viaprocess.env.KEY - Eliminates the need for each plugin to implement its own
.envparsing
- Downstream plugins can now read
- Add
shell-env-usageskill document - Add
AGENTS.mdwith build commands and code style guidelines - Add GitHub Actions workflow for automated npm publishing on tag push
- Move source code from
plugins/tosrc/to avoid opencode-link symlinker collision - Extract
loadEnvFile()helper function (DRY)
- Initial release
- Shell environment loader plugin for OpenCode
- Loads
.opencode/.envvariables into shell commands and MCP server processes - Supports standard
.envsyntax (comments, quoted values, export prefix, inline comments) - Does not overwrite existing environment variables