Before you start
Ask Chert for the private-preview package and pilot access. Use Node 22.23.2 or 24.14.0, a POSIX host, and a durable local state directory. Start your agent using its normal command.1
Install and initialize
From your application’s directory, replace the tarball path with the file supplied by Chert:This creates
chert.json and chert-handler.ts. It refuses to overwrite existing files. Keep the config and state out of version control.2
Connect the generated callbacks
Edit Use a non-secret session reference and a short-lived, call-scoped token. Expiry is an absolute Unix timestamp in milliseconds and must fit the token lifetime. Return Honor
chert-handler.ts to call your application’s existing session logic. No HTTP server is needed.A ready-session response has this shape (values come from your application):
{ action: "decline" } when you cannot prepare the call.The generated handler deliberately declines until you implement it. A returned
accept must mean the session is actually ready. Preparation has a four-second budget; the CLI does not make slow agent cold starts faster.context.signal and context.remaining_ms. Recovery must inspect the original operation, never repeat preparation. Report settled: true only when no further creation can complete, and cleanup: "clean" only after verifying resources are cleaned up or absent.The installed package includes a complete session-store example in node_modules/chert-local-transport-proof/examples/byor/. Adapt it to your application’s durable storage and cleanup logic.3
Compile and check
Export the handler as an ES module and point the config at its compiled JavaScript. Use your application’s existing ESM build. For a new standalone project, set
"type": "module" in package.json and compile the generated file:check is non-allocating and currently exits 3 for partial diagnostics. Read the reported checks; this alone is not a failed installation or proof of a working FaceTime call.4
Enroll, activate, and run
Follow Connect your project to create an enrolled config and activate your chosen line. Run the connector with that config:Keep your agent and connector running. Coordinate a real inbound audio test with Chert, confirm conversation audio, end the call, and verify cleanup before testing again.

