Skip to main content
Students build LiveKit voice agents on their own laptops. Each team creates its own LiveKit Cloud project and model API account; you provide Chert project access and an already provisioned FaceTime line. Use inbound FaceTime Audio as the baseline.

Before the event

Use dedicated workshop Chert projects: owner/admin is a privileged role, and the current CLI has no limited student role for claiming a line. Complete project and line setup with Chert before students arrive. Do not hand out production API keys or ask students to reuse a hosted demo agent’s name.

Plan capacity and handoffs

One line = one connected CLI = one active call at a time. More agent names in LiveKit do not create more FaceTime capacity. If there are more teams than lines, schedule testing slots while other teams build their agents locally. Give each team a private assignment card:
  • Chert account, project name and UUID.
  • Exact FaceTime address and time slot.
  • Agent dispatch name.
  • Who pays for LiveKit and model usage, the budget, and support contact.
Keep secret values out of the assignment card and public guides. Teams store their own credentials privately in .env.local. At the end of a slot, the caller hangs up, the student waits for room cleanup, stops Chert and confirms line release, then stops the agent. The next team runs chert doctor before starting. Hold the handoff if cleanup or release failed; only the organizer should coordinate a takeover.

Rehearse the actual student experience

Before opening a line to students, follow the public guide in a fresh folder: install CLI beta.3, build the starter, approve browser login, check credentials from the agent folder, and run both terminals. On each intended line, verify:
  1. A relevant two-way conversation using the student’s model account.
  2. A follow-up and interruption.
  3. Caller hangup and room cleanup.
  4. A fresh second call and second cleanup.
  5. Ctrl+C and confirmed line release.
Record the date, Node/CLI versions, line and outcomes. Doctor, a recent heartbeat, and automated tests do not establish a working FaceTime conversation.

Costs and scope

Prewarming and doctor --agent dispatch real jobs. The supplied starter waits for a participant before opening its model session, but modified agents may incur charges earlier. Set budget ownership and limits before the event. The public JavaScript starter has been checked for installation, syntax and SDK compatibility; its live two-call rehearsal is still required. A previous Muse demo does not qualify this starter or every workshop line. Video/avatars require separate development and validation. Do not add --muse to ordinary student agents. The CLI runs on student/operator computers. Line provisioning, infrastructure maintenance and media troubleshooting remain with the organizer and Chert.