<!-- Markdown mirror. Canonical: https://empryo.com/docs/surfaces/overview -->

# Surfaces

> Use Empryo from the terminal UI, the desktop app, the phone app or the headless CLI. All of them run the same agent with the same tools, sessions and settings.

You can run Empryo as a terminal app, as a desktop app or as a command with no UI for scripts and CI, and drive it from your phone. Each one runs the same agent. Pick the one that suits the task in front of you, and switch whenever you like.

**Terminal UI**

Run `empryo` in a repository. You get a keyboard-driven chat with tabs, panels, a status bar and an optional embedded Neovim.

**Desktop app**

A native window with a visual map of your codebase, a file preview with code intelligence, visual diffs, terminals and a built-in browser.

**Phone app**

Drive the chats on your computer from an iPhone, iPad or Apple Watch, and get told when a turn is done. In beta.

**Headless CLI**

No UI. Pass a prompt, read plain text, JSON or a stream of JSON events, and check the exit code. Made for scripts and CI.

## What stays the same

The interface changes. The rest does not:

- **The Genome.** Empryo keeps a live map of your code (files, symbols and how they depend on each other) so the agent knows where to look before it edits. See [Genome](/docs/concepts/genome).
- **The tools.** Edits go through syntax-aware [editing](/docs/tools/ast-edit) and language servers, not blind find-and-replace.
- **Sessions and checkpoints.** [Sessions](/docs/tools/sessions) and [checkpoints](/docs/tools/checkpoints) are saved in the project's `.empryo/` folder, so you can resume or roll back from any surface.
- **Settings.** [Configuration](/docs/reference/configuration), API keys, themes and [memory](/docs/tools/memory) are shared. Set a key once and every surface can use it.
- **Parallel tabs.** In the terminal UI and the desktop app, tabs working on the same repository [coordinate their edits](/docs/agents/cross-tab) so they don't overwrite each other.

## Which one to use

| You want to… | Use |
|--------------|-----|
| Work with the agent interactively from your terminal | [Terminal UI](/docs/surfaces/tui) |
| See your codebase, diffs and a browser in one window | [Desktop app](/docs/surfaces/desktop) |
| Run Empryo from a script or a CI job | [Headless CLI](/docs/surfaces/headless) |
| Follow and steer your chats away from the computer | [Phone app](/docs/surfaces/phone) |
| Speak prompts instead of typing them | [Voice input](/docs/surfaces/voice-input) |
| Look up a flag or a slash command | [CLI reference](/docs/reference/cli) · [Commands](/docs/reference/commands) |
