System
Settings → System covers the app itself: updates, launch at login, network proxy, language, data and sync, plus the context index.
Subtitle: "Manage app updates, launch at login, network proxy and language preferences."
Software updates
Shows the current version, plus one button that renames itself as the lifecycle moves along:
| Button text | When |
|---|---|
| Check for updates | Idle, no idea yet whether there is a newer release |
| Checking... | Looking (disabled) |
| Upgrade to v{x} | A newer release exists and can be installed in place (desktop, or a server that supports the live-progress protocol) |
| View v{x} release | A newer release exists but cannot be installed in place; opens the GitHub Releases page |
| Installing... | Installing (disabled) |
| Restart to update | Download finished, waiting on you to restart |
It shares one set of update state with the workspace status bar, so opening this page usually does not trigger a second check — unless nothing ever checked, or the last check failed.
Progress and status lines: last check time, "You're on the latest version", download progress (with a byte count and a progress bar), "Update downloaded — restart to apply.", "Restarting in {n}s...", "Waiting for the server to come back...". When a newer release exists it also expands the version number, release date and release notes.
Docker deployments get one extra warning:
This upgrades the running container now. It's lost if the container is recreated — to keep it, pull or build an image at the new version and recreate.
Errors
A failure shows "Update error: {message}", classified by type: release source unreachable, network problem, download failed, install failed, permission denied (with the path), target write failed, unknown.
Send Feedback
A link button that opens a prefilled GitHub Issue — the body automatically carries your version and platform. The reason this row exists is practical: the native Help menu only ships in the macOS release build.
Launch at login (local desktop only)
Only appears in the Tauri desktop shell and only when no remote workspace is connected — not in a browser, and not in a desktop window pointed at a remote server.
One switch, off by default: "Opens automatically after you sign in to this computer."
The switch follows what the operating system reports, not the optimistic value of your click — Windows may refuse to write the registry run entry. When the state cannot be read the row stays, but goes inert, with "Could not read the startup entry on this computer: {message}".
Network proxy
When enabled, subsequent network requests prefer this proxy (including ACP chat, agent installation and Git remote operations).
-
Enable system proxy — checkbox, off by default. Refuses to turn on while the address is empty: "Proxy URL is required when proxy is enabled". Ticking it saves.
-
Proxy address — supports
http(s)andsocks5, examplehttp://127.0.0.1:7890. Saves on blur. -
Bypass proxy for — saves on blur. The rules:
Separate entries with commas (
,) and no spaces.example.commatches that domain,.example.commatches all of its subdomains, and IP addresses work too. Local addresseslocalhost,127.0.0.1,::1always connect directly and do not need to be listed. The list is handed to child processes as theNO_PROXYenvironment variable.
This section saves automatically; there is no save button. A failed load hangs "Load failed: {message}" above it.
Built-in browser tabs use this proxy too, but that screen can only look, not change, and has platform limits (macOS 14+, http/socks5 only).
Language
Set app language. When following system locale, unsupported languages fall back to English.
One dropdown, 11 options: Follow System, plus English, Simplified Chinese, Traditional Chinese, Japanese, Korean, Spanish, German, French, Portuguese and Arabic.
Takes effect immediately, no restart.
Data and sync
One card, three tabs. The subtitle spells out the division of labour:
Configuration sync carries your settings between machines; backup packs up all of this machine's Croli data.
All three tabs load together when the page opens; it starts on Configuration sync.
Configuration sync
What gets synced expands into two columns:
| Included | Not included |
|---|---|
| Model providers (with API keys) | Conversations and history |
| Agent settings | Uploaded files and images |
| Custom agents | Workspace projects and paths |
| Quick messages | MCP servers (owned by each CLI) |
| Task templates | Login credentials and tokens |
| App preferences (language, appearance, toggles) |
The Configuration file section has two buttons: Export to file / Import from file. The export is a single JSON file you can copy to another machine. An import adds or updates entry by entry — local entries the file does not mention are kept, not wiped.
Undo an import is a popover: before every import and every restore, Croli first saves what this machine's configuration looked like at the time, and the last ten are kept. Each snapshot has an Undo button next to it.
Backup
Packs this machine's Croli data — the database and uploaded files — into one archive.
- Include conversation content — switch. Also archives the agent CLI transcripts (Claude, Codex, Gemini and so on), which makes it much larger.
- Passphrase (optional) — leave it empty and the archive is unencrypted; fill it in and you confirm it a second time, with an error if the two do not match.
- Two warnings, depending on the case: unencrypted gets "This backup will contain secrets (API keys, tokens) in plaintext. Store it somewhere safe."; encrypted gets "Encrypted with this passphrase. If you lose it, the backup cannot be recovered."
- Export backup has cancellable progress. When SQLite is not in good shape, a degradation report is attached.
Restore
Replaces this machine's Croli data with the contents of a backup archive.
Select backup file → an encrypted archive asks for the passphrase and an Unlock click → a preview appears (encrypted or not, compatible or not, creation time, app version).
Conversation content is a dropdown: Don't restore / Restore to a safe side folder / Restore to original CLI locations. The latter two scan for conflicts and offer an Overwrite existing files switch.
Two warnings:
- Restoring replaces all current Croli data (database and uploads). Your current data is snapshotted first so it can be recovered.
- (Desktop) GitHub/chat tokens live in your OS keychain and are not included in the backup; re-enter them after restoring.
The Restore button has a confirmation dialog, and a restart prompt once it is done. When a restore is already staged, a new one is blocked and Discard staged restore appears.
At the bottom of the panel are the Pre-restore snapshots: one is taken automatically before every restore, the two newest are kept, and each has a Roll back to this button with a confirmation dialog.
When a remote workspace is connected, both the Backup and Restore tabs are replaced by one notice: backup and restore act on the data of the machine running Croli, and you are connected to a remote workspace — manage its backups from that server directly.
Context
At the very bottom of the page sits a Context section with a single switch: Context Index — "Improve the quality and speed of information retrieval for agents."
Worth knowing
- Almost every setting on this screen lives on the backend, shared by every client of the same backend. Per-device local preferences are concentrated in Appearance and General.
- The proxy's Bypass proxy for list ends up as
NO_PROXYfor every child process (agent CLIs, git and so on), and loopback addresses are always prepended automatically. - The network proxy section saves automatically — there is no save button.