Browse documentation

Reference

Configuration

Startup, saved tunnels, notifications, updates, and local targets.

View and change settings

Terminal
pwrp config
pwrp config get auto-update
pwrp config set health-check off

Boolean values accept forms such as on/off, true/false, yes/no, and 1/0. Hyphens, underscores, and dots are accepted in key names.

Available settings

KeyDefaultPurpose
auto-updateonAllow a native daemon to install new CLI releases and reconnect active tunnels.
auto-startoffReflect whether native startup is enabled through pwrp service.
boot-alloffConnect every enabled tunnel when the daemon starts.
boot-tunnelsEmptyComma-separated tunnel selectors to connect when the daemon starts.
notifyonShow native desktop notifications for important tunnel events.
notify-webhookEmptySend important events to a webhook URL.
health-checkonProbe local TCP services so pwrp ps can report reachability.

In Docker, self-update and desktop notifications are off by default. Update the image with Docker Compose and use container logs or a webhook for notifications.

Reconnect tunnels on startup

The easiest option is to save a selection while connecting:

Terminal
# Save every enabled tunnel
pwrp connect --all --save --detach

# Or save a specific selection
pwrp connect "Minecraft" "Website" --save --detach

You can also manage the startup selection directly:

Terminal
pwrp config set boot-all on
pwrp config set boot-tunnels "6fc2dc65,Minecraft Java"

On Windows, Linux, and macOS, run pwrp service enable after saving the selection. In Docker, use restart: unless-stopped and keep the Portwarp data directory on a named volume.

Persistent local targets

A target changes the destination hostname or private IP for one tunnel without changing the tunnel's local port. This is designed for Compose services but can also be used for another private device reachable from the CLI host.

Terminal
pwrp target list
pwrp target set "Minecraft" minecraft
pwrp target set "Website" 192.168.1.25
pwrp target unset "Website"

Reconnect the tunnel after changing a target. Destination selection follows this order:

  1. A one-time --local-host value on pwrp connect.
  2. The persistent value saved by pwrp target set.
  3. The local IP configured for the tunnel in the Portwarp dashboard.
  4. Automatic local discovery.

Explicit hostnames must resolve to a safe local or private address. An invalid explicit target causes a clear error and is never replaced silently with localhost.

Notifications

Terminal
pwrp config set notify on
pwrp config set notify-webhook https://example.com/webhook
pwrp notify test

# Clear the webhook
pwrp config set notify-webhook ""

Use a webhook endpoint you trust. The test command confirms whether each enabled channel can receive an event.

Health checks

With health checks enabled, pwrp ps tests whether each local TCP service is reachable. This distinguishes a healthy Portwarp connection from a service that is stopped or listening on the wrong address.

Terminal
pwrp config set health-check on
pwrp ps --once

Configuration location

Remote-control consent

Remote control starts disabled for every device. On the device that should receive actions, run pwrp remote enable, or open the desktop app and enable Settings > Remote Control > Allow this device to run remote commands. Disabling it later prevents new remote actions without stopping tunnels that are already running.

If pwrp remote status reports that remote control is not available for the account, the client keeps local tunnels running and does not poll for new remote commands.

CLI state is stored under ~/.portwarp for the current user. Use the CLI commands to change it instead of editing files by hand. In Docker, persist /home/pwrp/.portwarp with a named volume.