A small Tauri 2 desktop app for managing Codex writable roots with a GUI instead of hand-editing config.toml.
Codex supports additional writable directories, but maintaining them in config files is easy to get wrong, especially when you want to:
- add or remove directories quickly
- use environment variables in paths
- verify that a path actually exists before saving
- switch between English and Chinese in the UI
This project wraps that workflow in a lightweight desktop app.
- Add writable roots manually from a desktop UI
- Resolve environment variables before saving
- Support
%VAR%,$VAR,${VAR},$env:VAR, and leading~ - Preview the resolved path before adding it
- Validate whether the path exists and is a directory
- Remove duplicates automatically
- Import directories from a native folder picker
- Import directories by drag and drop
- Keep a local JSON backup snapshot for quick recovery
- Restore the last saved root list back into the UI before writing to Codex again
- Switch language between
Auto,English, and中文 - Switch theme between
Auto,Light, andDark - Show the app version in the UI
The app updates the top-level sandbox_workspace_write.writable_roots array in:
CODEX_HOME/config.toml, ifCODEX_HOMEis set~/.codex/config.toml, otherwise
It is intentionally narrow in scope:
- it manages the global writable root list only
- it does not edit project-specific trust settings
- it writes normalized absolute paths for newly added entries
- it also stores a local JSON snapshot of the managed root list for recovery
- restore repopulates the app UI first; it does not silently overwrite Codex config
Prebuilt releases are published for Windows/macOS/Linux on GitHub Releases. You can also build from source.
This repo includes a GitHub Actions workflow that builds releases from git tags:
- Push a tag like
v0.2.0to GitHub - The workflow syncs the version from the tag, builds for Windows/macOS/Linux, generates release notes, and publishes a GitHub Release
Requirements:
- Node.js
- Rust toolchain
- Tauri 2 prerequisites for your platform
Install dependencies:
npm installRun in development mode:
npm run tauri devBuild the frontend bundle:
npm run buildCheck the Rust side:
cargo check --manifest-path src-tauri/Cargo.toml- Tauri 2
- Vite
- TypeScript
- Rust
toml_edit
- Existing values already present in Codex config are loaded and displayed.
- New entries are validated before they are saved.
- English is the default GitHub landing page; the Chinese version lives in
README.zh-CN.md.