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

# Review changes, files and terminals

Desktop keeps your projects in the sidebar on the left and the chat in the middle. Review, files,
a web browser and context usage open in a side panel on the right, the
[side chat](https://haarness.ai/docs/desktop/the-conversation.md#ask-a-side-question) in a column beside the chat, and
terminals along the bottom.

## Open a panel

Click **Show side panel** in the title bar, then pick a panel. Or use a shortcut:

| Panel | macOS | Windows and Linux |
| --- | --- | --- |
| Review | ⌘⇧D | Ctrl+Shift+D |
| Files | ⌘⇧E | Ctrl+Shift+E |
| Terminal | ⌘J | Ctrl+J |
| Browser | ⌘⇧B | Ctrl+Shift+B |
| Side chat | ⌘⇧J | Ctrl+Shift+J |

The **View** menu has the same panels; Review is called **Changes** there. **Context** shows how
much of the model's context the chat uses, with token counts and cost. Drag the edge of a panel to
resize it, or double-click the edge to reset it. In a narrow window the side panel takes the
sidebar's place first, before it covers the chat.

## Review what changed

1. Open **Review**.
2. Choose what to compare in the first menu:
   - **Working tree**: your uncommitted changes.
   - **Current branch**: everything on this branch.
   - **Last turn**: what the latest turn in this chat changed.
3. Pick a file in the list, or tick **Show every file at once**. Tick **Reviewed** on each file as
   you go.

The other menus switch between **Split** and **Unified** diffs and set how many lines of context
to show, up to **Full file**. **Copy patch** copies one file's diff. A step in the chat that edited
a file also has **Show in Review**.

Review needs the project to be a Git repository. Otherwise it says **This folder isn’t a Git
repository.**

### Comment on a line

1. Click the comment button beside a line, or double-click the line.
2. Type your comment in **Comment on this line…**. Shift+Enter starts a new line.
3. Press Enter or click **Add to message**.

The comment is added to your message box with the file and line it refers to. Add more comments,
then send the message to hand the whole review back to Haarness. Esc cancels a comment.

## Browse and edit files

Open **Files** to see the project tree. **Find a file…** searches by name, and the buttons beside
it create a file or folder.

Click a file to open it in a tab. Edit it and press ⌘S or Ctrl+S to save. HTML, SVG and Markdown
files also have a **Preview** view beside **Code**.

- **Add file to context** (⌘⇧L or Ctrl+Shift+L) puts the open file into your next message.
  Select some lines first to add just those, with **Add selection to context**.
- In a Markdown preview, select some text and click **Comment on selection** to add a comment on
  those lines to your message, as in Review.
- **Rename**, **Delete** and **Reveal in file manager** act on the open file.
- Desktop asks before you close a file, switch folders or quit with unsaved edits.

Files are limited to the project folder, and to 10 MiB each.

### When a file changes while it is open

The Files panel follows changes on disk: after the agent edits files, at the end of each turn,
and when you come back to the window. New files appear in the tree, and an open file you have not
edited shows the new text.

If you have unsaved edits in that file, they are kept, and a bar says **This file changed on disk
while you were editing it.**

- **Reload** shows the file as it is on disk, dropping your edits.
- **Keep mine** keeps your edits; your next save replaces the file on disk.

Saving over a file that changed on disk shows the same bar instead of overwriting it.

## Run commands in a terminal

Press ⌘J or Ctrl+J, or click **Toggle terminal** in the title bar. A shell opens in the project
folder, ready to type.

- **+** opens another terminal tab. Double-click a tab to rename it.
- **Hide terminal** hides the panel but keeps its processes running, so a dev server or watcher
  carries on.
- Closing a terminal's tab stops that shell. Closing the last one hides the panel.

The terminals run on the same Haarness server as your chats, so they also keep running when you
close the Desktop window. On macOS, **Settings → General → Option as Meta key** makes Option work
as Meta in the terminal.

## Test a website in the browser

**Browser** opens web pages next to the chat, and Haarness can use the same browser to check its
own work. [Preview pages and use the browser](https://haarness.ai/docs/desktop/previews-and-browser.md) covers it, with
the pages Haarness builds for you to preview.

## Work in a separate worktree

A worktree is a second checkout of the same Git repository, so Haarness can work on a branch
without touching your main folder.

1. Start a new chat. Just above the message box, next to the project name, click the location
   button. It shows which checkout the next message will use.
2. Choose **New worktree…**.
3. Give it a **Name**, choose where to **Start from**, and click **Create worktree**.

Desktop opens a new chat in the worktree. To see worktrees in the sidebar, choose **Show
worktrees in sidebar** from the same location menu, or **Enable worktree view** in the project's
**⋯** menu. Each worktree's **⋯** menu then offers **Reset worktree…** and **Remove worktree…**.
Haarness refuses to remove a worktree that has uncommitted changes or running tasks.
[Work on a branch in a worktree](https://haarness.ai/docs/cli/worktrees.md) covers the same feature from the CLI.

## Keep several chats open in tabs

When more than one chat is open, they show as tabs above the chat.

- A plain click on a chat in the sidebar, or in search, opens it in a *preview* tab, shown in
  italics: the next chat you open takes its place, so looking through chats leaves one tab
  behind.
- The tab stays once you use the chat (type in it, send, or answer a request), or when you
  double-click it or press Enter on it. A middle-click on a chat in the sidebar opens it in a tab
  that stays.
- **+** at the end of the tabs starts a new chat. Ctrl+Tab and Ctrl+Shift+Tab move between tabs.

Open tabs come back when you reopen the project.

## Organise projects and chats

- **Add a project:** the **+** button beside **Projects**.
- **Move between chats:** Alt+↑ and Alt+↓ (Option on macOS) open the previous or next chat in the
  sidebar. Ctrl+Shift+L on macOS (Alt+Shift+L elsewhere) puts the keyboard on the open chat in
  the sidebar.
- **Reorder:** drag a project or a chat. With the keyboard, focus a row and use Alt and the arrow
  keys.
- **Show or hide a project's chats:** click the arrow beside its name. Several projects can stay
  open at once.
- **Project menu (⋯):** **Pin** a project, **Rename…** it, put it in a **Section**, start a
  **New chat**, **Select chats** to archive several, archive all its chats, or
  **Remove project** from the sidebar. Removing a project keeps its chat history.
- **One list instead of groups:** the **⋯** beside **Projects**, then **Organize sidebar → In one
  list**.

Chats started by a [schedule](https://haarness.ai/docs/desktop/settings.md#run-a-prompt-on-a-schedule) appear under
**Scheduled** in the sidebar, grouped by schedule. When every chat of a project is archived, the
project says how many; click the count to find them in search. Hover over a long chat or project
name to read it in full.

## Next

- [Preview pages and use the browser](https://haarness.ai/docs/desktop/previews-and-browser.md)
- [Settings](https://haarness.ai/docs/desktop/settings.md): appearance, providers, shortcuts, MCP, hooks and schedules
