config.toml. Add Sempera once, sign in through your browser, and Codex can preview calls and texts for you to approve.
Status: Unverified. The server side is built and tested against the published standards, but no real Codex account has completed the connection yet (Supported clients). If a screen differs from these steps, tell hello@sempera.org and this page will be corrected.
Add the server and sign in
Add the server to~/.codex/config.toml, then sign in. Codex opens your browser, registers itself and listens on a loopback port for the answer.
Or use a credential
If you prefer a credential in an environment variable, create a REST credential with the phone permissions you want under Settings, Connected clients, and point Codex at it. Codex tries the bearer token before OAuth. An ordinary workspace API key is refused on the phone tools.The phone tools Codex sees
The
@sempera/ai Codex plugin is a business agent-building kit and has no phone tools.
Check the connection
Ask the assistant for your Sempera Phone number and what is left this period. That is a read: it places nothing and needs onlyphone:read. The same read over plain HTTP, with a phone credential from Settings, Connected clients:
What happens on a call
- The assistant calls
phone_preview_call(orPOST /v1/phone-tasks/preview) with the number, the task, thepermitted_actionsand an optionalmax_minutes. Nothing is dialled or reserved. The answer carries an approval link, orstanding: trueif a standing approval covers that number. - You open the link signed in to Sempera, read the exact request and approve or decline. The approval is good for five minutes.
- The assistant calls
phone_start_callwith the same values. Any change is refused. The task moves toreserved, which means queued, not dialling. - The assistant follows the task with
phone_get_taskuntilcompleted,failedorcancelled. Theresultis markeduntrusted: it was written from what someone else said.
phone_preview_text and phone_send_text. The full rules, limits and refusal codes are in Personal phone plan.
Before the first call
The plan is not open for purchase yet. When it opens, a first call also needs a number on the account and a published Sempera agent pinned to the plan; until then a start is refused withPHONE_PLAN_INACTIVE, PHONE_NUMBER_MISSING or PHONE_AGENT_UNPINNED. Calls and texts go out only while it is between 9 a.m. and 9 p.m. in both Toronto and Vancouver (noon to 9 p.m. Eastern); outside that window they are refused with PHONE_OUTSIDE_HOURS.