Skip to content

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.json only. 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."

Settings tabs
TabWhat it holds
GeneralSessions, updates, notifications and spaces.
AgentWhat new sessions start on, the helper models, approvals and limits.
ExtensionsProject and user extensions. Choose which ones can run.
InterfaceThe conversation, composer, sidebar, terminals, browser and git.
AccountsKeys and sign-ins, saved in ~/.zidane/credentials.json and shared with the CLI.
AdvancedExperimental features and the agent loop internals.
InstructionsWhat the session's agent reads, each part with its source.
SkillsProject and user skills. Choose which ones the agent can use.
MCP serversServers from your mcps.json and the project's. Test one to check that it connects.
PluginsAgent Plugins and the skills and MCP servers they bring.
EnvironmentsWhere sessions run: this computer, a git worktree or a sandbox provider.
AppearanceThemes, colors, fonts, size and motion on this computer.
Files & editorWhere files open and how the Files panel edits them.
KeybindingsEvery shortcut. Change them in ~/.zidane/keybindings.json, then reload.
HostsThis computer and your saved zidane-servers.
LogsExtension warnings, MCP diagnostics and host debug lines, live.
PerformanceLive 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#

Settings, General
SettingControlDefaultDescription
Start from last sessionSessionsSwitchOnOpen the last session on launch instead of the sessions list.
RemindersSessionsSwitchOffSend a prompt to a session at a set time, once or on a repeat. Extensions can schedule their own reminders.
Agent can set remindersSessionsSwitchOnGive the agent a tool to schedule prompts to its own session, such as "check the CI in 20 minutes". Needs Reminders.
Crash recoverySessionsChoice: Ask before resuming, Resume, OffAsk before resumingKeep a checkpoint of each run so it can continue after a crash. Applies to new runs. Unavailable on stores other than SQLite.
Check for updatesUpdatesSwitchOnLook for new releases and show them in the footer.
Install updates automaticallyUpdatesSwitchOffInstall new releases in the background. Restart when you are ready.
NotificationsNotificationsSwitchOffIf no Zidane window is focused, notify you when a run ends or needs you.
Notification soundNotificationsSwitchOnPlay 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).

Settings, General.

Agent#

Settings, Agent
SettingControlDefaultDescription
Default agentDefaultsAgent menu: The agents of the folderBuildNew sessions start on it.
Default modelDefaultsModel picker: Signed-in modelsLast usedNew sessions start on it.
Effort and optionsDefaultsEffort menu: The default model's effort levels and options, else those of every signed-in modelThe last ones used with each modelNew sessions start with them, on whatever model they run.
Interaction modeDefaultsChoice: Ask normally, Skip interactions, Disable toolsAsk normallyHow the agent handles questions: ask you, answer from the repository, or turn questions off.
Text modelHelper modelsModel picker: Signed-in modelsAutomaticWrites session titles and suggestions. Automatic uses the session provider's smallest model.
DecisionsHelper modelsSwitchOffHooks and extensions ask a decision model for quick yes/no, choice and score answers. Your provider bills each call.
Decision modelHelper modelsModel picker: OpenRouter and OpenAI platform modelsFirst availableAnswers decisions from hooks and extensions. Needs an OpenRouter key or an OpenAI platform key.
Auto-update session titlesHelper modelsSwitchOffTitle sessions after their first run and rename them when the topic changes. Keeps titles you typed.
Estimate time remainingHelper modelsSwitchOffShow how long running sessions and subagents have left, from a quick decision when a run starts. Uses tokens.
Compaction modelHelper modelsModel picker: Signed-in modelsThe main modelWrites the summaries. When to compact still follows the main model.
Allow subagents to use different modelsHelper modelsSwitchOnLet the agent hand work to cheaper models.
Image generationHelper modelsSwitchOnLet 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 approvalsApprovals & safetyChoice: Ask, Model decision, Full accessAskWho approves tool calls: you, the decision model, or nobody. Commands you safelisted always run.
SecretsApprovals & safetySwitchOffLet 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 commandsApprovals & safetySwitchOffKeep the agent's commands and edits inside the project and hide credentials.
Sandbox networkApprovals & safetyChoice: Allow, DenyAllowAllow keeps installs and git working. Deny blocks every connection.
Load project extensionsApprovals & safetySwitchOffRun the extensions of this project. They can run any code on your computer.
Import configurations from other agentsApprovals & safetySwitchOffUse other agents' servers, skills, commands and subagents. Imported servers run commands from files zidane does not own.
Support Ruler configuration (.ruler)Approvals & safetySwitchOnRead .ruler folders. Their servers need "Import configurations from other agents".
Auto-compactContext & limitsSwitchOnSummarize the conversation when the context passes the threshold below.
Auto-compact thresholdContext & limitsChoice: 60%, 70%, 80%, 90%80%How full the context gets before zidane summarizes it.
User instructionsContext & limitsChoice: Both, User only, Project only, NoneBothWhich AGENTS.md and CLAUDE.md files the agent reads.
Max turns per runContext & limitsChoice: Unlimited, 25, 50, 100, 200UnlimitedStop a run after this many turns.
Max cost per runContext & limitsChoice: Unlimited, $1, $5, $10, $25UnlimitedStop a run once its estimated cost passes this amount.
Max tokens per runContext & limitsChoice: Unlimited, 500K, 1M, 2M, 5MUnlimitedStop a run once it has used this many tokens.
Max run timeContext & limitsChoice: Unlimited, 5 min, 15 min, 30 min, 60 minUnlimitedStop a run after this much time.
Max parallel subagentsContext & limitsChoice: 1, 2, 3, 5, 10, Unlimited3How many subagents a session runs at once. More wait for a free slot.
Agent can use your terminalsAgent toolsSwitchOnLet the agent read your terminals and type in them after you approve.
Agent's background tasks in terminalsAgent toolsSwitchOnGive each background command the agent starts its own terminal tab.
Agent can use the browserAgent toolsSwitchOnLet the agent open, read, click and type in pages to check its work.
Web searchAgent toolsSwitchOnLet the agent search the web for docs, errors and recent changes.
CodemodeAgent toolsSwitchOnThe 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).

