Developers · iPhone & iPad
A real-time avatar for your iPhone and iPad app
The bitHuman Swift package renders Essence 2 — a photoreal person — or Expression 2 — any character — on the iPhone or iPad itself. Your app passes in 16 kHz speech from any voice stack and draws the frames it gets back.
From 12 October 2026, API and SDK use requires the Creator plan or higher.
Install
Install
.package(url: "https://github.com/bithuman-product/homebrew-bithuman.git", from: "2.19.0").product(name: "Expression2", package: "homebrew-bithuman") // any character
.product(name: "Essence2Kit", package: "homebrew-bithuman") // a photoreal personWhat you need: Xcode 26+, API secret (from the docs)
Conversation
Add a conversation
Your own speech recognition, language model and voice
Any stack works: the SDK takes 16 kHz mono speech. OpenAI Realtime returns 24 kHz audio: resample it to 16 kHz before you pass it in. The converter is in the docs.
Build the companion screen
The companion guide walks through the whole loop on the phone: the SDK, the API secret, resampling, replies, interruption and closing the avatar with the screen.
Or let bitHuman run the conversation
The web embed runs a managed agent on bitHuman's servers with your persona and, if you like, your own OpenAI-compatible model; a LiveKit agent can use a bitHuman cloud avatar. Either way the avatar renders in the bitHuman cloud (the web embed's default), not on the phone.
When the avatar renders in your app on the device and you use your own voice and language services, bitHuman receives usage metering only, never audio, video or conversation text.
Requirements
Requirements
- Essence 2 needs a physical iPhone or iPad; it does not run in the Simulator. Expression 2 also runs in the Simulator.
- The first run downloads the avatar model.
- Device and OS floors for each model are in the docs.
Performance
Measured on real hardware
| Device | Essence 2 | Expression 2 |
|---|---|---|
| iPhone · Swift packageiPhone 15 | 2.16× real time2026-09-27 | 5.55× real time2026-09-27 |
| iPhone · Swift package · held 10 miniPhone 15 | 1.32× real time2026-09-25 | 5.15× real time2026-09-25 |
Pricing
What it costs
| Item | On the device (Essence 2, Expression 2) | bitHuman cloud avatar | Managed voice chat (all-inclusive) |
|---|---|---|---|
| Credits per minute of active session time | 2 | 4 | 10 |
| At top-up rates ($1 = 100 credits) | about $0.02 | about $0.04 | about $0.10 |
From 12 October 2026, API and SDK use requires the Creator plan or higher.
Rates from GET https://api.bithuman.ai/v1/pricing, as published on docs.bithuman.ai/pricing.
Examples
Examples you can clone

iOS — Expression 2
A SwiftUI app with a talking character, rendered on the iPhone or iPad.
- Runs on
- iPhone, iPad
- Conversation
- No: it speaks a bundled clip, or lip-syncs your microphone
- Needs
- API secret, Xcode 26, an iPhone or iPad
- Screenshot coming
iOS — Essence 2
A photoreal person with idle motion, rendered on the iPhone or iPad.
- Runs on
- iPhone, iPad (iOS 26)
- Conversation
- No: it plays a bundled line
- Needs
- API secret, Xcode 26, a physical iPhone or iPad
Checklist
Before you ship
Limits
Not available on this platform
- A conversation brain that runs on the iPhone: the conversation is your app's, or runs in the cloud.
- Offline operation: a session needs a connection to start, and keeps rendering through a network drop of up to 5 minutes.
More
