# Terminal Renderers

> Choose Prism, crystl's default Metal terminal surface, or the xterm fallback in Settings.

crystl gives you two terminal surfaces in **Settings → general → terminal → TERMINAL RENDERING**. Leave the picker on **Prism** unless you have a specific compatibility reason to use **xterm**.

## Prism

Prism is the default and recommended surface. It draws with Metal on top of crystl's [cavrn terminal engine](/docs/metal-rendering/), so it can keep many streaming shards light while preserving structured information about what ran.

Prism is also where the richer terminal features live:

- structured blocks and width-immutable scrollback
- clickable collapsed [tool-call rows](/docs/tool-calls/)
- indexed shell commands and complete retained output through [`crystl commands`](/docs/cli/#commands-and-screen-command)
- command-to-command navigation in scrollback

## xterm

xterm is the supported fallback. Pick it when a program behaves badly on Prism or you need to narrow down a renderer-specific problem.

Your terminal, shell, agents, [chat dock](/docs/chat-dock/), and transcript history still work. Prism-only structure and interactions are unavailable until you switch back.

## When the change applies

The picker applies to terminals opened after you change it. Already-open shards keep the surface they started with, so you can finish their work without a renderer swap underneath them.

You can inspect the current choice for free from a shard:

```bash
crystl settings get terminal_surface
```

Guild members can change it from the CLI too:

```bash
crystl settings set terminal_surface prism
crystl settings set terminal_surface xterm
```

See the [CLI reference](/docs/cli/#settings) for the full settings allowlist.

---
Source: https://crystl.dev/docs/terminal-renderers/
