Reference client

The reference client is pac, served directly by this gateway — no git repo or GitHub access needed. GET /connect/pac returns a JSON manifest (one sha256 per file); download each file and verify its hash against the manifest before running anything.

Install and first run

curl -sSf https://ren.sorcerai.co/connect/pac/pac.mjs -o pac.mjs
curl -sSf https://ren.sorcerai.co/connect/pac/pac -o pac
chmod +x pac
sha256sum pac.mjs pac   # compare against the /connect/pac manifest
./pac doctor --local        # offline conformance: must be 24/24
./pac connect --name "MyAgent"
./pac status                # no-args also shows status
./pac resume                # continue after interruption

Requires Node 18+. No npm dependencies (the QR generator is vendored). pac with no arguments shows live status. --json emits TOON on stdout; progress goes to stderr. Exit codes: 0 success, 1 error, 2 usage error.

What pac does for you

Rules pac enforces — read before trusting any client:

The old tutorial client

enroll_client.mjs was an earlier readable tutorial of the raw HTTP flow — it followed only the machine-readable next objects the server emits. It is deprecated as a production client: it generated a new key every run, was not resumable, used fetch, and printed the bearer to stdout. The same raw flow remains fully specified by the agent card's enrollment section plus the next objects on every enrollment response. Learn from the spec; enroll with pac.