# Terminal settings

> The terminal app's Settings modal, its tabs and keys, and every setting with its default.

`Ctrl`+`O` opens Settings. zidane saves each change. Most changes apply right away, and a row's description says when one applies later, for example "Applies to new sessions."

Both apps read one settings file ([files and folders](https://zidane.si/docs/files.md)). Which settings follow a host: [one engine, two apps](https://zidane.si/docs/apps.md#settings).

*Terminal: Settings, Agent tab: session and safety settings.*

```text
┌─ settings ───────────────────────────────────────────────────────────────────────────────┐
│                                                                                          │
│  [Agent 44]  UI 37   Keybindings   Authentication   Instructions   Skills                │
│   MCP servers   Extensions & Plugins                                                     │
│                                                                                          │
│  ┌────────────────────────────────────────────────────────────────────────────────────┐  │
│  │ search agent settings by name or description…                                      │  │
│  └────────────────────────────────────────────────────────────────────────────────────┘  │
│                                                                                          │
│   sessions                                                                            ▀  │
│   ▶ Start from last session                                                       ━━●    │
│     Use daemon runtime                                                            ●──    │
│     Remote hosts                                                                  ●──    │
│     Main session                                                                  ●──    │
│     Check for updates                                                             ━━●    │
│                                                                                          │
│   guardrails                                                                             │
│     Tool approvals                                                        Full access    │
│     Interaction mode                                                     Ask normally    │
│                                                                                          │
│   sandbox                                                                                │
│     Sandbox shell commands                                                        ●──    │
│     Sandbox network                                                             Allow    │
│     Sandbox writable paths                             ~/.cache, ~/.bun/install/cache    │
│                                                                                          │
│   Open the last session on launch instead of the sessions list.                          │
│                                                                                          │
│  ←→ tabs  ↑↓ navigate  ↵ change  esc close                                               │
│                                                                                          │
└──────────────────────────────────────────────────────────────────────────────────────────┘
```

## Tabs

| Tab | Holds |
| - | - |
| Agent | Behavior: sessions, guardrails, sandbox, context, models, limits, the composer, and action rows |
| UI | Display: transcript, footer, theme, terminal tab |
| Hosts | This computer and your servers. The tab shows when Remote hosts is on ([remote hosts](https://zidane.si/docs/tui-remote.md)). |
| Keybindings | Every shortcut, and a row that opens `keybindings.json` |
| Authentication | Providers and accounts ([models and accounts](https://zidane.si/docs/tui-models.md#settings--authentication)) |
| Instructions | What goes into the system prompt, each part labelled by origin. `Enter` on the system prompt row creates a `SYSTEM.md`. |
| Skills | Turn skills on or off, install, edit, delete |
| MCP servers | Add, test, sign in, turn servers and tools on or off |
| Extensions & Plugins | Install, update, configure and remove extensions |
| Logs | Recent log lines. `Ctrl`+`L` cycles the level. |

The keys of the Skills, MCP servers and Extensions & Plugins tabs are on [MCP, skills and extensions](https://zidane.si/docs/tui-mcp.md).

In a remote session, the Authentication, Skills, MCP servers and Extensions & Plugins tabs edit that server. The Agent tab edits that server too. Some Agent rows stay with this terminal: Start from last session, Use daemon runtime, Remote hosts, Check for updates, Check usage, and the editor and autocomplete rows. The UI tab, the theme and your keybindings also stay with this terminal. To copy your settings to a server, use [settings sync](https://zidane.si/docs/server-clients.md#settings-sync).

## Keys

| Key | Does |
| - | - |
| `←` `→` | Switch tab |
| `↑` `↓`, or `Ctrl`+`P` `Ctrl`+`N` | Move |
| `PgUp` `PgDn`, or `Ctrl`+`B` `Ctrl`+`F` | Scroll half a page, on the Keybindings and Logs tabs |
| `Home` `End` | Top and bottom, on the Keybindings and Logs tabs |
| Type | Filter the rows by label, description or setting key. The filter stays when you switch tabs, and each tab shows its match count. |
| `Enter` | Toggle, cycle the choices, edit, or run an action row |
| `Tab` | Expand a row (MCP servers, extensions, instructions, accounts) |
| `Ctrl`+`R` | Reload the list on Skills, MCP servers and Extensions & Plugins. On Instructions, reload the files and rebuild the agent. |
| `Esc` | Close |

*Terminal: Settings, UI tab: transcript display settings.*

```text
┌─ settings ───────────────────────────────────────────────────────────────────────────────┐
│                                                                                          │
│   Agent 44  [UI 37]  Keybindings   Authentication   Instructions   Skills                │
│   MCP servers   Extensions & Plugins                                                     │
│                                                                                          │
│  ┌────────────────────────────────────────────────────────────────────────────────────┐  │
│  │ search ui settings by name or description…                                         │  │
│  └────────────────────────────────────────────────────────────────────────────────────┘  │
│                                                                                          │
│   sessions                                                                            ▀  │
│   ▶ All projects                                                                  ●──    │
│     Spaces                                                                        ●──    │
│                                                                                          │
│   usage                                                                                  │
│     Usage indicator                                                               ━━●    │
│                                                                                          │
│   transcript                                                                             │
│     Transcript density                                                        Compact    │
│     Thinking blocks                                                               ━━●    │
│     Expand thinking while it streams                                              ●──    │
│     Hide subagent output                                                          ━━●    │
│     Tool outputs                                                                  ●──    │
│     Tool calls display                                                      Formatted    │
│     Group tool calls                                                              ━━●    │
│                                                                                          │
│   List sessions from every project, not only this one.                                   │
│                                                                                          │
│  ←→ tabs  ↑↓ navigate  ↵ change  esc close                                               │
│                                                                                          │
└──────────────────────────────────────────────────────────────────────────────────────────┘
```

## Action rows

These Agent tab rows open a dialog. Decision model and Test decision model sit under Models and show only when Decisions is on. The other rows sit at the end of the tab.

| Row | Opens |
| - | - |
| Environments | Where new sessions run: local (with the OS sandbox), a git worktree or a sandbox provider, with the default, its options and its keys ([execution contexts](https://zidane.si/docs/execution-contexts.md)) |
| Import from Claude Code | Copies conversations, MCP servers, skills, commands and subagents from Claude Code ([import from Claude Code](https://zidane.si/docs/apps.md#import-from-claude-code)) |
| Compaction model | The model that writes compaction summaries, or the main model |
| Decision model | The model for [decisions](https://zidane.si/docs/decisions.md) |
| Test decision model | Sends one small decision to that model and shows whether it works |
| Run setup again | The [setup wizard](https://zidane.si/docs/tui.md#first-launch), with your current values. The row is hidden while the active session runs on a server. |

## Agent tab

### Sessions

| Setting | Values | Default | Description |
| - | - | - | - |
| Start from last session (`resumeLastSession`) | On, off | on | Open the last session on launch instead of the sessions list. |
| Use daemon runtime (`useDaemon`) | On, off | off | Run sessions in a background process, the daemon. Runs keep going when windows close, and show in every window. Applies to new sessions. |
| Remote hosts (`remoteHosts`) | On, off | off | Run sessions on other machines through zidane-server. Off while `ZIDANE_NO_REMOTE=1` is set. |
| Main session (`orchestration`) | On, off | off | Pin a session that starts, steers and reads your other sessions. Needs the daemon. Needs Use daemon runtime. |
| Reminders (`schedules`) | On, off | off | Send a prompt to a session at a set time, once or on a repeat. Extensions can schedule their own reminders. |
| Agent can set reminders (`schedulesAgent`) | On, off | on | Give the agent a tool to schedule prompts to its own session, such as "check the CI in 20 minutes". Needs Reminders. |
| Crash recovery (`durability`) | Ask before resuming, Resume, Off | Ask before resuming | Keep 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 (`checkForUpdates`) | On, off | on | Check daily for a new release and show it in the footer. |
| Install updates automatically (`autoInstallUpdates`) | On, off | off | Install new releases in the background. Restart when you are ready. Needs Check for updates. |

### Guardrails

| Setting | Values | Default | Description |
| - | - | - | - |
| Tool approvals (`approvalMode`) | Ask, Model decision, Full access | Ask | Who approves tool calls: you, the decision model, or nobody. Commands you safelisted always run. |
| Interaction mode (`interactionMode`) | Ask normally, Skip interactions, Disable tools | Ask normally | How the agent handles questions: ask you, answer from the repository, or turn questions off. |
| Secrets (`secrets`) | On, off | off | Let the agent ask you for an API key or a token. zidane keeps it in a private file for this project, out of the chat, and hides it in tool output. |

### Sandbox

| Setting | Values | Default | Description |
| - | - | - | - |
| Sandbox shell commands (`sandbox`) | On, off | off | Keep the commands and edits of the agent inside the project, and hide your credentials from them. MCP servers and your own ! commands run outside the sandbox. Applies to new sessions. |
| Sandbox network (`sandboxNetwork`) | Allow, Deny | Allow | Allow keeps installs and git working. Deny blocks every connection. |
| Sandbox writable paths (`sandboxAllowWrite`) | Text, such as `~/.cache, ~/.bun/install/cache` | empty | Extra folders sandboxed commands may write to, comma separated. |

### Project trust

| Setting | Values | Default | Description |
| - | - | - | - |
| Load project extensions (`loadProjectExtensions`) | On, off | off | Run the extensions of this project. They can run any code on your computer. |
| Import configurations from other agents (`importForeignConfigs`) | On, off | off | Use other agents' servers, skills, commands and subagents. Imported servers run commands from files zidane does not own. |
| Support Ruler configuration (.ruler) (`importRulerConfigs`) | On, off | on | Read .ruler folders. Their servers need "Import configurations from other agents". |

### Context

| Setting | Values | Default | Description |
| - | - | - | - |
| Auto-compact (`autoCompact`) | On, off | on | Summarize the conversation when the context passes the threshold below. |
| Auto-compact threshold (`autoCompactThreshold`) | 60%, 70%, 80%, 90% | 80% | How full the context gets before zidane summarizes it. |
| Persist large tool results (`persistToolResults`) | On, off | on | Save tool outputs over 8 KB to disk and keep a preview in the chat. |
| Stable tool list (call_tool) (`stableToolList`) | On, off | on | Use found MCP tools through call_tool so the prompt cache stays valid. Off adds them to the tool list instead. Applies to new sessions. |
| Freeze session prompt (`freezeSessionPrompt`) | On, off | on | Keep each session's system prompt as its first run saw it and tell the model about later changes, so the prompt cache stays valid. /refresh re-reads it. |
| Compact before the cache expires (`compactBeforeCacheExpiry`) | On, off | off | Experimental. 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 (`compactToolCatalog`) | On, off | off | Experimental. 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. Applies to new sessions. |
| User instructions (`userInstructionsScope`) | Both (merged), User only, Project only, None | Both (merged) | Which AGENTS.md and CLAUDE.md files the agent reads. |
| Preserved thinking (Anthropic only) (`thinkingBinding`) | Drop silently, Fail the run, Account default | Drop silently | What to do with reasoning that no longer matches the conversation. |

### Experimental

| Setting | Values | Default | Description |
| - | - | - | - |
| Codemode (`codemode`) | On, off | on | The model runs several tool calls at once, in one short script inside a sandbox. |
| Show codemode tool calls (`codemodeShowCalls`) | On, off | off | List the calls each codemode script makes under its row. Calls that start a subagent always show. Needs Codemode. |
| Stream progress (`codemodeStreamProgress`) | On, off | off | Show which line of a codemode script runs, how many of its calls are done, and what it prints, while it runs. Needs Codemode. |

### Models

| Setting | Values | Default | Description |
| - | - | - | - |
| Allow subagents to use different models (`subagentModels`) | On, off | on | Let the agent hand work to cheaper models. |
| Image generation (`imageGeneration`) | On, off | on | Let the agent generate images with your providers' image models. Each image is billed by the provider. |
| Web search (`webSearch`) | On, off | on | Let the agent search the web for docs, errors and recent changes. |
| Auto-resume on output limit (`resumeOnMaxTokens`) | On, off | off | Keep going when an answer hits the model's output limit. |
| Max output tokens (`maxOutputTokens`) | Model max, 8K, 16K, 32K, 64K | Model max | The most the model may write per turn. |
| Provider retry attempts (`retryMaxAttempts`) | Default (3), 1 (no retry), 2, 3, 5, 8 | Default (3) | How many times to retry a failed or stalled provider call. |
| Decisions (`decisions`) | On, off | off | Hooks and extensions ask a decision model for quick yes/no, choice and score answers. Your provider bills each call. |
| Auto-update session titles (`autoTitle`) | On, off | off | Title sessions after their first run, and rename them when the topic changes. Titles that you typed stay. Needs Decisions. |
| Estimate time remaining (`runEstimates`) | On, off | off | Show how long running sessions and subagents have left, from a quick decision when a run starts. Uses tokens. Needs Decisions. Drives the desktop app only. |

### Run limits

| Setting | Values | Default | Description |
| - | - | - | - |
| Max turns per run (`maxTurns`) | Unlimited, 25, 50, 100, 200 | Unlimited | Stop a run after this many turns. |
| Max cost per run (`maxCostUsd`) | Unlimited, $1, $5, $10, $25 | Unlimited | Stop a run once its estimated cost passes this amount. |
| Max tokens per run (`maxTotalTokens`) | Unlimited, 500K, 1M, 2M, 5M | Unlimited | Stop a run once it has used this many tokens. |
| Max run time (`maxWallMinutes`) | Unlimited, 5 min, 15 min, 30 min, 60 min | Unlimited | Stop a run after this much time. |
| Max parallel subagents (`maxParallelSubagents`) | 1, 2, 3, 5, 10, Unlimited | 3 | How many subagents a session runs at once. More wait for a free slot. |

### Composer

| Setting | Values | Default | Description |
| - | - | - | - |
| Messages during a run (`messageDelivery`) | Steering, Queuing | Queuing | What happens to a message that you send while the agent works. Alt+Enter sends one message the other way. |
| Paste attachments (`attachmentsEnabled`) | On, off | on | Turn dropped files and long pastes into attachments. |
| Edit prompt in $EDITOR (`externalEditor`) | On, off | on | Press ctrl+g to write the prompt in $EDITOR. |
| Inline autocomplete (`inlineAutocomplete`) | On, off | on | Suggest the rest of a path or command as you type. Press Tab to accept. |

### Usage

| Setting | Values | Default | Description |
| - | - | - | - |
| Check usage (`subscriptionUsage`) | On, off | on | Fetch plan limits and credits from signed-in providers and GitHub. |

## UI tab

### Sessions (UI tab)

| Setting | Values | Default | Description |
| - | - | - | - |
| All projects (`showAllProjects`) | On, off | off | List sessions from every project, not only this one. |
| Spaces (`spaces`) | On, off | off | Group sessions into spaces, like Personal and Work, each with its own default model. |

### Usage (UI tab)

| Setting | Values | Default | Description |
| - | - | - | - |
| Usage indicator (`showUsageIndicator`) | On, off | on | Show plan usage in the footer. ctrl+p opens the panel. |

### Transcript

| Setting | Values | Default | Description |
| - | - | - | - |
| Transcript density (`transcriptDensity`) | Full, Compact | Compact | Full shows every step. Compact folds each exchange's work into one row. |
| Row icons (`showRowIcons`) | On, off | on | Show an icon next to each message and step. Drives the desktop app only. |
| Thinking blocks (`showThinking`) | On, off | on | Show the agent's reasoning in the chat. |
| Expand thinking while it streams (`thinkingAutoExpand`) | On, off | off | Keep a thinking block open while the agent reasons. Drives the desktop app only. |
| Hide subagent output (`hideSubagentOutput`) | On, off | on | Fold subagent runs down to their start and finish lines. |
| Tool outputs (`showToolResults`) | On, off | on | Show the output under each tool call. |
| Tool calls display (`toolCallDisplay`) | Formatted, Full, Hidden | Formatted | Show tool calls as a summary, their full input, or not at all. |
| Group tool calls (`groupToolCalls`) | On, off | on | Fold each exchange's tool calls into one row. |
| Edit diffs (`showEditDiffs`) | On, off | on | Show file edits as diffs. |
| Edit diff density (`editDiffDisplay`) | Full, Compact | Full | Show edits as a full diff or a short summary. |
| Full shell output (`showFullShellOutput`) | On, off | off | Show every line of ! command output, not only the last 10. |
| Run receipt (`showRunReceipt`) | On, off | on | Show agent, model, time, cost and tokens after each run. |
| Tool attachments (`showToolAttachments`) | On, off | on | Gather the images tool calls return under the Working block. Drives the desktop app only. |
| Cache notices (`showCacheNotices`) | On, off | off | Add a row to the chat when the prompt cache expires or resets, or the provider drops earlier reasoning. |
| Compaction summaries (`showCompactionSummary`) | On, off | off | Show the summary text under the compaction line. |
| Smooth streaming (`smoothStreaming`) | On, off | on | Reveal replies character by character as they stream. |
| Streaming throbber (`showThrobber`) | On, off | off | Animate an indicator while the agent works. |
| Artifacts (`artifacts`) | On, off | on | Track each session's pull requests, branches, commits and files. |
| Keep scroll position (`preserveScroll`) | On, off | on | Reopen each conversation where you left it. Drives the desktop app only. |
| Diagrams (`renderDiagrams`) | On, off | on | Draw Mermaid code blocks in replies as diagrams in your theme's colors. Off shows their code. Drives the desktop app only. |

### Footer

| Setting | Values | Default | Description |
| - | - | - | - |
| UI mode (`uiMode`) | Full, Minimal | Full | Full shows every shortcut in the footer. Minimal hides them until you press ctrl+y. |
| Todo indicator (`showTodoIndicator`) | On, off | on | Show the todo count in the footer. ctrl+t opens the list. |

### Look and feel

| Setting | Values | Default | Description |
| - | - | - | - |
| Theme (`theme`) | Default, Light, Catppuccin Mocha, Catppuccin Macchiato, Catppuccin Frappé, Catppuccin Latte (light), Gruvbox Dark, Gruvbox Light, Crush (Pantera), Vaporwave | Default | Colors for the interface, markdown and code. |
| Renderer FPS (`targetFps`) | 30 fps, 60 fps, 120 fps | 60 fps | 30 saves power, 60 is recommended, 120 suits fast displays. |
| Clickable UI (`mouseInteractions`) | On, off | on | Click, hover and scroll rows. When off, the terminal's own selection works. |
| Ctrl+C behavior (`ctrlCBehavior`) | Quit, Confirm, Stop, then quit | Quit | Quit right away, ask first, or stop what is running and quit on a second press. |
| Open files and diffs in (`openIn`) | $EDITOR, Panels | Panels | Where clicked files and diffs open: your editor or the desktop panels. |

### Terminal tab

| Setting | Values | Default | Description |
| - | - | - | - |
| Terminal title (`terminalTitle`) | Off, zidane, Session title, Icon + session | Off | What the terminal tab title shows. |
| Session icon (`sessionIcon`) | Text, such as `⚽` | empty | Shown before the session title in the terminal tab. |
| Attention icon (`attentionIcon`) | Text, such as `⚠️` | empty | Replaces the session icon while zidane waits on you. |
| Active icon (`activeIcon`) | Text, such as `⚡` | empty | Replaces the session icon while zidane works. |

### Logs

| Setting | Values | Default | Description |
| - | - | - | - |
| File logging (`fileLogging`) | On, off | off | Save this session's logs to \~/.zidane/logs. |

## Desktop app rows

Rows marked "Only in the desktop app." change the desktop app only. The terminal app lists them but does not use them. Most of them sit in the Desktop app and Notifications groups, which this page does not list. See [desktop settings](https://zidane.si/docs/desktop-settings.md).

## Extension settings

Extensions add their own rows under Extensions & Plugins. Press `Tab` on an extension to show them. `Ctrl`+`D` clears a secret row back to its default. Press it twice to confirm. On a server, a row that needs more than the token's scope is dimmed and tagged `admin`.
