> ## Documentation index
> Fetch the complete documentation index at: https://haarness.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Find messages and ask side questions

The message browser finds anything you or the agent said in this chat, so you can jump back to
it, copy it, reuse it, or start a new branch of the chat from there. `/btw` opens a side chat about
the conversation without adding anything to it.

## Find an earlier message

1. Press **Alt+M**, or run `/messages`. To start with a search, run `/messages <words>`.
2. Type to filter. The search covers the whole text of each message, not just the preview.
3. Move with the arrows and press **Enter** on a message.
4. Choose what to do with it.

| Action | Does |
| --- | --- |
| **Jump to message** | Scrolls the transcript to it. **Ctrl+End** returns to the latest |
| **Read message** | Shows the full text in a scrollable panel |
| **Copy message** | Copies the full text to the clipboard |
| **Add text to draft** | Appends it to your prompt without sending it |
| **Fork from message** | Starts a new chat from that point |

Messages are listed newest first, with who wrote them and when. Only your prompts and the agent's
replies are listed, not tool output or reasoning.

Esc goes back one step. Opening the browser again brings back your last search and selection.

## Move between messages

You can also step through the transcript one message at a time, even while you type a draft:

| Key | Moves to |
| --- | --- |
| **Alt+↑**, **Alt+↓** | The previous or next message |
| **Alt+Shift+↑**, **Alt+Shift+↓** | Your previous or next prompt |
| **Alt+Home** | The start of the chat |
| **Alt+End** | Your last prompt |
| **End** or **Ctrl+End** | Back to the latest output |

These keys work while an approval or a question waits, and never answer it. You can rebind them
with [`/keybinds`](https://haarness.ai/docs/tui/keyboard-shortcuts.md#change-a-shortcut).

## Start over from an earlier point

**Fork from message** creates a new chat that contains the conversation up to that point:

- on one of your prompts, the fork stops just before it, so you can ask differently;
- on one of the agent's replies, the fork includes that reply.

The original chat is untouched and stays in `/sessions`. Forking does not change any files; to
roll files back, use [`/undo` or `/timeline`](https://haarness.ai/docs/tui/review.md#undo-a-change).

`/fork` does the same from a list of messages.

## Ask a side question

`/btw` asks the model about the chat so far, in a side chat that never touches the conversation:

```text
/btw Why did we choose a transaction here?
```

The side chat fills the screen, with the answer written as it arrives and a box at the bottom for
follow-ups, so "and why not a lock?" needs no repeating.

- The model sees the conversation as it was when you asked, plus the side chat's earlier
  questions and answers.
- It cannot run tools, so it cannot change anything.
- Nothing is added to the transcript, and the running turn is not interrupted.
- It is a normal model request: it uses tokens on the chat's own model.

| Key | Does |
| --- | --- |
| Enter | Ask. Shift+Enter adds a line |
| Esc | Back to the chat. An answer still being written keeps going |
| Ctrl+C | Clear the box, or stop the answer being written |
| `/new` (typed in the box) | Start a new side chat |
| `/copy` (typed in the box) | Copy the last answer |
| Page Up, Page Down | Scroll the side chat |

Run `/btw` on its own to come back to the side chat; it lasts as long as the TUI runs. From a
script, use `haarness btw <chat-id> "<question>"`.

## Next

- [Terminals](https://haarness.ai/docs/tui/terminals.md): run your own shells inside the terminal UI
- [Find and resume a chat](https://haarness.ai/docs/cli/sessions.md): resume, fork and export from the command line
