1
51
近 7 天 7
31.2
生态多维模型
1 个月前
2026-08-26
快速安装与配置
opencode.json写入当前项目的 opencode.json,只对这个仓库生效。
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-ext@0.0.1"]
}写入 ~/.config/opencode/opencode.json,对所有项目生效。
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-ext@0.0.1"]
}若你要在本地改造这个插件,先装到项目里再从本地路径引用。
shell
pnpm add -D opencode-extOpenCode 启动时会通过内嵌运行时自动加载 npm 依赖并缓存至本地目录,无需手动在全局环境执行安装。
OpenCode extensions for loading environment variables and restricting long-running bash commands.
Usage
Add the package to your OpenCode config (opencode.json):
{
"plugin": ["opencode-ext"]
}
The package exports OpenCodeExtEnv and OpenCodeExtArmor. OpenCode loads both
extensions from the package.
Configuration
Create a configuration file in any of these locations:
~/.opencode-ext.json- global./.opencode-ext.json- project root./.opencode/ext.json- OpenCode project configuration
Higher-precedence scalar values override lower-precedence values. Arrays and objects use the feature-specific merge behavior described below.
{
"$schema": "https://github.com/NazmusSayad/opencode-ext/raw/refs/heads/schema/schema.json",
"env": {
"files": [".env", ".env.local"],
"define": {
"NODE_ENV": "development",
"MY_VAR": "value"
},
"disableGlobal": false,
"disableCwdEnv": false,
"disableDirenv": false,
"disableCwdDirenv": false
},
"armor": {
"priority": "whitelist",
"message": "Blocked: `{{COMMAND}}` (matched `{{PATTERN}}`)",
"blacklist": {
"commands": ["custom-pattern"],
"disableDefaults": false,
"disableGlobal": false
},
"whitelist": {
"commands": ["vitest"],
"disableDefaults": false,
"disableGlobal": false
},
"command": {
"before": { "command": "set -e", "comment": "Fail fast" },
"after": { "command": "echo done", "comment": "Notify" }
}
}
}
Environment Variables
env.files lists .env files to load. Relative paths are resolved from the
project or shell working directory, and paths beginning with ~/ are resolved
from the home directory. Files are loaded in configured order, with later files
overriding earlier files.
env.define adds inline variables. Project settings override global settings,
and .opencode/ext.json settings override project settings.
env.disableGlobal excludes only the global files and define values.
env.disableCwdEnv prevents loading configured files from a different shell
working directory. env.disableDirenv disables direnv entirely, while
env.disableCwdDirenv disables direnv only for a different shell working
directory.
Direnv is enabled by default and requires the direnv executable to be
installed. No .env files are loaded unless env.files is configured.
Command Armor
armor.priority accepts whitelist or blacklist and defaults to
whitelist. The blacklist blocks matching bash command prefixes, while the
whitelist provides allowed exceptions according to the selected priority.
armor.blacklist.commands and armor.whitelist.commands add patterns.
disableDefaults excludes that list's built-in patterns, and disableGlobal
excludes that list's global patterns.
armor.message customizes the blocked-command error and supports the
{{COMMAND}} and {{PATTERN}} placeholders.
armor.command.before and armor.command.after inject commands before or after
allowed bash commands. Each accepts command and an optional comment.
CLI
Update explicitly named plugins in OpenCode's package cache:
opencode-ext update-plugin plugin-one plugin-two
Omit plugin names to update every plugin discovered in
~/.cache/opencode/packages/.
Debugging
Set OPENCODE_EXT_ENV_LOG_ENABLED=true to enable environment extension logs.
They are written to os.tmpdir()/.opencode-ext-env-logs/ by default. Set
OPENCODE_EXT_ENV_LOG_PATH to use another directory.
Environment logs contain resolved variable names and values, including secrets. Enable them only when needed and protect or remove the resulting files.
Set OPENCODE_EXT_ARMOR_ENABLE_LOG=true to write Armor logs to
os.tmpdir()/.opencode-ext-armor-logs/.
同类生态推荐
Pty
opencode-pty
OpenCode plugin for interactive PTY management - run background processes, send input, read output with regex filtering
Bg
@imransyafi/opencode-bg
OpenCode plugin for interactive PTY management - run background processes, send input, read output with regex filtering
Auto Permissions
opencode-auto-permissions
Automatic, context-aware permission review for OpenCode