2026-10-11 16:37 UTC

Chert claims its released experimental CLI/SDK bridges independently hosted LiveKit agents into FaceTime audio/video calls through Chrome and manual iPhone admission, enabling consumer-call integration without Chert-hosted agent execution.

state: watchingheat: lowuncertainty: mediumconvergesscott: mediumvoice-agents webrtc multimodal-agentsChert Technologies Inc.Gary Gao

What is this?

Chert Technologies is an early-stage startup pitching 'Vapi for FaceTime': a developer platform for AI video agents that answer and place FaceTime calls, see what the caller shows the camera, and respond in real time — aimed at remote support, field service, telehealth intake, and onboarding ('voice agents are blind' is their positioning against phone-number and widget voice agents). It launched on Product Hunt Aug 16, 2026 (214 upvotes, #5 on the daily board, hunted by Garry Tan), and its managed FaceTime API is, per Chert's own FAQ, in controlled private preview — these snippets carry only self-reported claims and no independent validation. Notably, the web results cover only that managed Chert-hosted platform and say nothing about the open-source chert-facetime-opensource connector at the center of this case, so the connector's claimed Chrome-joined FaceTime → user-hosted LiveKit bridge still rests entirely on the repo's own README and a single supervised test call.

Why it matters to Scott

Chert's connector independently arrives at the separation Scott's Twilio realtime voice lab already built — consumer call transport (FaceTime via Chrome + iPhone admission, where his was Twilio) bridged to an independently hosted agent runtime over WebRTC (LiveKit, where his was Ultravox) — and with Talktome and Jauvex landing in the same window, the agent-on-a-call pattern is becoming a dated-receipts story his own bridge work predates. It stays medium rather than high because the working-bridge claim is still Chert's alone: a cheap npx + LiveKit test against his existing stack would settle it and extend the lab to video-bearing consumer calls, while the Apple-can-break-it fragility is the unofficial-bridge platform risk he has already lived through his LinkedIn Voyager client.
dev:project.twiliodev:technology.ultravoxip:framework.agent-native-computingdev:project.linkedinradar:egma-voice-agent-simulationradar:fusion-runtime-local-voice-stackradar:banshee-local-voice-claude-coderadar:placecall-agentic-business-callsradar:amazon-blocks-meta-muse-shoppingradar:sidetap-iphone-mcp-windows
queries asked of Scott's wikis
  • Twilio realtime voice lab bridge architecture
  • voice calls as coding-agent interface (Talktome / Jauvex pattern)
  • LiveKit WebRTC self-hosted agent media stack
  • unofficial bridge into consumer platform (Apple / WhatsApp-style) fragility and platform risk
  • self-hosted agent execution with own model keys vs vendor-hosted
  • camera / video input in the agent loop beyond voice

Measured heat

now 0 pts/hpeak 9 pts/hcomments 0/hpeers p14momentum: steady2 platformsage 600h
points/hour across evidence · reading as of 2026-10-12 02:59:37.977291+11:00 · deterministic, not a model opinion

How the heat travelled

09-16 16:41 (minted)⭐ origin echo-reconstructedChert releases an open-source FaceTime-to-LiveKit connector with a successful supervised audio/video call on a tested Mac, while explicitly
Chert Technologies Inc. on github (echo) · attributed from hn.story.49728749 · published time unknown
—
09-16 15:41first on hacker news · published · lag ?Show HN: Put an AI agent on a FaceTime audio/video call (open source, WebRTC)
garygao
—
09-16 15:41amplified on hacker newshn.story.49728749
garygao
peak 3 · 2 comments · 24% of case engagement
09-29 00:31amplified on hacker newshn.story.49886390
daraosn
peak 5 · 1 comments · 29% of case engagement
09-29 02:01amplified on hacker news 👑hn.story.49887154
rohanprichard
peak 4 · 4 comments · 38% of case engagement
09-30 14:44amplified on hacker newshn.story.49909700
daraosn
peak 1 · 1 comments · 9% of case engagement
09-16 16:20our radar first saw it · lag ?discovery anchor: hn.story.49728749—
pace: p53 vs 1032 stories at the 336h mark (now 600h old) — ahead of astra-skills-prompt-migration (1.1x), behind autobot-persistent-chatgpt-harness (0.9x)

Evidence (5) — ⭐ canonical anchor

sourceobjectauthorscorecomments
🟧 hnShow HN: Put an AI agent on a FaceTime audio/video call (open source, WebRTC)
Retrieved article excerpt

Open article · Retrieved 2026-09-16T16:22:28.185823+00:00

# Chert FaceTime Opensource

**An open-source CLI/SDK for deploying real-time video agents to FaceTime**

[version 0.1.1](https://camo.githubusercontent.com/fa087598cdae06ea7e238195500214639e54d5ae5206d3cc4512796cde6f0d23/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d302e312e312d626c7565)
[Chert Website](https://trychert.com/facetime)
[Y Combinator Spring 2026](https://www.ycombinator.com/companies/chert)

Chert FaceTime Opensource lets any builder put their AI agent on a live FaceTime call with a simple CLI/SDK. You own the agent's code, personality, voice, model, and avatar, and run it locally or deploy it yourself through services such as LiveKit. The connector runs on your computer and carries audio and video between FaceTime and a LiveKit room. It starts the connection without requiring you to build or host your agent through Chert.

Note

For managed outbound calling, incoming call monitoring and acceptance, and media bridging through an API, use [Chert's managed FaceTime service](https://trychert.com/facetime).

## Demo

Watch a LiveKit agent connect to FaceTime through the Chert CLI.

Chert.FaceTime.Demo.-.README.mp4

[
](https://private-user-images.githubusercontent.com/103468256/650766083-1fde265d-5e53-4d98-be87-b64ea07eeeff.mp4?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODk1NzYwNDcsIm5iZiI6MTc4OTU3NTc0NywicGF0aCI6Ii8xMDM0NjgyNTYvNjUwNzY2MDgzLTFmZGUyNjVkLTVlNTMtNGQ5OC1iZTg3LWI2NGVhMDdlZWVmZi5tcDQ_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwOTE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDkxNlQxNjIyMjdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xNzFmNTVmNjAxMjVhMGNmMjk2MzUyYjU5MDUzOTJjNThhZmQ1ZmU0MDUzNWM2MGY5YjBhMjJjY2MyNTY0YzI1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9dmlkZW8lMkZtcDQifQ.-FkCYOOqHoPLJqQSL1m98aZ7Q5fwIcIYWjYOQeaRSWc)

## How to use

**Before you start:** you need Node.js 22.22+, Google Chrome, a running LiveKit agent, and an iPhone to create a FaceTime link and admit the browser guest. For video, your agent must publish a video track as well as audio. Keep your computer running during the call.

The intended flow is:

1. Run or deploy your own LiveKit agent.
2. Have that agent join a LiveKit room.
3. Give the connector access to the same room and identify the agent participant.
4. Join the FaceTime link in Chrome and admit the browser guest on your iPhone.
5. Talk to your agent through FaceTime.

Your model keys stay with your agent. The connector only needs a short-lived room token. You do not need our optional starter agent or its OpenAI setup to bring your own.

### CLI: run it from your terminal

```
npx @trychert/facetime-opensource
```

Enter these details when prompted:

```
LiveKit server URL: wss://your-project.livekit.cloud
Room token: [hidden]
Agent participant identity: your-agent
FaceTime link: [hidden]
```

The token must allow joining, publishing, and subscribing to the agent's room, expire within one hour, and use a different participant identity from the agent. Use the agent's exact room participant identity, not its deployment name.

Chrome opens automatically. Click **Join**, admit the guest on your iPhone, then press **Enter** in the terminal to connect LiveKit. Press **Enter**, **Ctrl+C**, or **Stop test** to stop the connector. Your independently hosted agent's lifecycle stays under your control.

### SDK: use it in your code

```
npm install @trychert/facetime-opensource
```

In a Node.js `.mjs` file, load the connection details from your private environment configuration:

```
import { FaceTimeGuest } from '@trychert/facetime-opensource';
import { createInterface } from 'node:readline/promises';

const terminal = createInterface({ input: process.stdin, output: process.stdout });
let guest;
try {
  guest = await FaceTimeGuest.open({
    faceTimeLink: process.env.FACETIME_LINK,
    livekitUrl: process.env.LIVEKIT_URL,
    roomToken: process.env.LIVEKIT_ROOM_TOKEN,
    agentIdentity: 'your-agent',
  });
  await terminal.question('Join in Chrome and admit on your iPhone, then press Enter.');
  await guest.connect();
  terminal.close();
  await guest.closed; // Click Stop test in Chrome when finished.
} finally {
  terminal.close();
  await guest?.close();
}
```

The SDK opens Chrome on your computer. Call `connect()` after admission and `close()` to stop. Keep real tokens and FaceTime links out of committed code. Installing the package alone does not start the connector or your agent.

## How this works

The connector has **four core files**:

| File | Simple explanation |
| --- | --- |
| `src/sdk.mjs` | **Starts and stops the browser setup.** Opens the FaceTime tab and local connector tab. |
| `src/media.mjs` | **Supplies the agent's video and speech** instead of your webcam and microphone, and receives the caller's audio. |
| `src/hop.mjs` | **Connects the two tabs.** Carries media between them because FaceTime blocks direct LiveKit connections. |
| `src/livekit.mjs` | **Connects to the agent's room.** Sends caller audio into LiveKit and receives the agent's speech and video. |

Your voice travels from FaceTime through the connector to your agent's LiveKit room. The agent's speech and video travel back along the same path. The CLI is a terminal interface to this same SDK. Your agent runs separately.

**Status:** experimental, with a successful live conversation on the tested Mac. The updated local CLI passed a supervised FaceTime call with agent audio and video, alongside offline SDK and media checks. Longer-call reliability, other platforms, and other agents remain unverified. This is an unofficial project, not an Apple-supported integration.

See the [detailed guide](https://github.com/cherthq/chert-facetime-opensource/blob/main/docs/GUIDE.md) for the optional starter agent, configuration, tests, and development background. Licensed under [Apache-2.0](https://github.com/cherthq/chert-facetime-opensource/blob/main/LICENSE).

---

Built by Chert Technologies Inc.
garygao32
🟧 echo.github ⭐Chert releases an open-source FaceTime-to-LiveKit connector with a successful supervised audio/video call on a tested Mac, while explicitly Chert Technologies Inc.——
🟧 hnShow HN: Talktome – Voice calls with your AI agentrohanprichard44
🟧 hnShow HN: Jauvex 1.2, two-way voice chat harness for Claude+Codex+Grok+Jevdaraosn51
🟧 hnShow HN: Jauvex 1.3 released. Turn any agent task into automated workflowsdaraosn11

Interpretation history

Decision trace