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

# Machines

> A machine is the paired computer that runs the gpr daemon.

A **machine** is a computer running the `gpr` daemon with a live websocket to the backend.

## Responsibilities

* Stay connected to the hub (`wss://api.getpullrequest.com/gpr/ws/daemon` in production)
* Launch ACP agents for sessions
* Manage git worktrees for tasks
* Forward permission requests and stream agent output

## Lifecycle commands

```bash theme={null}
gpr setup          # pair + install startup service + start
gpr status         # local state
gpr doctor         # health checks
gpr logs -f        # follow daemon log
gpr restart        # restart via OS service
gpr reconnect      # force reconnect after offline
gpr uninstall      # stop service (add --purge to delete ~/.gpr)
```

## Online vs agent alive

`gpr doctor` / hub “online” means the **daemon websocket** is registered. It does not mean Cursor or Claude is already running. Agents spawn when a session starts.

## Data on disk

| Path                  | Contents                                                                   |
| --------------------- | -------------------------------------------------------------------------- |
| `~/.gpr/state.json`   | Daemon identity and pairing                                                |
| `~/.gpr/daemon.log`   | Rotated daemon log                                                         |
| `~/.gpr/events.jsonl` | Local event audit trail                                                    |
| `~/.gpr/agents.json`  | Optional agent launch overrides. See [agents.json](/docs/reference/agents-json) |

Override the home directory with `GPR_HOME`.
