The usage plugin reads config/auth values as literal strings, so secret file references are not resolved. This makes it hard to use secret managers such as sops-nix where keys are exposed as files in /run/secrets/....
Current behavior
usage-config.jsonc fields (for example apiKey) are parsed as plain JSONC and used directly.
- Auth entries used by providers are consumed as raw
key / access strings.
- Values like
{file:/run/secrets/proxy_api_key} or {env:PROXY_API_KEY} are not expanded.
Expected behavior
Support the same variable interpolation style as OpenCode config:
{env:VAR_NAME}
{file:/absolute/or/relative/path}
Why this matters
Many setups (including NixOS + sops-nix) store secrets as files under /run/secrets/.... Without interpolation support, users must keep/duplicate secrets in plain text config, a big no-no for some setups.
Reference (OpenCode config behavior)
The usage plugin reads config/auth values as literal strings, so secret file references are not resolved. This makes it hard to use secret managers such as sops-nix where keys are exposed as files in
/run/secrets/....Current behavior
usage-config.jsoncfields (for exampleapiKey) are parsed as plain JSONC and used directly.key/accessstrings.{file:/run/secrets/proxy_api_key}or{env:PROXY_API_KEY}are not expanded.Expected behavior
Support the same variable interpolation style as OpenCode config:
{env:VAR_NAME}{file:/absolute/or/relative/path}Why this matters
Many setups (including NixOS + sops-nix) store secrets as files under
/run/secrets/.... Without interpolation support, users must keep/duplicate secrets in plain text config, a big no-no for some setups.Reference (OpenCode config behavior)