App Variant
Server CLI / Desktop
Operating System & Version
Linux, macOS, Windows
This feature request is cross-platform, but it is especially useful on Linux/macOS where users often launch tools through wrapper scripts, sandboxing commands, or alternative OpenCode installations.
Issue Summary
Please allow configuring the OpenCode executable and additional launch arguments used by CodeNomad when starting OpenCode workspaces.
Today, CodeNomad appears to support selecting or resolving the OpenCode binary globally, but the server launch arguments are effectively controlled by CodeNomad. It would be useful to support:
- A configurable OpenCode binary path.
- Configurable extra arguments for the OpenCode process.
- Optional per-workspace/per-project overrides for the binary and arguments.
This would make it possible to use custom wrappers, sandboxing, profile-specific launchers, environment-specific OpenCode installs, or alternate OpenCode versions without replacing the global opencode binary.
I searched existing issues/PRs before opening this. I found a related but different issue about respecting OPENCODE_CONFIG_DIR when launching OpenCode workspaces, but I did not find an issue specifically asking for configurable OpenCode binary arguments and per-workspace launch overrides.
Steps to Reproduce
Example use cases that are difficult or not possible today:
- Use a wrapper command instead of plain
opencode.
- Add custom arguments before or around the OpenCode invocation.
- Launch OpenCode through a sandboxing or isolation tool such as
bubblewrap.
- Use a different OpenCode binary or wrapper for different projects/workspaces.
- Use different environment-specific OpenCode launch setups for work projects, personal projects, or experimental projects.
A generic desired launch shape would be:
<custom-binary> <custom-args...> serve --port 0 --print-logs --log-level <level>
Examples:
/path/to/custom-opencode-wrapper serve --port 0 --print-logs --log-level debug
bwrap --dev-bind / / --tmpfs /some/path opencode serve --port 0 --print-logs --log-level debug
/path/to/project-specific-opencode-wrapper serve --port 0 --print-logs --log-level debug
Today this is awkward if CodeNomad only supports a single binary path and hardcodes the rest of the arguments.
Expected Behavior
CodeNomad should support configurable OpenCode launch settings.
Suggested global config shape:
server:
opencode:
binary: /path/to/opencode-or-wrapper
args:
- serve
- --port
- "0"
- --print-logs
- --log-level
- debug
Alternatively, if CodeNomad needs to keep ownership of the required serve --port 0 ... arguments, it could support prepend/append arguments instead:
server:
opencode:
binary: /path/to/opencode-or-wrapper
prependArgs: []
appendArgs: []
or a backward-compatible shape:
server:
opencodeBinary: /path/to/opencode-or-wrapper
opencodeExtraArgs:
- --some-custom-flag
Optional per-workspace/per-project override:
workspaces:
- path: /path/to/project-a
opencode:
binary: /path/to/opencode-wrapper-a
args: []
- path: /path/to/project-b
opencode:
binary: /path/to/opencode-wrapper-b
args: []
Another possible approach would be to allow a project-local config file such as .codenomad/config.yaml:
opencode:
binary: /path/to/project-wrapper
args: []
Expected result:
- users can configure the OpenCode executable globally;
- users can configure additional launch arguments;
- CodeNomad still appends or manages its required server arguments safely;
- optional per-project overrides allow different workspaces to use different OpenCode launch setups;
- the UI/logs show the resolved binary and final launch command for debugging, with sensitive values redacted.
Logs & Screenshots
Not applicable. This is a feature request.
Additional Context
This would help with several legitimate workflows:
- using wrapper scripts around OpenCode;
- using different OpenCode installations;
- testing different OpenCode versions;
- launching OpenCode through sandboxing or isolation tools such as
bubblewrap;
- applying project-specific environment variables or runtime isolation;
- using different authentication/profile setups per workspace;
- keeping workspaces reproducible without changing the global system
opencode binary.
The per-project override is optional, but it would be very useful. A global binary + args setting would already solve many cases.
It would also be useful if CodeNomad exposed the resolved launch command in logs or a debug UI, with sensitive environment variables redacted.
Related prior work / similar area:
- There is an existing issue about respecting user-provided
OPENCODE_CONFIG_DIR when launching OpenCode workspaces. This feature request is related to the same launch-configuration area, but asks specifically for configurable binary/arguments and optional per-workspace overrides.
App Variant
Server CLI / Desktop
Operating System & Version
Linux, macOS, Windows
This feature request is cross-platform, but it is especially useful on Linux/macOS where users often launch tools through wrapper scripts, sandboxing commands, or alternative OpenCode installations.
Issue Summary
Please allow configuring the OpenCode executable and additional launch arguments used by CodeNomad when starting OpenCode workspaces.
Today, CodeNomad appears to support selecting or resolving the OpenCode binary globally, but the server launch arguments are effectively controlled by CodeNomad. It would be useful to support:
This would make it possible to use custom wrappers, sandboxing, profile-specific launchers, environment-specific OpenCode installs, or alternate OpenCode versions without replacing the global
opencodebinary.I searched existing issues/PRs before opening this. I found a related but different issue about respecting
OPENCODE_CONFIG_DIRwhen launching OpenCode workspaces, but I did not find an issue specifically asking for configurable OpenCode binary arguments and per-workspace launch overrides.Steps to Reproduce
Example use cases that are difficult or not possible today:
opencode.bubblewrap.A generic desired launch shape would be:
Examples:
Today this is awkward if CodeNomad only supports a single binary path and hardcodes the rest of the arguments.
Expected Behavior
CodeNomad should support configurable OpenCode launch settings.
Suggested global config shape:
Alternatively, if CodeNomad needs to keep ownership of the required
serve --port 0 ...arguments, it could support prepend/append arguments instead:or a backward-compatible shape:
Optional per-workspace/per-project override:
Another possible approach would be to allow a project-local config file such as
.codenomad/config.yaml:Expected result:
Logs & Screenshots
Not applicable. This is a feature request.
Additional Context
This would help with several legitimate workflows:
bubblewrap;opencodebinary.The per-project override is optional, but it would be very useful. A global binary + args setting would already solve many cases.
It would also be useful if CodeNomad exposed the resolved launch command in logs or a debug UI, with sensitive environment variables redacted.
Related prior work / similar area:
OPENCODE_CONFIG_DIRwhen launching OpenCode workspaces. This feature request is related to the same launch-configuration area, but asks specifically for configurable binary/arguments and optional per-workspace overrides.