IS_DEV). The Subscription tab is admin-only, except when the team’s subscription is trialing, canceled, past_due, or absent — then non-admins can open it too.
Account
| Setting | Default | What it does |
|---|---|---|
| Full Name | Current user name | Display name on your account. Trimmed; 255 characters or fewer. |
| — | Read-only. Shown for reference. | |
| Profile picture | — | Upload an image (crop dialog) or remove the existing one. |
| Beta updates | Off (latest channel) | Switches the auto-updater to the beta channel. Confirmation dialogs appear when enabling and when disabling while running a beta build. |
| Usage analytics | On (analyticsOptOut = false) | Shares anonymous usage data and crash reports. Activity stats cloud-sync is separate and stays on when this is off. |
| Sign Out | — | Calls desktopApi.logout() on this device. |
Beta badge when applicable) and the bundled Claude Code version under the profile card.
The Anthropic API key field used to live on this tab. It moved to AI & Model (see below) — agents-profile-tab.tsx keeps a marker comment where the section used to render.
Appearance
| Setting | Default | What it does |
|---|---|---|
| Interface theme | System preference (selectedFullThemeId = null) | Pick a VS Code theme to apply to the whole UI, or follow system light/dark. |
| Light | purple-light | Theme used when the system is in light mode. Only visible when Interface theme is System preference. |
| Dark | purple-minimal | Theme used when the system is in dark mode. Only visible when Interface theme is System preference. |
BUILTIN_THEMES and apply by injecting CSS variables generated from the theme’s color map.
Notifications
| Setting | Default | What it does |
|---|---|---|
| Desktop notifications | On | Show native notifications when an agent needs your attention or completes a task. |
| Notification sound | System default | Sound to play with desktop notifications. The picker lists sounds returned by desktopApi.listNotificationSounds(); non-default sounds get a preview button. |
| Sound notifications | On | Play a sound when an agent completes work in a background session. |
Integrations
Two cards: Linear and Jira Cloud. Linear connects via a personal API key (must start withlin_api_). Once connected, two write-back settings appear:
| Setting | Default | What it does |
|---|---|---|
| Update ticket on build completion | On (linearWriteBackEnabled = true) | Post a summary comment and update the Linear ticket status when a build finishes. |
| Target status | First available state type | Workflow state type to move the ticket to. Options come from Linear’s workflow states for the first team; falls back to completed / started / canceled. |
yourcompany.atlassian.net), email, and an API token from id.atlassian.com/manage-profile/security/api-tokens. No write-back settings.
Git Provider
| Setting | Default | What it does |
|---|---|---|
| Provider | github (seeded by the DB on first run) | Pick GitHub or GitLab. Determines which CLI and authentication is used for browsing repos, opening PRs/MRs, and so on. |
| Hostname | Blank (uses github.com / gitlab.com) | Optional self-hosted hostname. Toggle Using a self-hosted instance? to reveal the input. |
src/main/lib/db/index.ts, which inserts a gitProvider = 'github' row in user_settings if none exists.
AI & Model
Three sections in one tab: provider, authentication, model. Provider. Two options: Claude Code (Anthropic) and Codex (OpenAI, markedPreview). Changing the provider only affects new sessions; active sessions keep theirs.
Authentication is per-provider with two modes:
| Mode | What it does |
|---|---|
| Subscription | Sign in via the provider’s CLI (claude login or codex login). The tab shows the current subscription status and warns if the CLI is missing. |
| API key (pay per use) | Paste a key (sk-ant-… for Claude, sk-… for Codex). Saving a Claude key overrides an active subscription; usage is billed to the provider’s API account. |
CLAUDE_MODELS and CODEX_MODELS in features/agents/constants/models.ts.
Claude default: opus-4-7-1m (“Opus 4.7 (1M context)”). Other Claude options: Opus 4.7, Opus 4.6 (1M context), Opus 4.6, Sonnet.
Codex default: gpt-5.4 (“GPT-5.4”). Other Codex options: GPT-5.4 Mini, GPT-5.3 Codex, GPT-5.3 Codex Spark, GPT-5.2.
Team Members
RendersTeamMembersPage from features/team-members. Controls on the page:
- Team Name — inline edit (admin only). Max 255 characters, saved via
teamMembers.updateName. - Member filters — search by name or email, role filter (all / admin / member), sortable by name, email, role, or join date. Paginated 25 per page.
- Member rows — per-member actions: change role (admin only), remove member (admin only, opens confirmation dialog).
- Invite teammate — opens the Invite modal for email invites (admin only).
- Pending Invitations — separate list of outstanding invites (admin only).
Subscription
RendersSubscriptionSettingsTab from features/billing. Admin-only except for trialing, canceled, past_due, or unset subscription states. Controls:
- Plan info card — shows the current plan name (Pro, Individual, Team, Enterprise) and a status badge (Trial / Active / Past Due / Paused / Canceled / Seats Exceeded). Trial end date appears when applicable. A plan-specific subtitle sits underneath (for example, “1 session every 5 hours” for Pro).
- Team name and seat count — for team / enterprise plans.
- Manage Subscription — admin only. Opens the Stripe billing portal (
billing.createPortalSession) in your default browser. - Plan picker dialog — opens for pro / individual / trialing plans so you can switch plans without leaving the app.
Plugins
Browse and install workspace plugins via thePluginBrowser component; clicking a plugin opens the PluginDetailDialog. Scoped to the currently selected workspace. No table of toggles — this tab is a browser, not a preferences panel.
Skills
Manages Claude Code skills via theSkillManager component. Scoped to the current workspace. No table of toggles.
Code Review
| Setting | Default | What it does |
|---|---|---|
| Open files in external editor | Off | When on, clicking a changed file opens it in your external editor instead of the built-in diff viewer. |
Storage
No preferences — this is a worktree-management view. It shows total disk used. Worktrees are grouped into three sections.- Active Sessions.
- Archived Sessions.
- Orphaned Worktrees.
MCP Servers
RendersMcpManagerTab from features/mcp-manager: a header, status tiles, an installed-servers section, an Add custom callout, and a browse section. Each installed server row shows status (Connected / Failed / Needs auth / Connecting / Installed), name, description, version, and tool count. Per-row actions vary by state:
- View tools / Hide tools — expand the row to list every tool the server exposes.
- Fix — appears on Failed or Needs auth rows; opens the edit dialog so you can repair config or sign in.
- Edit — only for custom servers. Opens the same edit dialog.
- Remove — for non-protected servers; deletes the row.
- Protected rows (e.g.
purple-status,playwright) show a shield icon and cannot be removed.
Remote Control
Off by default (syncEnabled = false). The enrollment card explains what gets synced and offers a single Turn on Remote Control button. Once enabled:
| Setting | Default | What it does |
|---|---|---|
| Pairing QR / URL | — | QR code and copyable URL pointing at ${webUrl}/app/remote. Scan it from your phone to pair. |
| Device name | Current device label | Visible on your phone. Max 255 characters. Saved on blur. |
| Remote Control | On (once enrolled) | Master switch. Turning off stops snapshot pushes and command polling immediately. |
| Status | — | Live readout: connection state, last heartbeat (Xs/Xm/Xh ago), and sessions-synced count. Polled every 5 s. |
Debug
Dev-only tab (IS_DEV). Sections:
- System Info — version, platform/arch, dev mode flag, protocol-handler registration status,
userDatapath (copyable). - Database — row counts for projects, chats, sub-chats.
- Developer Tools — React Scan toggle (loads
react-scanfrom a CDN, persisted inlocalStorage). - Quick Actions — Open userData, DevTools, Reload, Copy Info.
- Toast Testing — buttons that fire each toast variant.
debug.clearChats, debug.clearAllData, debug.logout) are wired up but not enumerated here — see agents-debug-tab.tsx.