Settings, Agent.

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.

Settings, Instructions: the parts of the system prompt with their sources and sizes.

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).

ActionDoes
Install N skillsInstalls the picked skills into the project or into your user folder, one install per source
EditOpens a session on the skill's folder, to change it with the agent
RemoveDeletes the skill, after a confirmation
Scan for skills again (refresh icon)Reads the skill folders again

How skills work: skills.

Settings, 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.

ActionDoes
Add serverOpens 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.
RemoveDeletes a server from the file that declared it, after Confirm remove
Sign in, Sign in again, Sign outStarts 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 toolsLists 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.
RestartStops 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 allConnects 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.

Settings, MCP servers with no servers configured.

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.

Settings, Plugins.

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).

Settings, Environments.

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.

ActionDoes
InstallOpens the extension browser (below)
Create extension, Build an extensionAsks 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.
UpdateRuns the recorded installer again (git pull or an npm reinstall)
Update menuRight-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
RemoveUninstalls 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.

Settings, Extensions.

Interface#

Settings, Interface
SettingControlDefaultDescription
Conversation presetConversationPreview tabs: Focused, Balanced, DetailedBalancedFocused, Balanced or Detailed, with a preview of each.
Transcript densityConversationChoice: Full, CompactCompactFull shows every step. Compact folds each exchange's work into one row.
Row iconsConversationSwitchOnShow an icon next to each message and step.
Thinking blocksConversationSwitchOnShow the agent's reasoning in the chat.
Expand thinking while it streamsConversationSwitchOffKeep a thinking block open while the agent reasons.
Run receiptConversationSwitchOnShow agent, model, time, cost and tokens after each run.
Collapse subagentsConversationSwitchOnStart subagent blocks collapsed.
Cache noticesConversationSwitchOffAdd a row to the chat when the prompt cache expires or resets, or the provider drops earlier reasoning.
Todos badgeConversationSwitchOnShow the agent's todo progress as a badge in the composer.
ArtifactsConversationSwitchOnTrack each session's pull requests, branches, commits and files.
Keep scroll positionConversationSwitchOnReopen each conversation where you left it.
DiagramsConversationSwitchOnDraw Mermaid code blocks in replies as diagrams in your theme's colors. Off shows their code.
Tool calls displayTool activityChoice: Formatted, Full, HiddenFormattedShow tool calls as a summary, their full input, or not at all.
Tool outputsTool activitySwitchOnShow the output under each tool call.
Edit diffsTool activitySwitchOnShow file edits as diffs.
Tool attachmentsTool activitySwitchOnGather the images tool calls return under the Working block.
Group tool callsTool activitySwitchOnFold each exchange's tool calls into one row.
Full shell outputTool activitySwitchOffShow every line of ! command output, not only the last 10.
Show codemode tool callsTool activitySwitchOffList the calls each script makes under its row. Calls that start a subagent always show.
Stream progressTool activitySwitchOffShow which line of a script runs, how many of its calls are done, and what it prints, while it runs.
Smooth streamingStreamingSwitchOnReveal replies at a steady pace as they stream.
ThrobberStreamingSwitchOffAnimate an indicator while the agent works.
Messages during a runComposerChoicequeueWhat happens to a message that you send while the agent works. Alt+Enter sends one message the other way.
Paste attachmentsComposerSwitchOnTurn dropped images and long pastes into attachments.
Inline autocompleteComposerSwitchOnSuggest the rest of a path as you type. Tab accepts.
Suggest the next promptComposerSwitchOffAfter a run, suggest a next message in the empty composer. Uses the text model.
Run details in the sidebarSidebar & usageSwitchOnShow each run's activity, time, commits and pull requests in the sidebar.
Check usageSidebar & usageSwitchOnFetch plan limits and credits from signed-in providers and GitHub.
Usage indicatorSidebar & usageSwitchOnShow the plan usage gauge in the footer.
TerminalsTerminal & browserSwitchOnShow terminals next to the chat. They run where the session runs.
Close terminals that exit cleanlyTerminal & browserSwitchOnClose a terminal once its shell exits cleanly. Failed ones stay open.
Browser tabTerminal & browserSwitchOnShow a browser in the side panel to preview your app.
Show the browser when the agent uses itTerminal & browserSwitchOnOpen the Browser tab when the agent starts using it.
Ask before syncingGitSwitchOnConfirm 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.

