Use scenarios
How AI vendors and their customers use Agent Bridge, and where tunr's tunnels and deploy still fit.
Agent Bridge Preview
A finance agent reads a customer's on-prem ERP database
Your invoice-reconciliation agent needs the customer's invoices and stock tables, which live in a Postgres database on their office network. No VPN, no shared password.
- The customer's IT installs the connector on a server inside their network and names the database
acme/erp-db. Their DBA applies aSELECT-only role generated bytunr connect pg-role. - They allow your vendor org (
finbot) in the dashboard. - Your agent asks for two hours, with a reason the approver can read:
tunr access request acme/erp-db --ttl 2h --reason "Reconcile October invoices" --wait 15m tunr access acme/erp-db --port 15432 - It reads through the local DSN. An
UPDATEfails with SQLSTATE42501; the customer sees it highlighted as blocked in their activity log. - After two hours the grant expires and the connection closes.
The customer's IT team approves, watches and cuts access
One connector serves every AI vendor the customer works with. Each request lands in the dashboard with the agent, resource, mode, duration and reason.
- Approve or deny under Approvals. Raw TCP (read-write) needs two different approvers.
- Watch every session and query summary under Activity; export the audit log as CSV.
- Cut: Revoke closes a grant's live connections; Cut all access revokes everything on a site;
sudo tunr connect killstops the connector locally, even without the relay. - Integrate: signed webhooks for grant events, and
/healthzon the connector for monitoring.
An agent framework requests access itself, over MCP
Run tunr mcp with the agent's token in its environment. The agent lists what it may request, asks with a reason, waits for a person to approve, and opens a local port.
{"mcpServers": {"tunr": {"command": "tunr", "args": ["mcp"],
"env": {"TUNR_AGENT_TOKEN": "…", "TUNR_RELAY_URL": "https://bridge.tunr.sh"}}}}
Tools: tunr_list_resources, tunr_request_access, tunr_access_status, tunr_open_access, tunr_close_access.
A nightly job that runs on tunr Early access
A report that runs at 07:00 UTC doesn't need a server of its own. Deploy the agent to tunr, wake it with cron or a signed webhook, and let it use the bridge with an identity tunr issues automatically.
tunr agent deploy invoice-reconciler --org finbot ./agent
tunr agent trigger add invoice-reconciler --org finbot --cron "0 7 * * *"
Hosted agents aren't generally available yet. Ask for early access.
A legacy system behind raw TCP, with two approvers
Some systems speak a protocol the bridge doesn't understand, like a file server. A tcp resource forwards bytes as they are, so it can't be made read-only: it only opens with a read-write grant, and that needs two different people at the customer to approve.
sudo tunr connect resource add file-server --kind tcp --target 10.0.0.9:445
tunr access request acme/file-server --mode rw --ttl 1h --reason "Index contract PDFs"
Also in tunr: tunnels and deploy
Share a local app for a client demo
Expose your local dev server and share the URL. No deploy, no config.
tunr share -p 3000
Add --demo so writes never reach your app, --freeze to serve the last good page if your server crashes, and --password or --ttl 1h to limit who sees it and for how long. A tunnel is public to anyone with the link and isn't end-to-end encrypted: the relay terminates TLS.
Collect feedback from a client
- Start the tunnel with the widget:
tunr share -p 3000 --inject-widget - Share the URL. They click the feedback button on the page and describe the issue.
- Messages show up in your terminal and in Dashboard → Feedback.
Host what your coding agent built
Ask Claude Code or Cursor to ship it: tunr_deploy builds and hosts the folder, tunr_app_logs reads the logs. Or from the terminal:
tunr deploy --name standup
Idle apps sleep and wake on the next request.
Frontend and API from one URL
tunr share --route /=3000 --route /api=8080