Before you begin
You need:- Docker.
- VS Code or Cursor with the Dev Containers extension.
git.
The dev container uses port
8449 (dashboard and API) and 5060 (SIP) on
your machine. Stop anything else that uses them, such as a Fonoster install.Run Fonoster
1
Clone the repository
Clone Fonoster into a new folder. Use a regular clone, not a
--filter=blob:none keeps the full history but downloads old
file contents only when you need them, which makes the download much smaller:git worktree: the container can’t see a worktree’s .git.2
Open it in the dev container
Open the folder in your editor and choose Reopen in Container. If the prompt doesn’t show,
run Dev Containers: Reopen in Container from the command palette.The first time takes about 10 minutes. The editor builds the workspace image, starts Postgres,
NATS, Routr, RTPEngine, MinIO and Envoy, installs the packages and builds them. It’s done when
the setup log prints:
3
Start Fonoster
Open a terminal in the editor. It runs inside the container. Start every component:This runs the API server, AppBridge, Autopilot and the dashboard from source. The Roomr node
is already running as a container.
Each one reloads when you save a file. Leave it running.
4
Sign in to the dashboard
In a second terminal, print the dashboard address and the owner sign-in:Open http://localhost:8449 in your browser and sign in. You land in a
default workspace.
5
Call an agent from your browser
In the dashboard, go to Agents and choose New agent. Pick a template and choose
Create agent. On the agent’s page, choose Talk to agent and allow the microphone.The call connects, you hear the beeps, and the call ends by itself.
The dev container uses fake speech and AI providers, so you need no vendor keys. You hear a
beep, not a voice: each beep is something the agent says. The fake caller says two scripted
lines, the agent answers each with “Echo: …”, asks “Are you still there?” when nobody
talks, and then hangs up. The real vendors are listed too, with placeholder platform keys. To
use one, add its key under Vendor keys, or set it in
.dev/overlay/appbridge.yaml or
.dev/overlay/autopilot.yaml and run npm run dev:config.What you ran
npm run dev is the command you run every day. The dependencies start with the container, and your
code runs on top of them with reload. Your configuration and secrets live in .dev/, which git
ignores.