Prerequisites
You need a small amount of tooling on your local machine and at least one OpenAI key. Twilio is optional and only required if you plan to wire up real phone calls or SMS.
Required
| Tool | Version | Notes |
|---|---|---|
| Node.js | 18 or newer | Tested on Node 18 and 20. node --version |
| npm | comes with Node | The repo uses package-lock.json |
| OpenAI API key | — | Used for the Responses API, Realtime API, and embeddings |
Optional
| Tool | When you need it |
|---|---|
| Twilio account + number | Inbound phone calls, SMS sending/receiving |
| ngrok (or any public tunnel) | Exposing your local server to Twilio webhooks |
| Deepgram API key | Used by the dev “walkie” voice route |
| GitHub PAT | Required to run the embedded browser agent (Copilot CLI) |
Operating system
The backend is plain Node and runs anywhere Node runs. macOS and Linux are the primary development targets. Windows works fine via WSL2.
What you don’t need
- No separate frontend build. The vanilla HTML/JS frontend in
client/is served by the same Express server as static files. There’s no Next.js or React build step anymore. - No global database. SQLite is used via
better-sqlite3and lives inruntime-data/db/assistant.sqlite. - No Ruby/Bundler — only needed if you want to preview the docs site locally (GitHub Pages builds it for you on push).
Next: Installation.