# A Complete Guide to the EONYX Interactive TUI


The main way to work with EONYX is the interactive terminal interface (TUI): response streaming, the command palette, pickers and dialogs. Here is everything worth knowing to work fast.

<!--more-->

## Keyboard and commands

Almost everything in EONYX is done from the keyboard — here are the main keys, the palette and the pickers.

### Hotkeys

| Key       | Action                                       |
| --------- | -------------------------------------------- |
| `Enter`   | send message                                 |
| `Ctrl+J`  | line break in the input field                |
| `↑ / ↓`   | history of your messages                     |
| `Esc`     | interrupt the running turn                   |
| `/`       | command palette (on empty input)             |
| `@`       | file path completion (Tab inserts)           |
| `?`       | help (on empty input)                        |
| `Ctrl+P`  | command palette                              |
| `Ctrl+N`  | switch model                                 |
| `Ctrl+S`  | session manager                              |
| `Ctrl+K`  | skills and MCP servers (on/off)              |
| `Ctrl+O`  | expand/collapse tool output                  |
| `Ctrl+R`  | expand/collapse model reasoning              |
| `Ctrl+C`  | quit                                         |
| `! <cmd>` | run a shell command                          |

### Command palette

`/` (on empty input) or `Ctrl+P` opens the palette with two tabs (switch with `Tab`): system commands (new session, clear context, yolo, plan, timestamps, switch model, sessions, capabilities, quit) and working ones (attach, check, IP, export). Arrows wrap around, `Enter` runs.

Slash commands can also be typed by hand: `/new`, `/clear`, `/add [path]`, `/rename <title>`, `/fork`, `/export`, `/yolo`, `/plan`, `/timestamps`, `/model`, `/sessions [query]`, `/help`, `/quit`.

### Pickers and completion

- **Model** — `Ctrl+N` or `/model`: the list of configured models, the current one is marked.
- **Sessions** — `Ctrl+S` or `/sessions`: the list; `r` rename, `f` fork, `d` delete; `/sessions <query>` searches titles and text.
- **Files** — type `@` and start typing a path: a candidate menu appears (directories first), `Tab` inserts. A convenient way to "attach" files to a message.

## What is on screen

The header shows the state, and a couple of toggles control what is visible in the transcript.

### Header

The header shows the working directory, the git branch, the session number/title, the mode (` SAFE ` / ` YOLO `, ` PLAN `), the model and the counters: `input↑ output↓`, cached tokens, session time, cost `$…` and the **context indicator** `{ctx N%}`.

{{< admonition type="tip" title="Watch {ctx N%}" >}}
The `{ctx N%}` indicator is how full the context window is. At **80%** it gets highlighted — and at that same threshold auto-summarization of old turns kicks in. If you see a high percentage, that is fine: EONYX will compact the history itself.
{{< /admonition >}}

### Skills and MCP

`Ctrl+K` opens the capabilities dialog with the **Skills** and **MCP** tabs. Any skill or MCP server can be turned off/on on the fly (`✓`/`✗`): for skills this rebuilds the catalog in the system prompt, for MCP it hides the server's tools from the model. Active skills and servers are visible in the header (`# skills`, `» mcp`).

### Output and reasoning

- **`Ctrl+O`** — toggles tool output between a short summary and the full text. By default long listings and files are collapsed so they do not clutter the transcript.
- **`Ctrl+R`** — expands/collapses the model's "thinking" block (for reasoning models). Collapsed to a single line by default.

## Actions from the chat

From the chat you can run shell commands and manage the session itself.

### Shell in the chat

`!<command>` runs it in the agent's shared shell session, and **writes the command and its output into the conversation** — so the model sees what you did and how the state changed (directory, variables):

```text
! go test ./...
```

### Export and fork

- **`/export`** — saves the conversation to markdown: `<project>/.eonyx/exports/eonyx-<id>.md`.
- **`/fork`** (or `f` in the session list) — branches the conversation into a new session, the original is left unchanged. Handy as a "save point" before a risky direction.

## Summary

{{< admonition type="abstract" title="Cheat sheet" >}}
- **Navigation**
  - palette `/` or `Ctrl+P`; pickers for model (`Ctrl+N`), sessions (`Ctrl+S`), capabilities (`Ctrl+K`)
  - `@` — completion and attaching files, `Tab` inserts
- **Screen**
  - header: path, branch, mode, model, tokens, cost, `{ctx N%}`
  - `Ctrl+O` / `Ctrl+R` — expand tool output / reasoning
- **Actions from the chat**
  - `!<cmd>` — shell in the chat, recorded into the history
  - `/export`, `/fork` — export and branching
{{< /admonition >}}

