Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion bin/bwopencode
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,9 @@ build_opencode_authoring_mounts() {
# sources; config in the project cannot override it.
#
# Both opencode.json and opencode.jsonc are mounted when present, so
# opencode can pick whichever format it prefers.
# opencode can pick whichever format it prefers. A managed
# /etc/opencode/AGENTS.md is mounted too when present (opencode.jsonc
# references it via "instructions").
#
# On hosts without /etc/opencode/, nothing is bound here — opencode
# falls back to user config at ~/.config/opencode/ as usual. A
Expand All @@ -314,6 +316,10 @@ build_managed_config() {
if [[ "${_has_jsonc}" -eq 1 ]]; then
BWRAP_ARGS+=(--ro-bind /etc/opencode/opencode.jsonc /etc/opencode/opencode.jsonc)
fi
# Managed AGENTS.md, referenced from opencode.jsonc via "instructions".
if [[ -f /etc/opencode/AGENTS.md ]]; then
BWRAP_ARGS+=(--ro-bind /etc/opencode/AGENTS.md /etc/opencode/AGENTS.md)
fi
else
printf 'bwopencode: warning: no /etc/opencode/opencode.json{,c} found on host.\n' >&2
printf ' Falling back to user config at ~/.config/opencode/.\n' >&2
Expand Down
8 changes: 7 additions & 1 deletion bin/bwopencode2
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,9 @@ build_opencode2_authoring_mounts() {
# project cannot override it.
#
# Both opencode.json and opencode.jsonc are mounted when present, so
# opencode2 can pick whichever format it prefers.
# opencode2 can pick whichever format it prefers. A managed
# /etc/opencode/AGENTS.md is mounted too when present (opencode.jsonc
# references it via "instructions").
#
# On hosts without /etc/opencode/, nothing is bound here — opencode2
# falls back to user config as usual. A warning is emitted to stderr
Expand All @@ -500,6 +502,10 @@ build_managed_config() {
if [[ "${_has_jsonc}" -eq 1 ]]; then
BWRAP_ARGS+=(--ro-bind /etc/opencode/opencode.jsonc /etc/opencode/opencode.jsonc)
fi
# Managed AGENTS.md, referenced from opencode.jsonc via "instructions".
if [[ -f /etc/opencode/AGENTS.md ]]; then
BWRAP_ARGS+=(--ro-bind /etc/opencode/AGENTS.md /etc/opencode/AGENTS.md)
fi
else
printf 'bwopencode2: warning: no /etc/opencode/opencode.json{,c} found on host.\n' >&2
printf ' Falling back to user config at %s/.\n' "${OC2_CONFIG_SRC}" >&2
Expand Down
5 changes: 3 additions & 2 deletions docs/bw-wrappers.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@ When present, the wrappers expose administrator-managed paths as optional,
read-only mounts. They do not expose the rest of the corresponding `/etc`
configuration directories.

- OpenCode: `/etc/opencode/skills`
- OpenCode: `/etc/opencode/skills` and `/etc/opencode/AGENTS.md`
- OpenCode 2 (`bwopencode2`): `/etc/opencode/skills`, `/etc/opencode/agents`,
`/etc/opencode/commands`, and `/etc/opencode/plugins`
`/etc/opencode/commands`, `/etc/opencode/plugins`, and
`/etc/opencode/AGENTS.md`
- Codex: `/etc/codex/skills`
- Claude: `/etc/claude-code/.claude/skills` and
`/etc/claude-code/managed-settings.json`
Expand Down