Settings
Settings is one window-wide pane with five sections: General, Git, AI, Advanced and About. Changes are written immediately; there is no Save button. The file behind it is versioned and validated on load, and an unreadable value falls back to its default rather than blocking startup.
General
Language and launch
| Setting | Options |
|---|---|
| Language | English, Simplified Chinese, or follow the system |
| Launch at login | On or off |
| Close to tray | On or off. On macOS the app keeps running when the window closes; on Windows and Linux this setting decides it. |
| Global shortcut | On or off, with an editable accelerator. Default CmdOrCtrl + Shift + O. |
Appearance
| Setting | Options |
|---|---|
| Theme | System, light, dark |
| Accent | System accent, indigo, violet, emerald, amber, rose |
| Density | Comfortable or compact |
| Motion | Follow the system, or turn animations off |
Updates
| Setting | Meaning |
|---|---|
| Check automatically | Ask the update feed whether a newer build exists |
| Download automatically | Download, but do not install without confirmation |
| Check now | Run a check immediately |
| Last check | When the last check ran |
Update checks send the current version, platform and channel. They do not send repository content.
Logging
| Setting | Range |
|---|---|
| Level | Debug, info, warn, error |
| Max file size | 1 to 100 MB |
| Max files | 1 to 50 |
| Open logs | Opens the log directory |
| Export diagnostics | Writes the diagnostics ZIP (see Diagnostics) |
| Check GUI PATH | Compares the application’s PATH with the login shell on macOS and Linux |
Data
| Row or action | Meaning |
|---|---|
| Data path | Where settings, the database, logs and snapshots live |
| Database size, schema version | Current state of the local SQLite database |
| Open data folder | Reveals the directory |
| Backup now | Writes a database backup into backups/ in the data directory; the newest five are kept |
| Reset settings | Restores every setting to its default |
Resetting settings does not delete repositories, logs or recovery snapshots.
Git
Identity
The identity editor writes user.name and user.email either for the current repository or globally, through git config. The repository value wins when both exist, exactly as Git resolves it.
Binary and pull
| Setting | Meaning |
|---|---|
| Git binary | Empty means detect on PATH. An absolute path is the fix when the app cannot see your shell PATH, as with Homebrew on macOS. |
| Test | Runs the configured binary and reports its version |
| Pull mode | Merge, rebase, or fast-forward only |
| Show untracked | Include untracked files in the Changes list |
| Stage all by default | New workbench sessions start with “stage all unstaged files” checked in the composer |
| Auto-fetch | Minutes between background fetches of all remotes; 0 disables it |
| Push preflight threshold | New files above this many MB are flagged before a push. LFS-tracked paths are skipped. |
Diff
Diff context can be set from 0 to 20 lines, and the default layout is unified or side by side. Both apply to newly opened diffs; the commit detail view additionally has an ignore-whitespace toggle.
Signing
| Setting | Meaning |
|---|---|
| Format | OpenPGP (GPG) or SSH |
| Key | user.signingkey, as a key id, fingerprint or key file path depending on the format |
| Sign commits | Turns commit.gpgsign on for the repository |
Signing configuration is stored in the repository’s Git config. The application does not keep a copy of the key, and it never reads the key material itself; Git performs the signature.
Forge providers
Host name to provider mapping. Use it when a GitHub, GitLab, Gitea or Bitbucket-compatible instance runs on a custom domain. Tokens are separate and live in the OS keychain.
AI
The AI section holds the agent profiles used by the ACP assistant:
- Profile list with name, command, arguments and model.
- Active profile selection.
- Environment variable names whose values are stored in the OS keychain.
- Commit message style: plain or Conventional Commits.
- The assistant toggle. Without a valid command the toggle is off.
Every request still shows its send scope before anything leaves the machine.
Advanced
MCP
| Setting | Meaning |
|---|---|
| Enable | Starts the loopback server |
| Port | 1024 to 65535; default 47123 |
| Status | Running, stopped or the last error |
| Endpoint | The loopback URL to give a client |
| Token | Copy or rotate the bearer token |
The server listens on 127.0.0.1 only and requires the token on every request. See MCP server.
About
Build information: version, commit and build date. The Help menu opens the documentation, the issue tracker and the data and log directories.
Where settings are stored
settings.json in the platform data directory:
- macOS:
~/Library/Application Support/Gitwright - Windows:
%AppData%\Gitwright - Linux:
~/.config/Gitwright
The file is written atomically and never contains tokens, agent environment values or the MCP bearer token. Those live in the OS keychain.
Next
- Shortcuts — the keyboard map.
- Diagnostics — logs, health check, support bundles.
- Troubleshooting — when a setting does not take effect.