Settings, Interface.

Appearance#

Mode, themes, accent, app icon, fonts, sizes and motion: appearance and themes.

Files & editor#

How the Files panel opens and edits files.

Settings, Files & editor
SettingControlDefaultDescription
Open files and diffs inOpeningSegmented: $EDITOR, PanelsPanelsWhere a clicked file, folder or diff goes. ⌘-click flips it.
File tree sideOpeningSegmented: Left, RightLeftWhere the Files panel keeps its tree.
Edit files in the panelEditingSwitchOnType in the viewer. ⌘S saves. Zidane never overwrites a file the agent changed after you opened it.
SaveEditingSegmented: ⌘S, On focus loss⌘SWhen Zidane writes your edits to disk.
Tab sizeEditingSegmented: 2, 42Spaces per indent level in the panel editor.
Wrap long linesEditingSwitchOffWrap lines wider than the editor instead of scrolling sideways.
Match bracketsEditingSwitchOnHighlight the bracket pair around the caret.
Rounded selectionEditingSwitchOnDraw text selections with rounded corners.
Auto-surroundEditingSegmented: Both, Quotes, Brackets, OffBothTyping a quote or bracket over a selection wraps it.
Check files with the project's toolsDiagnosticsSegmented: Off, Project tools, + Language serversProject toolsRuns the tools the folder uses (tsc, ESLint, Biome, Ruff, cargo check, go vet). Findings show as squiggles and under the line.
RunDiagnosticsSegmented: On open, On saveOn openOn open checks again each time the file changes on disk. On save checks only after you save.
TimeoutDiagnosticsSlider: 5 s to 300 s60 sPer tool, per run. Whole-project checks (tsc, cargo) are slow on big repos.
HoversLanguage serversSwitchOnShow types and docs when the pointer rests on a symbol.
CompletionLanguage serversSwitchOnSuggest names while you type. Ctrl+Space asks anywhere.
Stop when idleLanguage serversSlider: 1 min to 60 min5 minZidane 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.

Settings, Files & editor.

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.

ActionDoes
Set key, Replace key, ClearSaves, changes or removes a provider's API key
Sign in with providerSigns 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 accountAdds another account to a provider you already signed in to. You name the account first.
Configure, Edit configSets 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.

Settings, Accounts: providers with their keys and sign-ins.

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#

Settings, Advanced
SettingControlDefaultDescription
Shared daemon runtimeExperimentalSwitchOffRuns keep going when windows close and show in every window.
Remote hostsExperimentalSwitchOffRun sessions on other machines through zidane-server.
Main sessionExperimentalSwitchOffPin a session that starts, steers and reads your other sessions.
Project homeExperimentalSwitchOffClick 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 resultsAgent internalsSwitchOnSave tool outputs over 8 KB to disk and keep a preview in the chat.
Stable tool list (call_tool)Agent internalsSwitchOnUse found MCP tools through call_tool so the prompt cache stays valid. Off adds them to the tool list instead.
Freeze session promptAgent internalsSwitchOnKeep 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 expiresAgent internalsSwitchOffExperimental. 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 listAgent internalsSwitchOffExperimental. 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)Agent internalsChoice: Drop silently, Fail the run, Account defaultDrop silentlyWhat to do with reasoning that no longer matches the conversation.
Max output tokensAgent internalsChoice: Model max, 8K, 16K, 32K, 64KModel maxThe most the model may write per turn.
Auto-resume on output limitAgent internalsSwitchOffKeep going when an answer hits the model's output limit.
Provider retry attemptsAgent internalsChoice: Default (3), 1 (no retry), 2, 3, 5, 8Default (3)How many times to retry a failed or stalled provider call.
Settings, Advanced.

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.

Settings, Logs.

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 .cpuprofile file 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#