# Sessions

> Your shell runs in a persistent session on the box, so a network drop or a closed lid ends only the connection; reconnect and you are where you left off, running processes included.

URL: https://prized.dev/docs/sessions

## Connect [#connect]

```bash
prized ssh
```

You land in a tmux session named `main`, the same one from anywhere, and a suspended box wakes first. On Windows it uses the built-in OpenSSH client; mosh and dragging files in are [not on Windows yet](https://prized.dev/docs/cli#windows).

| Command                    | What it does                                                                               |
| -------------------------- | ------------------------------------------------------------------------------------------ |
| `prized ssh -s agents`     | Attach to, or create, a named session: letters, digits, hyphens, and underscores; no dots. |
| `prized ssh --ls`          | List sessions.                                                                             |
| `prized ssh --kill agents` | Close a session.                                                                           |
| `prized ssh --raw`         | A plain shell without tmux.                                                                |
| `prized ssh -- make test`  | Run one command and get its exit code back.                                                |
| `prized agents run codex`  | Start a coding agent in a detached session ([Agents](https://prized.dev/docs/agents)).                       |

> What a session survives on a pause depends on the box size ([Pause and resume](https://prized.dev/docs/boxes#pause-and-resume)); a busy session holds off [auto-pause](https://prized.dev/docs/boxes#auto-pause).

## When the connection drops [#when-the-connection-drops]

On macOS and Linux, if the network goes away mid-session (Wi-Fi changes, the lid closes), `prized ssh` notices within about a minute, prints one line, and reconnects on its own once the box answers again, back in the same session. A box paused in the meantime (from the dashboard, `prized pause`, or auto-pause) stays paused and the session ends; connecting again wakes it. Press Ctrl+C to stop waiting. ssh's own `~.` still ends the session, and `--raw` shells and one-off commands end instead of reconnecting.

Anything you type while waiting to reconnect is discarded, not sent to the box. Wait for the session to return before typing.

Your terminal is put back the way it was when the connection dies, so tmux or Claude Code going away mid-screen no longer leaves mouse movements and keys printing as codes in your shell.

Prefer a multiplexer that shows what each agent is doing? `prized herdr` lands in [herdr](https://prized.dev/docs/herdr) instead of tmux.

## Mosh for flaky networks [#mosh-for-flaky-networks]

```bash
brew install mosh   # macOS; on Linux: sudo apt install mosh
prized mosh
```

The same tmux session over UDP: keystrokes echo instantly, and the connection survives IP changes and laptop sleep. It runs through the SSH tunnel, so the box needs no public port.

## Drag files in [#drag-files-in]

Drag files or folders from Finder (or your file manager) onto a `prized ssh` or `prized mosh` window: they upload to a fresh folder under `~/.prized/drops/`, and the paste becomes their box paths, so Claude Code or Codex can read them.

| Rule      | What happens                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Limits    | Up to 16 files or folders per drop, 512 MiB and 4,096 files in total. Folder scans stop at 8,192 entries or 64 levels deep; transfers time out after 5 minutes. Drops older than 7 days are cleaned out.                                                                                                                                                                                                                                          |
| Skipped   | In folders: `.env` and `.env.*` (`.env.example` and `.env.sample` still upload), `.git`, dependency, build, and cache folders such as `node_modules`, `.venv`, and `target`, and your `[sync].default_ignores` ([the patterns sync leaves behind](https://prized.dev/docs/sync#add-a-project)), read with the dropped folder as the project root. Symlinks, hard-linked files, and special files inside folders stay local. The status line counts files and skips. |
| Names     | Spaces and shell punctuation become underscores, inside folders too; leading dots and dashes are removed; collisions get numbered suffixes.                                                                                                                                                                                                                                                                                                       |
| Fail-safe | Only a bracketed paste of nothing but existing local paths is rewritten. Empty or fully skipped folders, over-limit drops, and failed uploads paste the original paths, and the status line says why; a symlink or hard-linked file dropped directly is not uploaded.                                                                                                                                                                             |
| Terminals | Ghostty, Terminal.app, and iTerm2, once the session enables bracketed paste. Not plain SSH, editor Remote-SSH, explicit remote commands, or Windows.                                                                                                                                                                                                                                                                                              |
| Off       | For one session with `--no-drop-upload`, or for good with `drop_upload = false` under `[ssh]` in the config.                                                                                                                                                                                                                                                                                                                                      |

## Copy out [#copy-out]

Text copied in the session lands on your Mac or Linux clipboard, in Apple Terminal too: select it in Claude Code and press **c**, or use tmux copy mode. On a fresh box that is usually Claude's sign-in link: press **c**, paste it in a browser, paste the code back.

| Rule                     | What happens                                                                                                                                                          |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| How                      | `prized ssh` writes the copy to your clipboard with pbcopy on macOS, or wl-copy, xclip, or xsel on Linux.                                                             |
| One way only             | Nothing on the box can read your clipboard; read requests are dropped. Anything on the box can copy into it, so glance at what you paste into a shell.                |
| Selecting with the mouse | Claude Code takes over the mouse: hold **Fn** (Apple Terminal), **Option** (iTerm2), or **Shift** (most others) while dragging to select in the terminal, then Cmd-C. |
| Not over mosh            | `prized mosh` does not carry the copy. `prized ssh --raw` does; on Windows the terminal handles the copy itself.                                                      |
| Off                      | For one session with `--no-clipboard`, or for good with `clipboard = false` under `[ssh]` in the config; copies then stay on the box.                                 |

## Editors and other tools [#editors-and-other-tools]

* **Your local editor on the synced folder.** Saves to `~/Prized/myproject` land on the box in under a second.
* **Anything that speaks SSH.** `prized setup` installs an SSH config stanza, so `ssh box-3fa9`, Cursor and VS Code Remote-SSH, scp, rsync, and git remotes reach the box by hostname. The ChatGPT desktop app uses it too ([Codex remote](https://prized.dev/docs/codex)), and Claude Desktop with a restricted device key Prized installs ([Claude Desktop remote](https://prized.dev/docs/claude-desktop)).
