Your first hour
From an empty folder to an agent answering a phone call: keys, an agent, a simulation, a number, your own phone, going live.
From an empty folder to an agent answering a real phone call. Each step names the command and the
console screen that does the same thing, and says how to tell it worked. You need a Pinecall sign-in;
if you run the runtime yourself, pinecall-runtime setup comes first, and you sign in to it instead.
1. Sign in and check what you may use#
$ pinecall login https://cloud.pinecall.io
$ pinecall limits
sandbox
minutes 0 of 30 · starts again 1 Nov
…
evals 0 of 500 · starts again 1 Nov
simulations 0 of 10 · starts again 1 Nov
…
bought numbers 0 of 0
keys yours: none · lent by the runtime: deepgram, google/gemini-3.5-flash-lite, …
The last line is the one that matters: whose vendor keys your calls run on. Every call needs a model, speech recognition and a voice. If a vendor or a model is lent by the runtime (Pinecall's own keys), you add nothing. If it is in neither list, the call is refused until you bring a key for it. Console: Overview ▸ Limits shows the same meters, and Settings ▸ Providers marks each vendor Your key, The runtime's key, The runtime's key, some models or Add your key to use it.
The sandbox's 30 minutes are a month's: they start again on the 1st (UTC). Written conversations and simulations spend no minutes.
2. Make an agent#
$ pinecall login
$ pinecall new acme --agent front-desk
$ cd acme
login signs this machine in, once. new writes the project — acme, the business — and
--agent its first agent, front-desk, in agents/front-desk/, and its pinecall.json: the org
it runs in. Your sign-in opens the sandbox; a server's keys are made on purpose, later, under
API keys.
3. Talk to it in writing#
$ pinecall chat
Free, instant, no phone. If the agent answers, your keys are in order. If it is refused naming a vendor, go back to step 1: that vendor has no key you can use.
4. Let a simulated caller try it#
$ pinecall simulate --persona in-a-hurry --judge
A model plays a caller for a full conversation and the judges score it. Written, so it costs no minutes; it counts against your month's simulations. Console: Simulations, and the call's page for the score. Your first ten cases turns what it finds into tests.
5. Get a number#
A number belongs to your org and points at one agent. There are two ways, both under Numbers ▸ Add a number:
- Buy one. Pick a country and an area code. It is bought on Pinecall's Twilio account and counts
against your numbers limit (
pinecall limitsshows it). A bought number answers calls; it does not place them.Terminal $ pinecall numbers buy --country ES --area 91 --agent front-desk --prod - Bring your own. Connect your Twilio account once, then import a number you already own. With
more than one account,
--accountnames the one that owns it.Terminal $ pinecall carriers add twilio --account-sid AC… --user SK… $ pinecall numbers import +34910000000 --agent front-desk --prod
Numbers are production's: the sandbox tests on them with the phone line in the next step.
6. Call it from your own phone#
$ pinecall line from +34600000000
$ pinecall start
Now call the number from that phone. You reach your own sandbox copy, running on your computer,
with your changes and your terminal showing the conversation. Everyone else who calls reaches
production as before. Stop pinecall start, or run pinecall line forget, and your calls go back to
production. Console: Phone testing.
Watch the call as it happens in Calls; when it ends, its page has the transcript, the judges' score, the latency of each stage and the cost.
7. Go live#
$ pinecall deploy --prod --note "first release"
Pinecall runs your project for you, so nothing of yours has to stay switched on. In Agents ▸ Apps you see the release, its logs, and can stop or start it. To run it on your own server instead, see Running on your own server.
Where each limit shows#
| you see | meaning |
|---|---|
429 naming a limit, and credits.exhausted in the agent's log |
a limit ran out: minutes, simulations or numbers. Past the month's evals a call is not refused: its judges are skipped |
| a call refused naming a vendor | no key for it: yours, or one Pinecall lends you |
| "starts again 1 Nov" | the month's meters reset on the 1st, UTC |
More: Limits and provider keys, Phone numbers, Sandbox and production.