Desktop settings
Every tab, row and action in the desktop app's Settings.
Command ,, or the footer gear opens Settings. The search box finds a row by label, description or setting key (showUsageIndicator) and jumps to its tab. Each tab in the sidebar shows how many settings it holds. Skills, MCP servers, Plugins, Extensions, Environments and Hosts show how many items they list instead. Accounts shows how many providers are signed in.
The TUI shares most settings. Appearance, layout and display stay per app (which are shared). The rows below are generated from the app's source.
Switch hosts#
Settings always opens on This computer. If you saved servers, the host menu at the top right of Settings lists This computer and each server, with its connection dot. To edit a server's settings, pick it in that menu. You stay on the same tab, and Settings hides the tabs that read this computer's files. You cannot pick a server that is not connected.
On a server, Skills, MCP servers, Plugins and Extensions list the server's, for the session's folder there, in the same rows as This computer's. A row shows only what the server can do:
- MCP servers have every action of This computer's, run on the server. Remove works on the server user's
mcps.jsononly. Add server to a project's file needs a recent server, and so do Shared, Restart and the process badge. - A skill shows no token sizes and does not open, because the server does not send its
SKILL.md. A skill that a plugin or an extension brings follows the switch of that plugin or extension. - Install, Delete, Update and Remove show when the server takes installs from this app (
allowRemoteInstalls), for its user's skills and extensions. Skills and extensions install from a GitHub or npm spec. - There is no Edit button and no Finder button, because the files are on the server.
On a server, Accounts, MCP servers and their tutorials name the server instead of this computer, for example "Keys and sign-ins saved on ipseity."
| Tab | What it holds |
|---|---|
| General | What it holdsSessions, updates, notifications and spaces. |
| Agent | What it holdsWhat new sessions start on, the helper models, approvals and limits. |
| Extensions | What it holdsProject and user extensions. Choose which ones can run. |
| Interface | What it holdsThe conversation, composer, sidebar, terminals, browser and git. |
| Accounts | What it holdsKeys and sign-ins, saved in ~/.zidane/credentials.json and shared with the CLI. |
| Advanced | What it holdsExperimental features and the agent loop internals. |
| Instructions | What it holdsWhat the session's agent reads, each part with its source. |
| Skills | What it holdsProject and user skills. Choose which ones the agent can use. |
| MCP servers | What it holdsServers from your mcps.json and the project's. Test one to check that it connects. |
| Plugins | What it holdsAgent Plugins and the skills and MCP servers they bring. |
| Environments | What it holdsWhere sessions run: this computer, a git worktree or a sandbox provider. |
| Appearance | What it holdsThemes, colors, fonts, size and motion on this computer. |
| Files & editor | What it holdsWhere files open and how the Files panel edits them. |
| Keybindings | What it holdsEvery shortcut. Change them in ~/.zidane/keybindings.json, then reload. |
| Hosts | What it holdsThis computer and your saved zidane-servers. |
| Logs | What it holdsExtension warnings, MCP diagnostics and host debug lines, live. |
| Performance | What it holdsLive CPU, memory and GPU per process. Samples only while open. |
Run setup again, at the bottom of the sidebar above the version, closes Settings and opens the setup wizard with your current values.
Instructions, Skills, MCP servers, Extensions, Environments, Files & editor, Accounts and Hosts open with a tutorial on how that part of zidane works. A small scene plays its three steps in turn, and a click on a step shows it. Some tutorials have a button, such as Edit your system prompt on Instructions.
General#
| Setting | Control | Default | Description |
|---|---|---|---|
| Start from last session | ControlSwitch | DefaultOn | DescriptionOpen the last session on launch instead of the sessions list. |
| Reminders | ControlSwitch | DefaultOff | DescriptionSend a prompt to a session at a set time, once or on a repeat. Extensions can schedule their own reminders. |
| Agent can set reminders | ControlSwitch | DefaultOn | DescriptionGive the agent a tool to schedule prompts to its own session, such as "check the CI in 20 minutes". Needs Reminders. |
| Crash recovery | ControlChoice: Ask before resuming, Resume, Off | DefaultAsk before resuming | DescriptionKeep a checkpoint of each run so it can continue after a crash. Applies to new runs. Unavailable on stores other than SQLite. |
| Check for updates | ControlSwitch | DefaultOn | DescriptionLook for new releases and show them in the footer. |
| Install updates automatically | ControlSwitch | DefaultOff | DescriptionInstall new releases in the background. Restart when you are ready. |
| Notifications | ControlSwitch | DefaultOff | DescriptionIf no Zidane window is focused, notify you when a run ends or needs you. |
| Notification sound | ControlSwitch | DefaultOn | DescriptionPlay the system sound with each notification. |
Spaces#
Use spaces turns spaces on. Your spaces lists them: add, rename, pick an icon, move up or down (the sidebar order), or delete.
Each space has its own Default agent, Default model and Effort and options. A value that a space does not set comes from Agent › Defaults. Default can be renamed, not deleted. Deleting another space moves its sessions to Default. What spaces are: sessions. The sidebar's space switcher picks the one on show.
Import › Import from Claude Code shows when a Claude Code setup (~/.claude) exists. Tick conversations (this project or all), MCP servers, skills, and commands and subagents. Your Claude Code setup is left unchanged (what each part becomes).
Agent#
| Setting | Control | Default | Description |
|---|---|---|---|
| Default agent | ControlAgent menu: The agents of the folder | DefaultBuild | DescriptionNew sessions start on it. |
| Default model | ControlModel picker: Signed-in models | DefaultLast used | DescriptionNew sessions start on it. |
| Effort and options | ControlEffort menu: The default model's effort levels and options, else those of every signed-in model | DefaultThe last ones used with each model | DescriptionNew sessions start with them, on whatever model they run. |
| Interaction mode | ControlChoice: Ask normally, Skip interactions, Disable tools | DefaultAsk normally | DescriptionHow the agent handles questions: ask you, answer from the repository, or turn questions off. |
| Text model | ControlModel picker: Signed-in models | DefaultAutomatic | DescriptionWrites session titles and suggestions. Automatic uses the session provider's smallest model. |
| Decisions | ControlSwitch | DefaultOff | DescriptionHooks and extensions ask a decision model for quick yes/no, choice and score answers. Your provider bills each call. |
| Decision model | ControlModel picker: OpenRouter and OpenAI platform models | DefaultFirst available | DescriptionAnswers decisions from hooks and extensions. Needs an OpenRouter key or an OpenAI platform key. |
| Auto-update session titles | ControlSwitch | DefaultOff | DescriptionTitle sessions after their first run and rename them when the topic changes. Keeps titles you typed. |
| Estimate time remaining | ControlSwitch | DefaultOff | DescriptionShow how long running sessions and subagents have left, from a quick decision when a run starts. Uses tokens. |
| Compaction model | ControlModel picker: Signed-in models | DefaultThe main model | DescriptionWrites the summaries. When to compact still follows the main model. |
| Allow subagents to use different models | ControlSwitch | DefaultOn | DescriptionLet the agent hand work to cheaper models. |
| Image generation | ControlSwitch | DefaultOn | DescriptionLet the agent generate images with your providers' image models. Pick the model in the model picker's Image tab. Each image is billed by the provider. |
| Tool approvals | ControlChoice: Ask, Model decision, Full access | DefaultAsk | DescriptionWho approves tool calls: you, the decision model, or nobody. Commands you safelisted always run. |
| Secrets | ControlSwitch | DefaultOff | DescriptionLet the agent ask you for an API key or a token. It is kept in a private file for this project, out of the chat, and hidden in tool output. |
| Sandbox shell commands | ControlSwitch | DefaultOff | DescriptionKeep the agent's commands and edits inside the project and hide credentials. |
| Sandbox network | ControlChoice: Allow, Deny | DefaultAllow | DescriptionAllow keeps installs and git working. Deny blocks every connection. |
| Load project extensions | ControlSwitch | DefaultOff | DescriptionRun the extensions of this project. They can run any code on your computer. |
| Import configurations from other agents | ControlSwitch | DefaultOff | DescriptionUse other agents' servers, skills, commands and subagents. Imported servers run commands from files zidane does not own. |
| Support Ruler configuration (.ruler) | ControlSwitch | DefaultOn | DescriptionRead .ruler folders. Their servers need "Import configurations from other agents". |
| Auto-compact | ControlSwitch | DefaultOn | DescriptionSummarize the conversation when the context passes the threshold below. |
| Auto-compact threshold | ControlChoice: 60%, 70%, 80%, 90% | Default80% | DescriptionHow full the context gets before zidane summarizes it. |
| User instructions | ControlChoice: Both, User only, Project only, None | DefaultBoth | DescriptionWhich AGENTS.md and CLAUDE.md files the agent reads. |
| Max turns per run | ControlChoice: Unlimited, 25, 50, 100, 200 | DefaultUnlimited | DescriptionStop a run after this many turns. |
| Max cost per run | ControlChoice: Unlimited, $1, $5, $10, $25 | DefaultUnlimited | DescriptionStop a run once its estimated cost passes this amount. |
| Max tokens per run | ControlChoice: Unlimited, 500K, 1M, 2M, 5M | DefaultUnlimited | DescriptionStop a run once it has used this many tokens. |
| Max run time | ControlChoice: Unlimited, 5 min, 15 min, 30 min, 60 min | DefaultUnlimited | DescriptionStop a run after this much time. |
| Max parallel subagents | ControlChoice: 1, 2, 3, 5, 10, Unlimited | Default3 | DescriptionHow many subagents a session runs at once. More wait for a free slot. |
| Agent can use your terminals | ControlSwitch | DefaultOn | DescriptionLet the agent read your terminals and type in them after you approve. |
| Agent's background tasks in terminals | ControlSwitch | DefaultOn | DescriptionGive each background command the agent starts its own terminal tab. |
| Agent can use the browser | ControlSwitch | DefaultOn | DescriptionLet the agent open, read, click and type in pages to check its work. |
| Web search | ControlSwitch | DefaultOn | DescriptionLet the agent search the web for docs, errors and recent changes. |
| Codemode | ControlSwitch | DefaultOn | DescriptionThe model batches tool calls in one short script that runs in a sandbox. |
Default agent, Default model and Effort and options show only for this computer. Effort and options applies to every new session, whatever its model. It lists the levels and options of the default model when one is set. Else it lists every option that a signed-in model offers.
Every model row (Default model, Text model, Compaction model, Decision model) has a Test button. It sends the model one tiny prompt, or one decision for the decision model, with the credentials of the host running the sessions, and shows the latency or the failure reason under the row. An unset row tests the model it falls back to.
Tool approvals picks Ask, Model decision or Full access (approvals). Approvals & safety › Safelisted commands lists the Always allow entries of each project. You can revoke each one (safelist).
Instructions#
Each part of the open session's system prompt, with its source file or setting and its size in tokens. A bar shows each part's share. Click a part to read it.
Create SYSTEM.md shows when no SYSTEM.md exists in a place where one can apply. A SYSTEM.md that lost to another gets a note. Edit your system prompt, in the tutorial at the top, opens the SYSTEM.md in use. If there is none, it creates one from the built-in prompt first.
Where the app looks: files and folders. Agent › Context & limits › User instructions picks which AGENTS.md and CLAUDE.md files count.
Skills#
Project and user skills, each with an on/off switch. Under the note, the recommended sources show as small chips. Open one, or type a source, then pick its skills (sources).
| Action | Does |
|---|---|
| Install N skills | Installs the picked skills into the project or into your user folder, one install per source |
| Edit | Opens a session on the skill's folder, to change it with the agent |
| Remove | Deletes the skill, after a confirmation |
| Scan for skills again (refresh icon) | Reads the skill folders again |
How skills work: skills.
MCP servers#
The servers in your mcps.json and the project's (when Settings edits a zidane server, that server's). While a server runs, a badge says how it runs. "shared" with a count is one process that that many sessions use. "per session" is one process for each session.
| Action | Does |
|---|---|
| Add server | Opens a form: name, transport (stdio, streamable-http or sse), command line or URL, env lines (stdio) or headers (HTTP and SSE), and the user or project config file. Advanced OAuth sets a pre-registered client: client ID, secret, callback port and scopes. A new server starts turned on. To change a server, add it again under the same name. |
| Remove | Deletes a server from the file that declared it, after Confirm remove |
| Sign in, Sign in again, Sign out | Starts or ends the OAuth sign-in of a server that needs one |
| Switch (Enable or Disable for this folder) | Turns a server on or off for the open project only |
| Expand tools | Lists the server's tools, each with its own switch |
| Shared (in the expanded row) | On: every session uses one process of the server. Off: each session starts its own, for a server that keeps per-user state (a browser it drives, an open document). Only for local stdio servers. Stored in the mcpSharing setting, which wins over "shared" in mcps.json. Sessions move to the new process when their next prompt runs. |
| Restart | Stops the server's running process. A call in progress fails, and the next call starts a fresh process. Sessions whose agent was built from an older config (an mcps.json you edited by hand) are rebuilt first, so the fresh process runs the current command. Shown while the server runs. |
| Test all | Connects to every server and shows which ones answer |
| Scan for MCP servers again (refresh icon) | Reads the config files again |
Config files, lookup order and OAuth: MCP.
Plugins#
The Agent Plugins found for the session's folder, with the skills and MCP servers each brings. The switch is a consent gate. When it is on, the plugin's skills reach the agent and its MCP servers start. A plugin that fails to load stays listed as broken.
Environments#
Where new sessions run: this computer, a git worktree, the OS sandbox, or a sandbox provider such as Docker, E2B or Daytona. Pick the Default and set each provider's options (execution contexts).
Extensions#
Project and user extensions, with the options they declare and a switch for each. Project extensions also need Agent › Approvals & safety › Load project extensions.
| Action | Does |
|---|---|
| Install | Opens the extension browser (below) |
| Create extension, Build an extension | Asks for a name and a scope (user or project), creates the extension's folder and opens a session on it. Saved edits reload the extension once the session's run finishes. Build an extension is the button in the tutorial at the top. |
| Update | Runs the recorded installer again (git pull or an npm reinstall) |
| Update menu | Right-click Update, or click the arrow next to it. Update from <source> names where the extension comes from. Change origin… installs it again from another source |
| Remove | Uninstalls it, after a confirmation |
An extension that fails to load has no switch. A red error chip sits next to its name. Point at the chip, or move focus to it, to read why it failed.
Add extensions#
Install opens a browser on the extensions that ship with zidane (Tahul/zidane). The built-in extensions are always listed, even when the repository cannot be read. Then a note says that you need access to install from it.
Type another source to list its extensions: owner/repo, a GitHub link, an npm package or a local folder. The browser reads each extension's package.json and runs no code. Pick one or more rows, choose User or This project, and click Install. This project shows the project trust hint. Each pick installs on its own, so one failure does not stop the others.
A private GitHub repository needs access. Run gh auth login and gh auth setup-git, or add an SSH key, then try again.
Change origin#
Change origin… opens with the current source filled in. Type a fork, a tag or an npm package. zidane installs the extension from the new source and keeps the old copy until the install works. The new source must hold an extension with the same name. If it does not, the dialog lists the names it found and nothing changes. After the change, Update follows the new source.
Each extension with settings has an entry under Extensions in the sidebar, titled with its display name and drawn with its icon. An extension without an icon shows the first letter of its name in a small square. An extension with a category gets a group of its own after Advanced instead (extension settings).
Writing and trusting extensions: extensions.
Interface#
| Setting | Control | Default | Description |
|---|---|---|---|
| Conversation preset | ControlPreview tabs: Focused, Balanced, Detailed | DefaultBalanced | DescriptionFocused, Balanced or Detailed, with a preview of each. |
| Transcript density | ControlChoice: Full, Compact | DefaultCompact | DescriptionFull shows every step. Compact folds each exchange's work into one row. |
| Row icons | ControlSwitch | DefaultOn | DescriptionShow an icon next to each message and step. |
| Thinking blocks | ControlSwitch | DefaultOn | DescriptionShow the agent's reasoning in the chat. |
| Expand thinking while it streams | ControlSwitch | DefaultOff | DescriptionKeep a thinking block open while the agent reasons. |
| Run receipt | ControlSwitch | DefaultOn | DescriptionShow agent, model, time, cost and tokens after each run. |
| Collapse subagents | ControlSwitch | DefaultOn | DescriptionStart subagent blocks collapsed. |
| Cache notices | ControlSwitch | DefaultOff | DescriptionAdd a row to the chat when the prompt cache expires or resets, or the provider drops earlier reasoning. |
| Todos badge | ControlSwitch | DefaultOn | DescriptionShow the agent's todo progress as a badge in the composer. |
| Artifacts | ControlSwitch | DefaultOn | DescriptionTrack each session's pull requests, branches, commits and files. |
| Keep scroll position | ControlSwitch | DefaultOn | DescriptionReopen each conversation where you left it. |
| Diagrams | ControlSwitch | DefaultOn | DescriptionDraw Mermaid code blocks in replies as diagrams in your theme's colors. Off shows their code. |
| Tool calls display | ControlChoice: Formatted, Full, Hidden | DefaultFormatted | DescriptionShow tool calls as a summary, their full input, or not at all. |
| Tool outputs | ControlSwitch | DefaultOn | DescriptionShow the output under each tool call. |
| Edit diffs | ControlSwitch | DefaultOn | DescriptionShow file edits as diffs. |
| Tool attachments | ControlSwitch | DefaultOn | DescriptionGather the images tool calls return under the Working block. |
| Group tool calls | ControlSwitch | DefaultOn | DescriptionFold each exchange's tool calls into one row. |
| Full shell output | ControlSwitch | DefaultOff | DescriptionShow every line of ! command output, not only the last 10. |
| Show codemode tool calls | ControlSwitch | DefaultOff | DescriptionList the calls each script makes under its row. Calls that start a subagent always show. |
| Stream progress | ControlSwitch | DefaultOff | DescriptionShow which line of a script runs, how many of its calls are done, and what it prints, while it runs. |
| Smooth streaming | ControlSwitch | DefaultOn | DescriptionReveal replies at a steady pace as they stream. |
| Throbber | ControlSwitch | DefaultOff | DescriptionAnimate an indicator while the agent works. |
| Messages during a run | ControlChoice | Defaultqueue | DescriptionWhat happens to a message that you send while the agent works. Alt+Enter sends one message the other way. |
| Paste attachments | ControlSwitch | DefaultOn | DescriptionTurn dropped images and long pastes into attachments. |
| Inline autocomplete | ControlSwitch | DefaultOn | DescriptionSuggest the rest of a path as you type. Tab accepts. |
| Suggest the next prompt | ControlSwitch | DefaultOff | DescriptionAfter a run, suggest a next message in the empty composer. Uses the text model. |
| Run details in the sidebar | ControlSwitch | DefaultOn | DescriptionShow each run's activity, time, commits and pull requests in the sidebar. |
| Check usage | ControlSwitch | DefaultOn | DescriptionFetch plan limits and credits from signed-in providers and GitHub. |
| Usage indicator | ControlSwitch | DefaultOn | DescriptionShow the plan usage gauge in the footer. |
| Terminals | ControlSwitch | DefaultOn | DescriptionShow terminals next to the chat. They run where the session runs. |
| Close terminals that exit cleanly | ControlSwitch | DefaultOn | DescriptionClose a terminal once its shell exits cleanly. Failed ones stay open. |
| Browser tab | ControlSwitch | DefaultOn | DescriptionShow a browser in the side panel to preview your app. |
| Show the browser when the agent uses it | ControlSwitch | DefaultOn | DescriptionOpen the Browser tab when the agent starts using it. |
| Ask before syncing | ControlSwitch | DefaultOn | DescriptionConfirm before the git bar pulls, pushes or publishes your branch. |
Conversation starts with a sample conversation and four tabs: Your settings, Focused, Balanced and Detailed. A tab only previews. Use Balanced, for example, sets every transcript setting of that preset. The rows below change one setting at a time, and the Your settings tab follows them. The command palette has the same presets, under Conversation preset.
Diagrams, under Conversation, draws Mermaid code blocks in replies as diagrams in your theme's colors (diagrams). Turn it off to see their code.
Try the conversation rows live: transcript.
Clear site data for this project, under Terminal & browser, removes the dev browser's cookies and storage for the project. Terminals run only in the daemon. So that section also shows the daemon's connection, or a link to Advanced › Experimental › Shared daemon runtime while the daemon is off.
Appearance#
Mode, themes, accent, app icon, fonts, sizes and motion: appearance and themes.
Files & editor#
How the Files panel opens and edits files.
| Setting | Control | Default | Description |
|---|---|---|---|
| Open files and diffs in | ControlSegmented: $EDITOR, Panels | DefaultPanels | DescriptionWhere a clicked file, folder or diff goes. ⌘-click flips it. |
| File tree side | ControlSegmented: Left, Right | DefaultLeft | DescriptionWhere the Files panel keeps its tree. |
| Edit files in the panel | ControlSwitch | DefaultOn | DescriptionType in the viewer. ⌘S saves. Zidane never overwrites a file the agent changed after you opened it. |
| Save | ControlSegmented: ⌘S, On focus loss | Default⌘S | DescriptionWhen Zidane writes your edits to disk. |
| Tab size | ControlSegmented: 2, 4 | Default2 | DescriptionSpaces per indent level in the panel editor. |
| Wrap long lines | ControlSwitch | DefaultOff | DescriptionWrap lines wider than the editor instead of scrolling sideways. |
| Match brackets | ControlSwitch | DefaultOn | DescriptionHighlight the bracket pair around the caret. |
| Rounded selection | ControlSwitch | DefaultOn | DescriptionDraw text selections with rounded corners. |
| Auto-surround | ControlSegmented: Both, Quotes, Brackets, Off | DefaultBoth | DescriptionTyping a quote or bracket over a selection wraps it. |
| Check files with the project's tools | ControlSegmented: Off, Project tools, + Language servers | DefaultProject tools | DescriptionRuns the tools the folder uses (tsc, ESLint, Biome, Ruff, cargo check, go vet). Findings show as squiggles and under the line. |
| Run | ControlSegmented: On open, On save | DefaultOn open | DescriptionOn open checks again each time the file changes on disk. On save checks only after you save. |
| Timeout | ControlSlider: 5 s to 300 s | Default60 s | DescriptionPer tool, per run. Whole-project checks (tsc, cargo) are slow on big repos. |
| Hovers | ControlSwitch | DefaultOn | DescriptionShow types and docs when the pointer rests on a symbol. |
| Completion | ControlSwitch | DefaultOn | DescriptionSuggest names while you type. Ctrl+Space asks anywhere. |
| Stop when idle | ControlSlider: 1 min to 60 min | Default5 min | DescriptionZidane stops a server with no open file after this long. It starts again on the next file. |
Under Diagnostics, you turn each project tool off on its own. The Language servers section (with Check files with the project's tools set to + Language servers) lets you change each server's command.
Keybindings#
Every shortcut, grouped as on the keyboard map. The tab is read-only. Edit in file opens keybindings.json, and Reload applies it without a restart (rebind a key).
Accounts#
Your provider keys and sign-ins, shared with the CLI and the TUI. When Settings edits a server, this page shows the server's keys and sign-ins. They stay on the server.
| Action | Does |
|---|---|
| Set key, Replace key, Clear | Saves, changes or removes a provider's API key |
| Sign in with provider | Signs in with an account: Sign in with Claude, ChatGPT, xAI or Cursor. Sign in with Google (Google Vertex AI) shows only when a Google OAuth client is set (ZIDANE_GOOGLE_CLIENT_ID). |
| Add account | Adds another account to a provider you already signed in to. You name the account first. |
| Configure, Edit config | Sets the fields of a provider that needs more than a key: the project and location of Google Vertex AI, or the base URL, key and default model of a local server |
| Remove (on a credential) | Deletes one key or account, after a confirmation |
A provider with several credentials (a key and an account) lists each one and marks the one in use. Click another to switch. A key from an environment variable shows for context only. Sign-in methods: providers. Where credentials are saved: files and folders.
Hosts#
With Settings › Advanced › Experimental › Remote hosts on, this page lists this computer and your saved servers. Add, test, rename or remove one, and set up its machines and settings sync (hosts, server and sync).
The tutorial at the top explains zidane-server. It runs zidane on another machine with no window, such as a VPS. The tutorial has the command that starts it, zidane server start, with a copy button (install the server).
Advanced#
| Setting | Control | Default | Description |
|---|---|---|---|
| Shared daemon runtime | ControlSwitch | DefaultOff | DescriptionRuns keep going when windows close and show in every window. |
| Remote hosts | ControlSwitch | DefaultOff | DescriptionRun sessions on other machines through zidane-server. |
| Main session | ControlSwitch | DefaultOff | DescriptionPin a session that starts, steers and reads your other sessions. |
| Project home | ControlSwitch | DefaultOff | DescriptionClick a project in the sidebar to open its home: a new chat with the project's recent sessions, usage and blocks from extensions. |
| Persist large tool results | ControlSwitch | DefaultOn | DescriptionSave tool outputs over 8 KB to disk and keep a preview in the chat. |
| Stable tool list (call_tool) | ControlSwitch | DefaultOn | DescriptionUse found MCP tools through call_tool so the prompt cache stays valid. Off adds them to the tool list instead. |
| Freeze session prompt | ControlSwitch | DefaultOn | DescriptionKeep each session's system prompt as its first run saw it and tell the model about later changes. /refresh re-reads it. |
| Compact before the cache expires | ControlSwitch | DefaultOff | DescriptionExperimental. When a long session sits idle, compact it a minute before its prompt cache runs out, so your next message reads a short summary instead of re-reading the whole conversation. |
| Short MCP tool list | ControlSwitch | DefaultOff | DescriptionExperimental. List MCP tools by name only in the prompt; the model looks up a tool before using it. Saves tokens when many tools are connected. |
| Preserved thinking (Anthropic only) | ControlChoice: Drop silently, Fail the run, Account default | DefaultDrop silently | DescriptionWhat to do with reasoning that no longer matches the conversation. |
| Max output tokens | ControlChoice: Model max, 8K, 16K, 32K, 64K | DefaultModel max | DescriptionThe most the model may write per turn. |
| Auto-resume on output limit | ControlSwitch | DefaultOff | DescriptionKeep going when an answer hits the model's output limit. |
| Provider retry attempts | ControlChoice: Default (3), 1 (no retry), 2, 3, 5, 8 | DefaultDefault (3) | DescriptionHow many times to retry a failed or stalled provider call. |
Logs#
Live extension warnings, MCP diagnostics and host debug lines. The filter box narrows them. Follow new lines keeps the view at the latest line.
Performance#
Live figures, every 2 seconds. Sampling runs only while this page or the overlay is open.
The six tiles at the top are Zidane's own CPU, memory, GPU (the whole GPU on macOS, all apps), main-thread load, main-thread lag and the monitor's own cost. A + badge on CPU and memory is what your sessions and terminals launched.
Each list below folds away, and its header sums it up:
- Processes (open): a tree that opens one level at a time. A closed row shows how many processes it holds and what they use together. Its columns still show its own figures. Zidane holds the app, the daemon, MCP servers, language servers and helpers. Launched holds what an agent's commands, a background task or a terminal started, such as a dev server or a benchmark. A row's tooltip has its pid and command line. An MCP server's process has a badge: shared with the number of sessions that use it, or per session. Its tooltip names the server. The list button on a row shows its operating-system threads (macOS doesn't name them). CPU is percent of one core.
- Sessions: each session running something (its commands, terminals and own MCP servers), with what they use together. Open one to see its processes.
- Threads: the main process's event loop, its worker threads, each window and its workers.
- Slow frames: the scripts that ran in frames over 50 ms. "(rendering)" is style, layout and paint.
- IPC: calls, total time, p95 and worst case per channel.
- CPU profile: records the main process or this window, then lists the functions that took the most time. The
.cpuprofilefile opens in Chrome DevTools › Performance.
The IPC and slow-frame counters are always on and cost nothing while the app is idle. Reset counters starts them again. Export report writes a JSON summary with findings to ~/Library/Application Support/Zidane/perf/. An agent can do the same through the dev browser or CDP: await window.__zidanePerf.report(), and await window.__zidanePerf.profile('main', 5) for a profile.
The command palette's Performance overlay shows CPU, memory, main-thread load and lag, and the busiest process, in a corner of the window.
On a server
Pick a server in the Settings host switcher and Performance shows that server's own figures: the server process and what it runs (its MCP servers, language servers and helpers under Zidane, what its sessions started under Launched), its sessions, its event loop under Threads, and its GPU when it runs on macOS. The server samples only while the page is open. There are no slow frames, IPC counters, report or CPU profile there: those belong to this app's windows.
It needs an admin token for that server. With a chat token the page shows greyed out, with an Admin only tooltip. A server too old to report it says Not available on this host.
Reference#
zidane/chatsettings: theSettingstype andDEFAULT_SETTINGS.Formrows: the kit rows these tabs are built from.

























