Skip the webhook and tunnel work.

ProPR Connect delivers GitHub webhooks to your self-hosted ProPR stack, even behind NAT or a firewall. It owns the public webhook endpoint, relays events to your stack, and holds the shared GitHub App's private key so your deployment never needs it.

ProPR Connect Outbound connection
GitHubissues, PRs, comments
webhook→
Connectverify, route, replay
WebSocket→
Your stackpolicy, agents, records
Successful deliveryNo payload retained by Connect
Delivery recoveryFailures stay briefly available for replay
app.propr.dev → optional managed tunnel → Local ProPR API
Connect carries events and optional UI traffic. Planning, repositories, credentials, and agent execution stay in the stack you run.

Operational overview

Use Connect with your own stack.

The relay, replay cache, seats, and managed tunnel connect GitHub and the ProPR deployment you operate. Repository clones, agents, credentials, task state, and logs remain on your infrastructure.

Add a managed backend with ProPR Hosted.

ProPR Hosted pairs Connect with a dedicated ProPR VM that the ProPR team operates. Connect handles identity, routing, Hosted billing, and lifecycle status. Hosted is open for paid signups with limited capacity, and Connect checkout shows whether a new instance is available.

The slowest part of self-hosting is letting GitHub reach you.

ProPR runs next to your code and credentials: on a laptop, a workstation, a private server, or an internal network. GitHub still needs a stable address for its events, and on those machines inbound webhooks are the slowest part of the first run.

Connect is that address. It accepts GitHub deliveries, replays failures, authorizes relay access, and provisions optional UI tunnels. Planning, agents, repositories, and logs stay in the stack you run.

Routing, relay tokens, tunnels, recovery, and preview storage.

Routes GitHub events

GitHub sends webhooks to Connect. Connect verifies each event and forwards it to the ProPR stack authorized for that installation.

Starts free for 3 users

Community access covers three developers. Add Plus seats when a fourth developer needs to trigger work through Connect.

Removes inbound setup

Run your stack behind NAT, a firewall, or a private network; nothing needs a public webhook endpoint. Connect caches failed deliveries for up to 24 hours and replays them when your stack reconnects.

Provides relay tokens

Your stack requests scoped GitHub installation tokens from Connect and never stores the shared GitHub App private key.

Enables hosted UI access

Plus provisions a managed Cloudflare tunnel at t-<instance>.propr.dev, so app.propr.dev reaches your local ProPR API and live updates.

Preserves full-resolution originals with Plus

Community publishes eligible inline review copies of each visual preview to GitHub. GitHub’s inline limits are 10 MiB for images, 10 MiB for videos on Free accounts, and 100 MiB for videos on paid accounts. ProPR applies the limit that matches the repository, and uses the Free limit whenever the paid limit is uncertain.

Opt in to Plus and ProPR also preserves a full-resolution original in private Cloudflare R2 storage, open to installation users through the authenticated ProPR Connect viewer. Plus includes 25 GiB of storage per installation, a 500 MiB per-object maximum, and 90-day retention. See pricing for the plan comparison.

Losing Plus stops new managed uploads; stored originals remain viewable to installation users until they expire. Uninstalling the GitHub App deletes the installation’s stored previews automatically. Copies already published to GitHub stay in place.

Bring chat to your instance through Connect.

The hosted gateway at https://mcp.propr.dev/mcp is not yet available. It will route chat clients to your registered instance with the same tools as direct MCP. Today, connect them directly to https://<your-instance>/api/mcp. Set up MCP.

Authorize one installation

Sign in through the browser, choose an installation, and consent to scopes and repositories. The grant binds to that installation's instance. Revoke it in Connected apps and new requests stop; work already accepted may continue.

Reach the registered instance

The gateway forwards each call through your tunnel to /api/mcp with a token bound to your instance, which must opt in to trusting Connect. Both sides check membership, grant limits, and permissions on every call.

Use the whole workflow

Plan and publish issues, start and steer work, inspect diffs, review and fix findings, request a guarded merge, and manage non-secret configuration. Both routes use the same tools, limited by your permissions.

Keep the instance running

Hosted MCP runs over the Plus managed tunnel at t-<instance>.propr.dev. Agents execute and progress persists on your instance, so closing the chat leaves the work running.

The gateway processes tool arguments and results, which can contain prompts, source code, diffs, and artifacts, with no end-to-end encryption through Connect. It keeps no application store of them. Direct MCP bypasses Connect entirely. Retention and logging details.

See delivery health without opening your stack.

The Connect dashboard shows the active installation, seat usage, deliveries, replay health, relay tokens, and managed tunnels. Your stack dials out over a WebSocket, and you replay failed deliveries from the dashboard.

Connect operations Operational
Successful delivery ACK received The webhook payload is cleared after the stack accepts it.
Failed delivery Replayable The payload remains available for recovery for up to 24 hours.
Relay token Revocable Each token is scoped to its GitHub App installation.
Managed tunnel Plus Provision, health-check, rotate, or remove the hosted UI path.
Activity 24 hours
Repository User
A code-native view of the delivery, recovery, token, tunnel, and activity states exposed by the live Connect dashboard. Account data is omitted.

GitHub to Connect to your local ProPR.

Events flow through Connect to the stack you run, and pull requests come back through GitHub. With the hosted UI, your browser reaches the local ProPR API through a scoped managed tunnel.

GitHubIssue and PR events from your repositories.
ProPR ConnectVerifies, routes, and replays deliveries; issues relay tokens.
Self-hosted ProPR stackIsolated agents, branches, and pull requests.
GitHub reviewDiff, comments, checks, merge — where the team already works.
app.propr.devThe hosted UI, loaded in your browser.
t-<instance>.propr.devManaged Cloudflare tunnel, scoped to API and realtime paths.
Local ProPR APIYour stack — repositories, tasks, and logs stay here.

ProPR work runs in your stack.

Repository clones, task state, logs, provider credentials, agent containers, and execution live in your deployment. Connect processes full webhook payloads and clears them after successful delivery; it keeps payload-free delivery statistics separately. Opt-in Plus preview storage separately receives selected artifacts and metadata, which may contain application UI or code. The full data boundary.

Runs hosted

Webhook routing, tunnel provisioning, delivery recovery, relay-token issuance, and opt-in Plus preview storage and viewing.

Runs in your stack

Planning, indexing, agent execution, logs, repositories, and Docker workspaces.

Lives in GitHub

Branches, commits, pull requests, comments, checks, reviews, and eligible inline preview copies.

Hosted access. Self-hosted execution.

Connect routes events and hosts selected previews.

Your ProPR stack owns plans and task history. Connect moves GitHub events, relay authorization, and hosted UI traffic between GitHub and that stack, and stores selected Plus preview originals for authenticated review.

Your ProPR stack runs every agent.

Agents execute in isolated Git worktrees and Docker workspaces inside your deployment. Connect never runs an agent. Previews you upload to Connect may show application UI, code, or other repository-derived content.

Managed tunnels stay scoped to ProPR.

The tunnel at t-*.propr.dev carries ProPR API and live-update traffic and nothing else. Every unrelated path returns 404.

Relay and tunnels, managed for you.

Connect delivers webhooks over your stack's outbound WebSocket and keeps failed payloads replayable for 24 hours. Plus users provision, health-check, rotate, and remove managed UI tunnels from the dashboard.

Use it with the rest of ProPR.

The guided propr setup in the quickstart enrolls you with Connect and the shared GitHub App. Self-hosting covers the rest, including running your own GitHub App.

Run propr setup where your code lives.

The guided pass enrolls with Connect and starts the stack on your own infrastructure.