https://raw.githubusercontent.com/voygr-tech/placecall/HEAD/AGENTS.md
− You can place REAL outbound phone calls with the PlaceCall MCP tools, or by− sending HTTP requests to the PlaceCall API with `curl` (the next section says− which). There is no native voice tool; use the API. When− asked to call / ask a business / book / cancel by phone, DO IT via these calls.− No phone number at hand ("find me a florist and call them")? Use− `POST /v1/places/suggest` (below) to find the place; do NOT web-search.− (This is the same reference as `SKILL.md`, for Codex/AGENTS.md-based agents.)− - **A key is available** (`PLACECALL_API_KEY` or `VOYGR_API_KEY` set, or− `~/.codex/placecall.env` exists): use `curl` for everything, below. The MCP− - **No key, but the PlaceCall MCP tools (`suggest_places`, `place_call`,− `get_call_result`, `answer_question`) are in your tool list:** use them. They− sign in with OAuth and need no key. Same brief rules; confirm the number and− brief before dialing.− - **The MCP tools cannot** switch off recording or change the opening notice− (`place_call` takes only `target_phone`, `brief`, `language`), cancel a call,− or list calls. For any of those, the user needs a key and you use `curl`. Do− not try to change recording through the brief.− - **`place_call` timed out or failed with a connection, `internal_error` or− `upstream_unavailable` error?** It may have dialed. Repeat it once,− unchanged, within two minutes: an identical repeat comes back as− `duplicate_call` with the first `call_id` instead of dialing again. No− `call_id`: wait a few seconds and repeat once more; still none, stop and tell− the user the call may have gone through. Never reword it, never repeat it− after two minutes (even if the server's message suggests it), and never− place it with `POST /calls` instead: each can be a second real call.− - **Follow with `get_call_result` about every 5 s** until `in_progress` is− false: the call agent waits only ~60 s for an answer. Pass the user's own− words for a `pending_questions` entry to `answer_question` with its− `request_id`. `delivered: false` means it was no longer waiting (expired,− call ended, or already answered): do not ask again. When finished, report− `result`, `ended_by`, `line_kind`, `result_reason`, `summary`; do not wait− for `outcome_type`, which this path leaves out.− - Auth: header `X-API-Key: $PLACECALL_API_KEY` on EVERY request. Never echo the key.− - Key unset? Source it in the SAME command as the call:− commands). No such file: send the user to /checkout. Never glob for `.env`− files, which is credential hunting and sandboxes refuse it.− - No key? Self-serve at <https://api.voygr.tech/checkout?src=gh-repo> ("Get free− API key", emailed; that page also shows what a new key includes and the− current rates). Recovery: `/recover`.− Keep it as written: it tells PlaceCall which listing these instructions came+ You can place real outbound phone calls with the PlaceCall MCP tools, or with+ `curl` against the PlaceCall API; the next section says which. There is no+ native voice tool. When asked to call, ask a business, book or cancel by+ phone, do it through these calls. No phone number ("find me a florist and+ call them")? Use `POST /v1/places/suggest` (below) to find the place; do not+ web-search. (This is the same reference as `SKILL.md`, for+ Codex/AGENTS.md-based agents.)+ - A key is available (`PLACECALL_API_KEY` or `VOYGR_API_KEY` set, or+ `~/.codex/placecall.env` exists): use `curl` for everything below. The MCP+ - No key, but the PlaceCall MCP tools (`suggest_places`, `place_call`,+ `get_call_result`, `answer_question`) are in your tool list: use them. They+ sign in with OAuth. The same brief rules apply; confirm the number and brief+ before dialing. If the user can't finish the sign-in (headless, no browser),+ get a key by email code (below) and use `curl`.+ - Neither: sign the user up by email code (below), or send them to /checkout.+ - The MCP tools cannot switch off recording, change the opening notice, cancel+ a call or list calls. `place_call` takes `target_phone`, `brief`, `language`+ and an optional `escalation`, nothing else. Those options need a key and+ `curl`; with no key yet, sign the user up by email code. Do not try to+ change recording through the brief.+ - `place_call` timed out, or failed with a connection, `internal_error` or+ `upstream_unavailable` error? It may have dialed. Repeat it once, unchanged,+ within two minutes: an identical repeat returns `duplicate_call` with the+ first `call_id` instead of dialing again. No `call_id`? Wait a few seconds+ and repeat once more; still none, stop and tell the user the call may have+ gone through. Never reword it, never repeat it after two minutes (even if+ the server's message suggests it), and never place it with `POST /calls`+ instead; each can be a second real call.+ - Follow with `get_call_result` about every 5 s until `in_progress` is false;+ the call agent waits only ~60 s for an answer. Pass the user's own words for+ a `pending_questions` entry to `answer_question` with its `request_id`.+ `delivered: false` means it was no longer waiting (expired, call ended, or+ already answered): do not ask again. When finished, report `result`,+ `ended_by`, `line_kind`, `result_reason` and `summary`. Do not wait for+ `outcome_type`; this path leaves it out.+ - Auth: header `X-API-Key: $PLACECALL_API_KEY` on every request except the two+ sign-up calls. Never echo the key.+ - Key unset? Source it in the same command as the call:+ commands). No such file: you have no key yet; see the next item. Never glob+ for `.env` files; read only a path the user names. Sandboxes refuse
Showing the first 40 of each.