Get started / Overview
Build a voice agent
your team can supervise.
One class answers phone, WhatsApp and web. Every call is logged, scored at hang-up, and one tap from a person.
Quickstart
From nothing to an agent that answers, in ten minutes — in TypeScript, Ruby or Python.
Try it
1import { Agent, tool } from "@pinecall/agents";23/** Brightside Dental's front desk. Never clinical advice. */4export default class FrontDesk extends Agent {5 slots: Slot[] = [];6 // agenda() and Slot: your calendar's client and its type, left out here.78 /** Open times on the day the caller named. */9 @tool()10 async freeSlots(day: string) {11 return (this.slots = await this.agenda().free(day));12 }1314 render() {15 return this.slots.length > 016 ? <p>Offer only these times.</p>17 : <p>Ask what day works for them.</p>;18 }19}
Running in three steps
1
Install the CLIOne CLI for TypeScript, Ruby and Python.
$npm i -g pinecall2
Sign inOpens the browser and signs this machine in, once.
$pinecall login3
Run the agentThe process you deploy. Call it from the sandbox console.
$pinecall startExplore the platform
AgentsThe state, the tools and the prompt, all in one class.Knowledge & memoryWhat it knows by heart, the bases it searches, and what it keeps about a caller.TestingWrite ten cases, run them, keep them in CI. Every real call judged at hang-up.CLIpinecall: run the agent, talk to it, test it, and configure it from a terminal.MCPThe same verbs for an assistant: Claude Code, Codex, Cursor and the rest, from an empty folder to an agent.SDKsTypeScript, Python or Ruby: the class, the view, the tests and production, per language.IntegrationsPhone numbers, SIP, WhatsApp and a web widget served by the same agent.ConsoleLive calls, judges and one-tap handoff from the console or your phone.API referenceEvery door of the gateway, and every event and command on the wire.Self-hostingRun the whole stack on your own machine and LiveKit, under Apache-2.0.