Install guide
We check agents from outside. If the agent sits inside a company network, you run a small install next to it. That lets us monitor without opening their firewall.
Add a Private agent under Agents.
Embed the connector in your product startup, or paste the one-liner for a quick ops test.
Inject agent_id and token at deploy time. Whoever runs the agent never runs a CLI.
Open the agent for Summary, Reachability, Outcomes, and Incidents.
Published on PyPI as agent-status-sdk. The GitHub repo is private. Customers install from PyPI only.
Use Private (tunnel) when the agent has no public URL. No inbound firewall hole. Your connector dials out; independent nodes still probe from the outside.
Ordered hop from an independent node to your private agent. Your side only runs an outbound connector.
Independent nodes
Outside-inDistributed nodes originate the probe. Your VPC never opens inbound. This is the attestation path, not a claim that users can reach the agent.
Evidence
HTTP GET/POST from distributed nodes
Probe URL
PublicNodes hit Carmel’s public relay URL. This is not your VPC address — do not open inbound firewall for it.
Evidence
https://rora-tunnel.carmel.so/probe/{agent_id}
Tunnel relay
CarmelRelay holds your connector’s WebSocket and forwards each probe. Orchestration only — nodes still originate.
Evidence
wss://rora-tunnel.carmel.so/ws/connect
Your connector
OutboundProcess you run next to the agent. Dials out with the portal rtun_ token. Must stay running.
Evidence
agent-status expose --agent-id … --token rtun_…
Private target
Your networkConnector proxies the probe to an HTTP URL only your network can reach.
Evidence
--target http://127.0.0.1:8080 (or private IP / hostname)
Your agent
HTTPAny framework behind that URL is fine — it must answer HTTP. No public URL required.
Evidence
Private HTTP response → back through the same path
--target.pip install "agent-status-sdk[tunnel]" and keep expose running.rtun_ is shown once. Store it, or rotate later from Setup.Connector should read Connected.
With connector up, this reaches your private target.
--target or agent down behind it.