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

# Terminal

> Open a shell on your VM (or inside an app container) from the dashboard, no SSH config required.

The **Terminal** tab on the instance page opens a fully interactive shell in your browser. Multiple tabs, mouse selection, copy/paste, scrollback — it's a real terminal.

## Two kinds of terminal

The selector at the top of the Terminal tab chooses where the shell lands:

* **Host** (default) — lands you as `root` on the VM. Full control: install packages, edit `/etc/`, run `docker`, restart services.
* **An app install** — lands you *inside* that app's container, as the image's `USER` directive (for example `node` for OpenClaw). Use this to run app-specific CLIs without leaving the dashboard.

You can open up to **3 concurrent sessions** on the same VM. Pick a different target from the selector — each gets its own tab.

## Session persistence

Sessions run inside `tmux` on the VM. That means:

* Close your laptop, come back tomorrow → reconnect into the **same** tmux session, with full scrollback intact.
* Run a long process, navigate away, come back → it's still running.
* Refresh the dashboard → tabs reopen.

If you don't want this, type `exit` in the terminal — it kills the tmux session.

## Useful shortcuts

|                                |                                                                 |
| ------------------------------ | --------------------------------------------------------------- |
| Open new tab                   | Selector → pick host or an install                              |
| Scroll back                    | `Ctrl-b [` then arrow keys (it's tmux's copy-mode); `q` to exit |
| Detach (keeps session running) | `Ctrl-b d`                                                      |
| Clear                          | `clear` or `Ctrl-l`                                             |
| Search history                 | `Ctrl-r`                                                        |

## Per-app conveniences

When you select an app install:

* The CLI binary the image declares (`bin` in `package.json` for Node apps) is automatically symlinked into `PATH` — for example `openclaw devices list` works even though the image ships it as `node /app/openclaw.mjs`.
* Your working directory is set to the app's `WORKDIR` (`/app` for most images).

## Security notes

* The host terminal runs as `root` because the VM is dedicated to your tenant — there are no co-tenants to drop privileges for.
* Per-app terminals run as the container's configured user. Add `--user 0` to a `docker exec` only when you have to (e.g. one-shot `chown`).
* All terminal traffic is encrypted between your browser and your VM.
* Closing the tab does **not** kill the session — use `exit` if you want to.

## Next

<CardGroup cols={2}>
  <Card title="Files" icon="folder-tree" href="/manage-vm/files">
    Browse and edit files without a shell.
  </Card>

  <Card title="Logs" icon="rectangle-list" href="/manage-vm/logs">
    Stream live container logs.
  </Card>
</CardGroup>
