mcode 0.4.12, npm install, Linux, Node v26.8.2
BYOK API keys are stored in plaintext in ~/.minimax/config.yaml with mode
0644 (world-readable), despite provider add --api-key-env suggesting the key
stays referenced by environment variable name:
$ stat -c '%a %n' ~/.minimax/config.yaml
644 /home/cyanthus/.minimax/config.yaml
$ grep -A2 'custom_provider:' ~/.minimax/config.yaml
custom_provider:
atria:
...
options:
apiKey: atr_... # plaintext value, not "ATRIA_API_KEY"
The adjacent auth/ directory is created 0700, so the intent is clearly
there — config.yaml just doesn't get the same treatment.
For comparison:
SECURITY.md also tells users to "Restrict local access" on the data
directory — hard to follow when the provider config is 644 under a 755
parent.
Suggestion (any of):
- chmod 0600 on config.yaml at creation and on write
- store the env var name (the CLI already accepts
--api-key-env) and
resolve at runtime instead of storing the value
- keychain where available
Happy to provide more details if useful.
mcode 0.4.12, npm install, Linux, Node v26.8.2
BYOK API keys are stored in plaintext in
~/.minimax/config.yamlwith mode0644 (world-readable), despite
provider add --api-key-envsuggesting the keystays referenced by environment variable name:
The adjacent
auth/directory is created 0700, so the intent is clearlythere —
config.yamljust doesn't get the same treatment.For comparison:
macOS), documented in its auth docs
secure permissions on
oauth_creds.jsonSECURITY.md also tells users to "Restrict local access" on the data
directory — hard to follow when the provider config is 644 under a 755
parent.
Suggestion (any of):
--api-key-env) andresolve at runtime instead of storing the value
Happy to provide more details if useful.