Data locations
Where Terax stores settings, sessions, themes, snippets, and keys on each platform.
Terax stores its state in one app data directory plus the OS keychain. The settings UI is the source of truth - hand-editing these files is supported but not the workflow.
App data directory
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/app.crynta.terax/ |
| Linux | ~/.local/share/app.crynta.terax/ |
| Windows | %APPDATA%\app.crynta.terax\ |
The bundle id is app.crynta.terax. Resolved by the Rust dirs crate, never by raw $HOME / %APPDATA% reads.
Files
| File | Contents |
|---|---|
terax-settings.json | App preferences - themes, fonts, shortcuts, autocomplete, agent toggles, WSL distro, etc. |
terax-ai-sessions.json | Chat session list, active id, and per-session message histories |
terax-ai-agents.json | Custom agents - system prompts and tool subsets |
terax-ai-snippets.json | Composer #handle snippets |
terax-ai-todos.json | In-app TODO lists the agent can read and write |
terax-custom-themes.json | User-built themes |
themes/ | Background images and any per-theme assets |
All seven are managed through tauri-plugin-store. Atomic writes, schema migrations on launch.
You can back up or sync this directory across machines if you want. Just close Terax first.
Keychain
API keys never live in the files above. They go to the OS keychain:
- macOS - Keychain, service
terax-ai - Windows - Credential Manager, target
terax-ai - Linux - Secret Service (libsecret) where available; file-based fallback gated behind
#[cfg(target_os = "linux")]for headless environments
Wipe all keys at once by deleting the terax-ai service entries in your OS keychain. The settings file is unaffected.
Cache
Terax does not maintain a separate disk cache today. Webview cache is managed by Tauri's WebView2 (Windows) / WKWebView (macOS) / webkit2gtk (Linux) and lives in the platform-default location for those engines.
Editing files directly
You can edit any file in the app data directory while Terax is closed. On next launch the store will validate, migrate if needed, and surface errors in the About tab.
The settings UI is still the right way to change preferences - it knows the schema, validates inputs, and triggers the right re-renders (theme swaps, font changes, shortcut rebinds). Editing JSON by hand is for backups and bulk migrations, not daily use.