feat: read approvalMode from config file (#298)
This PR implements support for reading the approvalMode setting from the user's config file (`~/.codex/config.json` or `~/.codex/config.yaml`), allowing users to set a persistent default approval mode without needing to specify command-line flags for each session. Changes: - Added approvalMode to the AppConfig type in config.ts - Updated loadConfig() to read the approval mode from the config file - Modified saveConfig() to persist the approval mode setting - Updated CLI logic to respect the config-defined approval mode (while maintaining CLI flag priority) - Added comprehensive tests for approval mode config functionality - Updated README to document the new config option in both YAML and JSON formats - additions to `.gitignore` for other CLI tools Motivation: As a user who regularly works with CLI-tools, I found it odd to have to alias this with the command flags I wanted when `approvalMode` simply wasn't being parsed even though it was an optional prop in `config.ts`. This change allows me (and other users) to set the preference once in the config file, streamlining daily usage while maintaining the ability to override via command-line flags when needed. Testing: I've added a new test case loads and saves approvalMode correctly that verifies: - Reading the approvalMode from the config file works correctly - Saving the approvalMode to the config file works as expected - The value persists through load/save operations All tests related to the implementation are passing.
This commit is contained in:
13
README.md
13
README.md
@@ -281,11 +281,12 @@ pnpm link
|
||||
|
||||
## Configuration
|
||||
|
||||
Codex looks for config files in **`~/.codex/`**.
|
||||
Codex looks for config files in **`~/.codex/`** (either YAML or JSON format).
|
||||
|
||||
```yaml
|
||||
# ~/.codex/config.yaml
|
||||
model: o4-mini # Default model
|
||||
approvalMode: suggest # or auto-edit, full-auto
|
||||
fullAutoErrorMode: ask-user # or ignore-and-continue
|
||||
notify: true # Enable desktop notifications for responses
|
||||
safeCommands:
|
||||
@@ -293,6 +294,16 @@ safeCommands:
|
||||
- yarn lint # Automatically approve yarn lint
|
||||
```
|
||||
|
||||
```json
|
||||
// ~/.codex/config.json
|
||||
{
|
||||
"model": "o4-mini",
|
||||
"approvalMode": "suggest",
|
||||
"fullAutoErrorMode": "ask-user",
|
||||
"notify": true
|
||||
}
|
||||
```
|
||||
|
||||
You can also define custom instructions:
|
||||
|
||||
```yaml
|
||||
|
||||
Reference in New Issue
Block a user