> ## 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.

# Configuration

> Environment variables and on-disk paths for the gpr daemon.

## Paths

| Path                      | Purpose                                                                                         |
| ------------------------- | ----------------------------------------------------------------------------------------------- |
| `~/.local/bin/gpr`        | Default binary location (Unix)                                                                  |
| `~/.gpr/`                 | Daemon home (state, logs, workspaces)                                                           |
| `~/.gpr/state.json`       | Identity + pairing                                                                              |
| `~/.gpr/daemon.log`       | Rotated log                                                                                     |
| `~/.gpr/events.jsonl`     | Local event trail                                                                               |
| `~/.gpr/workspaces/<id>/` | Per-workspace state                                                                             |
| `~/.gpr/agents.json`      | Optional agent launch overrides (command, args, env). See [agents.json](/docs/reference/agents-json) |

Override home with `GPR_HOME`.

## Daemon environment

| Variable                              | Default                 | Meaning                                                                         |
| ------------------------------------- | ----------------------- | ------------------------------------------------------------------------------- |
| `GPR_SERVER_URL`                      | prod/dev WS URL         | Backend websocket endpoint                                                      |
| `GPR_ENV`                             | unset                   | `dev` / `development` / `local` → `ws://localhost:8000/gpr/ws/daemon`           |
| `GPR_HOME`                            | `~/.gpr`                | Data directory                                                                  |
| `GPR_AGENT_CMD`                       | unset                   | Executable + args for the `default` agent. Overrides `default` in `agents.json` |
| `GPR_RECONNECT_MAX_ATTEMPTS`          | `0` (forever)           | Cap automatic reconnects                                                        |
| `GPR_CONNECTION_MAX_LIFETIME_MINUTES` | `50`                    | Proactive WS rotation; `0` disables                                             |
| `GPR_SESSION_RECONNECT_GRACE_SECONDS` | `120`                   | Keep agent alive across brief disconnects                                       |
| `GPR_AGENT_IDLE_SECONDS`              | `10800` (3h)            | Hibernate quiet agents; `0` disables                                            |
| `GPR_AUTO_APPROVE_TOOL_KINDS`         | read,search,think,fetch | Interactive auto-approve set; `none` disables                                   |
| `GPR_TASK_AUTO_APPROVE_TOOL_KINDS`    | adds `execute`          | Unattended task auto-approve set                                                |

Production websocket default:

```text theme={null}
wss://api.getpullrequest.com/gpr/ws/daemon
```

## Installer environment

| Variable               | Meaning                                             |
| ---------------------- | --------------------------------------------------- |
| `GPR_INSTALL_BASE_URL` | Release host (default `https://getpullrequest.com`) |
| `GPR_VERSION`          | Pin version                                         |
| `GPR_INSTALL_DIR`      | Binary directory                                    |
| `GPR_SKIP_PATH`        | Skip PATH modification                              |
| `GPR_FORCE`            | Reinstall over existing binary                      |

## Workspace settings (app)

Configured in the mobile app per workspace:

* Working directory (from `gpr setup`)
* Agent id
* Default model (`auto` by default)
* Max concurrent tasks (`1` by default)
* Provider (`byoa` by default)

## Agent launch config

The built-in catalog is enough for a normal install. Use [agents.json](/docs/reference/agents-json) when you need per-agent environment variables, a custom ACP command, or an agent that is not in the catalog.

The daemon service does not load your shell profile. Env vars in `.zshrc` do not reach agent processes unless you put them in `agents.json` or the service environment.
