Changelog
Release notes and version history for the bitHuman platform.
Note Product-level changes only. For per-version notes, see the Python SDK CHANGELOG and the Swift SDK releases.
July 2026
Agent creation is image-only (2026-07-10)
The video creation input is removed for all models (essence-1,
expression-1, essence-2, essence-2-max, expression-2):
- Provide a portrait
image(or let the prompt generate one) — bitHuman generates the identity video internally, always 10 seconds, authored so idle loops seam perfectly (first frame == last frame). User footage can’t guarantee that loop contract, which is why it’s no longer accepted. - Never send
videotoPOST /v1/agent/generate: as enforcement rolls out platform-wide, requests carrying it are rejected with400 VIDEO_INPUT_NOT_SUPPORTEDbefore anything is billed — never silently ignored. video_aspect_ratiois removed with the video input;durationis deprecated (accepted but ignored — the internally generated identity video is always 10 seconds).- Existing agents are unaffected, and
POST /v1/files/uploadstill accepts video files as assets — video just isn’t a creation input. essence-2-maxcomes with the combinedessence-2creation: its identity derives from the same internally generated identity video. See Essence 2 Max.
essence-2-max — the premium Essence 2 model renamed (2026-07-10)
The Essence 2 branding is now Essence 2 and Essence 2 Max:
essence-2-maxis the new canonical name of the premium model (previouslyessence-2-quality) — the highest-fidelity Essence 2 renderer, served directly on dedicated cloud GPUs. The API acceptsessence-2-maxeverywhere a model is requested (POST /v1/agent/generate,POST /v1/video/generate, the embed-tokenmodelfield, and?model=session pins);essence-2-qualityremains accepted as a deprecated alias during the migration, so nothing breaks. Some server responses (supported_models,409messages, model downloads) may keep theessence-2-qualityfamily name until the rename rollout completes — see Naming & migration. See also Essence 2 Max.essence-2is the standard tier name — the light-name retirement completed (the formeressence-2-lightwas consolidated intoessence-2on 2026-07-05): the standard photoreal model, distilled to run everywhere (GPU / Apple Neural Engine / CPU / WebGPU-WASM), and the default. See Essence 2.- Rates unchanged.
essence-2stays 4 credits/min cloud andessence-2-max8 credits/min cloud, each 0.5× when self-hosted; creation stays 500 credits (the combinedessence-2creation still covers both models).GET /v1/pricingnow advertisesessence-2-max— the canonical name — in bothagent_generation.by_modelandtalking_video.rates; the deprecated alias is no longer advertised. - Docs moved. The model guides now live at
/concepts/essence-2 and
/concepts/essence-2-max; the old URLs
(
/concepts/essence-2-light,/concepts/essence-2-quality) redirect.
Expression 2 creation price: 2000 credits (2026-07-10)
Creation pricing is now per engine:
expression-2creation (and model-add) costs 2000 credits — up from 500. Expression 2 is the fully generative engine; each per-identity train runs substantially more GPU time than an Essence 2 train, and the price now reflects that cost.- The Essence 2 family stays at 500 credits (
essence-2combined creation — one charge, both tiers — andessence-2-quality); v1 stays at 250. autobills the routed model’s rate — 500 when your subject routes toessence-2(photorealistic person), 2000 when it routes toexpression-2(cartoon / animal / stylized character). The dashboard shows the range before you generate;GET /v1/pricingadvertisesautoat the 2000 ceiling so callers never see a number lower than the possible charge.
Essence 2 & Expression 2 — launch rollout begins; model pages refreshed (2026-07-10)
The second-generation models reach their announced launch date and the
rollout is underway. Creation access opens progressively (a v2 creation
ahead of your account’s access returns
503 MODEL_NOT_YET_AVAILABLE and bills nothing;
the dashboard’s v2 creation entries ship separately from the API). Alongside the
rollout, the model documentation gained the shipping characteristics:
essence-2— photorealistic people; animates real identity footage at its native resolution (full-HD 1080p identity video by default) at ~25 fps; serves GPU → Apple Neural Engine → CPU, fully on-device on Apple silicon, and a browser-local tier is rolling out (?render=local, WebGPU with WASM fallback) as per-identity web bundles publish.expression-2— stylized and universal characters; fully generative across the whole 416×720 scene at 20 fps from a single photo (no face detection or cropping anywhere in the pipeline), which is why any character morphology animates naturally; serves GPU → Apple Neural Engine → CPU plus on-device Apple silicon.- The family overview’s device matrix and creation guide were refreshed to match.
Plan concurrency, offline licensing preview, and one pricing page (2026-07-10)
Rounding out the launch — plan allowances and a documentation overhaul:
- Concurrent avatar sessions are now a plan allowance — Creator 3,
Pro 10, Business 50, Enterprise 200, Custom unlimited. Enforcement is
rolling out: once active, a session start beyond the allowance returns
403 CONCURRENCY_LIMIT_REACHED, and live sessions are never cut off mid-stream by the limit. See Session concurrency. - Offline licensing is coming soon — run avatars fully self-hosted with per-device, per-model signed credit bundles minted through your online account: Business $999/year prepacks 120,000 credits (Essence 2 + Expression 2); Enterprise $1,999/year prepacks 240,000 credits (adds Essence 2 Max). Self-hosted minutes meter at half the cloud rate. Preview at Pricing → Offline licensing.
- Pricing is now the single home of every number — per-model serving rates (cloud and self-hosted), creation credits, talking-video rates, and the plan table live there; other pages link to it instead of repeating figures.
- Naming and migration history has one home — every alias, retired name, and response-name lag is consolidated at Models → Naming & migration.
- Every API operation ships a runnable example — all 33 operations in the interactive API reference now carry copy-paste curl samples with realistic bodies and next-step hints.
- Android documentation restored — the Kotlin / Android SDK page and the Android hello example are reachable again, and the voice reference URLs consolidated at Text to speech.
Multi-agent avatar rooms — audio binds to the launching agent (2026-07-09)
The cloud avatar now pins its audio to the agent that starts the
AvatarSession (via the LiveKit lk.publish_on_behalf attribute), fixing
wrong-agent audio binding in rooms with more than one agent participant. The
avatar previously bound to the first agent it saw, so with a facilitator +
persona in the same room it could latch onto the wrong agent — staying silent
for the persona and never returning playback_started/playback_finished.
Server-side fix; no SDK or plugin upgrade required. See
LiveKit → Multiple agents.
essence-2-light consolidated into essence-2; force-tier slugs (2026-07-05)
The Essence 2 request surface is now just essence-2 (plus the explicit
essence-2-quality reference tier):
- The
essence-2-lightname is retired. Create and render withmodel: "essence-2"— the light tier is what it serves. Requests namingessence-2-light(or the oldessence-2-light-aneslug) get a targeted400pointing atessence-2. Existing agents and saved links keep working (retired values route to theessence-2chain), andessence-2-lightremains the internal family name you’ll still see insupported_models,409messages, and model downloads. - Serving chains + force tiers. By default
essence-2andexpression-2sessions route down a serving chain (GPU → Apple Neural Engine → CPU) with automatic overflow. New force-tier slugs —essence-2-gpu/essence-2-ane/essence-2-cpuandexpression-2-gpu/expression-2-cpu/expression-2-ane— pin one tier for benchmarking/placement testing and never overflow. See tier pinning. - Talking videos:
POST /v1/video/generateacceptsessence-2(4 credits/min) in place of the retired name;essence-2-quality(8) andexpression-2(4) unchanged. - Where each model runs: the family overview gains a device/runtime matrix (cloud tiers, self-hosted, on-device Apple silicon, browser-local status).
Android / Kotlin SDK docs restored (2026-07-04)
The Android SDK page and the Kotlin hello-avatar example are back. The on-device Essence runtime for Android — ai.bithuman:sdk:2.3.6, a self-contained arm64-v8a AAR on Maven Central — is unchanged and installable; only its documentation had been removed. It’s pinned at 2.3.6 (Essence, Engine ABI v7, Beta) and renders Essence .imx models fully on-device.
Pick-for-me creation, combined Essence 2, model adds & downloads (2026-07-02)
The model-release UX wave — one creation surface across all five model families, plus post-creation adds and artifact downloads:
model: "auto"— let the platform pick.POST /v1/agent/generatenow acceptsauto: an LLM classifies your input (the image if provided, else the prompt) and routes it — a photorealistic person →essence-2, a cartoon / animal / exotic creature →expression-2. It’s the default selection in the dashboard’s create flow; API callers send it explicitly (an omittedmodelkeeps the historicalessence-1default). Charges the routed model’s 500-credit rate.model: "essence-2"— one creation, both Essence 2 tiers. A single 500-credit charge trains Essence 2 Light and makes Essence 2 Quality available from the same identity video — pick the tier at launch (?model=or the embed-tokenmodelfield).- The Essence 2 subject gate. Explicit
essence-2*creations require a photorealistic human subject — anything else is rejected with a clean422 MODEL_SUBJECT_MISMATCHbefore billing and before any agent row is created (autoroutes instead of rejecting). See the subject gate. - Per-model creation pricing. Creation is billed per model — 500 credits for the second generation (
essence-2,essence-2-quality,essence-2-light,expression-2,auto), 250 for v1 (essence-1,expression-1).GET /v1/pricingnow returns the per-model map (agent_generation.by_model) — the old flat field is gone. POST /v1/agent/{code}/models— add a model to an existing agent. No re-creation: addessence-1(250),essence-2(combined, 500),expression-2(500), orexpression-1(free, instant — the v1 foundation model drives the agent’s existing image + voice, nothing trained). Async adds poll viasupported_models; failures auto-refund; re-POSTing never double-charges.GET /v1/agent/{code}/model/download— download your generated model. A 302 to the artifact (?redirect=falsefor JSON):essence-1→.imx,essence-2-light→.lebundle.imx(licensed weights),essence-2-quality→.pkl,expression-2→.avatar(the Mac-runnable CoreML build). Per-family error matrix including the poll-able404 MODEL_ARTIFACT_NOT_READY.- The CLI recognizes every model family.
bithuman run/info/pullnow sniff any bitHuman artifact and answer honestly:essence-1.imxruns locally as always;.lebundle.imx/.pkl/.avatarare recognized with a clear handoff to where they run (launch matrix). New:bithuman pull <AGENT_CODE>downloads your own agent’s model through the endpoint above. - Essence 2 Quality is now gated on the source video. Its identity prepares on demand from the agent’s source footage — an image-only agent can never render Quality, so it’s no longer advertised in
supported_modelswithout a video, and requesting it returns409 MODEL_NOT_GENERATEDwith the real blocker named (… requires a source video, which this agent doesn't have). This corrects the earlier “never gated” behavior/wording (see the 2026-07-02 gate note below).
Official model guides + natural idle for the second generation (2026-07-02)
- Per-model official documentation. Each second-generation model now has a full product guide — what it is, how creation works (inputs, pipeline steps, realistic durations), serving tiers and
?model=pinning, idle behavior, pricing, and limits: Expression 2, Essence 2 Quality, Essence 2 Light — plus a new session behavior & troubleshooting guide covering connect latency (warm first line vs scale-from-zero overflow), idle vs speaking behavior, and the common errors. - Expression 2: real-footage idle on every creation. During silences the avatar now plays a looping clip derived from the identity itself — cropped from your source footage when available, or captured from the trained model’s rest pose for photo-only creations — instead of generated idle frames. Baked in automatically at creation; existing agents’ idle clips were regenerated.
- Forward-only looping. Idle and base-video loops now always play forward, wrapping from the last frame back to the first — footage never plays in reverse. Applies to
expression-2(all tiers, including on-device) andessence-2-light(idle and speech, all tiers). supported_models+ early model gate. Agent responses (status, get, list, and the embed-token response) now includesupported_models— the canonical model families the agent can be launched as right now.POST /v1/embed-tokens/requestaccepts an optionalmodelfield, validated up front; requestingexpression-2/essence-2-lightbefore the agent’s trained model exists returns a clean409 MODEL_NOT_GENERATED(“agent<code>’s<model>model hasn’t been generated yet”) — on talking video, before any charge. (Update, later on 2026-07-02:essence-2-quality— originally never gated here — is now gated on the agent’s source video, the footage its identity prepares from; see the model-release entry above.) A live?model=override to an ungenerated model now ends the session cleanly withavatar_error: "model_not_generated"instead of hanging.
Announced — Essence 2 & Expression 2 (launching July 10, 2026)
bitHuman’s two second-generation avatar models — essence-2 and expression-2 — are announced and launch July 10, 2026 on every surface (the REST API, the embed widget, the dashboard, and the SDKs). Until then, essence-1 and expression-1 are available today. See Essence 2 & Expression 2 for the full guide.
expression-2— the second-generation expression engine. Audio-driven, real-time avatar video from a single photo: agent creation trains a small per-identity model, then the engine synthesizes fully generated motion live. (Update 2026-07-02: per-model creation-time expectations are now documented — roughly 45 minutes forexpression-2; see the per-model guides.) Serves on three tiers — gpu, cpu, and ane (Apple Neural Engine). 4 credits/min cloud · 2 credits/min self-hosted.essence-2-quality— the highest-fidelity tier of the Essence family: a heavy GPU renderer for close-up, hero-quality output on cloud GPUs. 8 credits/min cloud · 4 credits/min self-hosted.essence-2-light— the cost-effective tier: a distilled renderer that runs across gpu, cpu, and ane — including fully on-device, where audio and video never leave your hardware. 4 credits/min cloud · 2 credits/min self-hosted.
All three are train-on-create via POST /v1/agent/generate (500 credits, one-time) and serve through the existing session flows unchanged. The v1 models (essence-1, expression-1) remain fully supported at 250 credits creation.
June 2026
Talking video generation — new API (2026-06-29)
- New endpoints:
POST /v1/video/generate+GET /v1/video/{job_id}. Render a finished talking-video mp4 of one of your agents from text or audio. With text input, the agent’s own voice speaks your script; with audio input, your hostedaudio_urldrives the render directly. The API is asynchronous — submit a job, then poll for the public mp4 URL, output duration, and credits charged. Launch engines:expression-2(4 credits/min) andessence-2-quality(8 credits/min), billed per minute of output rounded up; a failed render is automatically refunded. Limits: 120 seconds of output, 5000 characters of text. See Talking video generation and the Video API reference.
Agent generation — v2 model names accepted (2026-06-29)
POST /v1/agent/generatenow accepts the v2 model names. Themodelparameter takesessence-2-quality,expression-2, andessence-2-lightas supported generation targets (alongsideessence-1/expression-1). The v2 models launch July 10, 2026 (upcoming). Update 2026-06-30: the legacy aliases (elevate,embody,embody-gpu,essence-2-mobile) were retired ahead of GA — requests using them now return a400 VALIDATION_ERRORnaming the current model list. Share links are unaffected.
Model naming — versioned public taxonomy (2026-06-26)
- The avatar model families now have versioned public names. The
modelparameter on agent generation (and the viewer’s?model=selector) accepts the consolidated namesessence-1,essence-2-quality,essence-2-light,expression-1, andexpression-2. Essence 2 ships in two tiers — Quality (essence-2-quality, the high-fidelity cloud GPU renderer) and Light (essence-2-light, the efficient distilled renderer). The older valuesessenceandexpressionmap toessence-1/expression-1; the pre-release codename values (elevate,embody,essence-2-mobile) were transitional aliases and have since been retired (see the 2026-06-30 note above — they now return a validation error naming the current model list). Share links are unaffected. Documentation, dashboards, and app labels now use the new family names.
Python SDK bithuman 2.3.10 (2026-06-23) — self-hosted streaming lag fix
- Streaming compose no longer degrades over a long utterance. Self-hosted streaming now holds a steady frame rate for the full length of a turn (long utterances used to slow down as they grew), with byte-identical output. The audio stream also resets at the start of each turn so idle frames can’t shift lip-sync.
Python SDK bithuman 2.3.9 (2026-06-23) — barge-in / interrupt fix
- Interrupt (barge-in) no longer wedges the runtime. Interrupting the avatar mid-utterance previously froze it after the first barge-in (the interrupt path shared the terminal stop signal). 2.3.9 routes interrupts through a separate event, drains in-flight frames, and resumes on a fresh runtime — so a user can talk over the avatar repeatedly without it getting stuck.
- Recommended LiveKit stack:
bithuman2.3.9+ withlivekit-plugins-bithuman1.6.3 andlivekit-agents1.6.x (pluspillow).
Python SDK bithuman 2.3.8 (2026-06-16)
- Maintenance release on the 2.3 line (2.3.5–2.3.7 were not published).
Python SDK bithuman 2.3.4 (2026-06-12) — Linux CA auto-discovery
- Linux CA auto-discovery. The SDK now finds your distro’s CA bundle automatically on Linux — self-hosted auth (
AsyncBithuman.create()) works zero-config on Debian, Ubuntu, SUSE, and Alpine-glibc layouts. The/etc/pki/tls/certs/ca-bundle.crtsymlink workaround needed on ≤ 2.3.3 is obsolete. Thanks to the customer report that pinned down the Debian/UbuntuProblem with the SSL CA certfailure. - Env-var override preserved.
CURL_CA_BUNDLE/SSL_CERT_FILEtake precedence over auto-discovery when set — a stale or wrong value will still break auth, so unset them unless they point at a valid bundle. - macOS wheel tags. The 2.3.4 macOS wheels are tagged for macOS 26+ (arm64). On older macOS, pip reports
No matching distribution found— see the Python SDK page for options.
May 2026
2.3.0 (2026-05-28) — layered architecture + PyPI wheel split
- PyPI wheel split.
pip install bithumanis now the Python SDK library only (~5 MB) —from bithuman import AsyncBithumanstill works. The bitHuman CLI moved to the siblingbithuman-cliwheel; install viapip install bithuman-cli,brew install bithuman-product/bithuman/bithuman-cli(the oldbithumanformula keeps working as a deprecated alias), or the universalcurl -sSL https://raw.githubusercontent.com/bithuman-product/homebrew-bithuman/main/install.sh | shinstaller — all three deliver the same Rust binary that printslibessence 1.19.1 ABI 7 / bithuman 2.3.0onbithuman --version. - CLI surface trimmed. The binary now exposes exactly six runtime subcommands:
run,render,info,pull,list,doctor(plusinitfor scaffolding a new project — seven in total). Legacy 1.x verbs (voice,text,avatar,stream,speak,action,generate,asr,tts,models pull|list,cleanup) were removed during the 2.x line and stay removed. - Wheel matrix. The Python library
bithumanships on PyPI for macOS arm64 and Linux x86_64 + aarch64 (manylinux). The CLI wheelbithuman-cliis macOS Apple Silicon only on PyPI — on Linux, install the CLI via the universalinstall.sh/ tarball, not pip. Python 3.10–3.14. (Latest patches:bithuman2.3.10,bithuman-cli2.3.25.) - Repo layout. Public source lives in two repos:
bithuman-sdk-public(since archived; examples now live inhomebrew-bithuman/Examples) — docs source, runnable examples, and landing pages — andhomebrew-bithuman— the Homebrew tap, universalinstall.sh, and tarball release mirror. The engine and language SDKs ship as prebuilt, statically linked artifacts on PyPI and SwiftPM. BITHUMAN_BRAIN_*→BITHUMAN_AGENT_*env-var rename (carried through from Wave 5 of the 2.x line):BITHUMAN_AGENT_PORT,BITHUMAN_AGENT_PYTHON,BITHUMAN_AGENT_SCRIPT. The oldBITHUMAN_BRAIN_*names are still read with a deprecation warning.- No external API breaks. Python (
from bithuman import AsyncBithuman) and Swift (import Bithuman) public APIs are unchanged from 2.2.x. Migration for existingpip install bithuman && bithuman runusers is install-time only:pip install bithuman-cli(orbrew install bithuman-product/bithuman/bithuman-cli) to keep thebithumanconsole-script. - Engine ABI bumps to
v7(libessence 1.19.1) — addsbe_runtime_tick_compose_from_mel(compose a tick directly from a mel feed). Additive on top of v6; old SDK builds keep working. (be_set_default_audio_encoderis an additive, ABI-unchanged entry point and did not bump the ABI.) - LiveKit integration. The upstream pin-relaxation PR (livekit/agents#5882) has since merged —
livekit-plugins-bithuman(1.6.3) now pinsbithuman<3,>=0.5.25, sopip install bithuman livekit-plugins-bithumanresolves cleanly. - Removed surfaces. The
bithuman.utilsandbithuman.audioPython modules are gone from the slim 2.3.0 wheel (helpers are inlined into the examples). Elevate was removed from the cloud model family but is retained as the on-device engine (vendoredlibelevate, used by AvatarUIKit and theexpression/iphonesample app) — it was not deleted from the platform.
Python SDK bithuman 2.2.2 (2026-05-25) — Linux CLI tarballs restored
- CI-only cleanup release; no API / runtime changes. Same Python wheel content as 2.2.1.
- Linux CLI tarballs (
bithuman-x86_64-unknown-linux-gnu.tar.gzandbithuman-aarch64-unknown-linux-gnu.tar.gz) ship on the GitHub Release again — they had been missing since 2.0.1 because of two container-build blockers, both now fixed inmain. - Pin
bithuman==2.2.2if you wantpip installAND the standalone Linux CLI binary from the same tag;==2.2.1is fine for wheel-only consumers.
Python SDK bithuman 2.2.1 (2026-05-25) — bithuman-cli[local] extra
Note 2.2.0 was skipped; 2.2.1 is the first published build of this release, with identical source content. Install 2.2.1.
- New
pip install 'bithuman-cli[local]'extra adds a fully on-device conversation brain tobithuman run. Flip it on withBITHUMAN_LOCAL=1; no API key required, no outbound network. - Stack:
whisper.cpp(STT) +llama.cpp(LLM, default Qwen 2.5 0.5B-Instruct Q4_K_M) + Supertonic 3 (TTS, 31 languages, voice M1 default) + Silero VAD. All in-process — no Ollama or other server. - All three backends have first-party iOS C++ cores, so the same
.gguf/.bin/.onnxmodel files are reusable when porting to mobile. - New plugins live in
livekit.plugins.bithuman.{WhisperSTT, LlamaCppLLM, SupertonicTTS}alongsideAvatarSession. The avatar-only install path is unchanged (heavy deps are lazy-imported). - Tuning via env vars:
BITHUMAN_LOCAL_WHISPER,BITHUMAN_LOCAL_LLM,BITHUMAN_LOCAL_LLM_FILE,BITHUMAN_LOCAL_VOICE,BITHUMAN_LOCAL_LANG,BITHUMAN_INSTRUCTIONS. See Python SDK. - Footprint: ~860 MB on disk (auto-downloaded from HuggingFace on first run), ~1.5 GB RAM, ~717 ms warm load, ~1.4 s warm end-to-end on Apple Silicon.
- Cloud path (
BITHUMAN_LOCALunset,OPENAI_API_KEYset) is byte-for-byte unchanged.
Python SDK bithuman 2.1.0 (2026-05-24) — figure → avatar
- Retired legacy “figure” terminology. CLI flag
--figures-rootis now--avatars-root(old name kept as a deprecated alias). Default cache moved from~/.cache/bithuman/figuresto~/.cache/bithuman/avatars. - No runtime behavior change; alignment with the public-facing “avatar” product term.
Python SDK bithuman 2.0.2 (2026-05-24) — graceful drain
bithuman runnow cancels active sessions and waits up to 2 s for libessence/HDF5 teardown before the process unwinds. Eliminates theH5F.c: decrementing file ID failed+ exit 134 SIGABRT on Ctrl-C / LaunchDaemon stop. Required for production-style supervisors.
Python SDK bithuman 2.0.1 (2026-05-24)
AsyncBithuman.cleanupis nowasync—await b.cleanup()works (was raisingTypeErrorand segfaulting at interpreter shutdown).- CLI error message polish:
bithuman pull <bad-slug>andbithuman renderno longer reference renamed subcommands. essence-render --helpshows the correct prog name (wasbithuman).
Python SDK bithuman 2.0.0 (2026-05-22) — bundled-CLI release
pip install bithumannow ships abithumanconsole-script that runs the full talk-to-your-avatar stack (Rust CLI + embedded livekit-server + the agent brain (STT/LLM/TTS) + browser UI). One install, one command, one URL — same Rust binary as the Homebrew CLI.- The runtime library API (
import bithuman,AsyncBithuman,from bithuman import Avatar) is unchanged — existing library consumers keep working. - The legacy 1.x Python CLI is preserved as the
essence-renderconsole-script. - Wheels: macOS arm64, Linux x86_64, Linux aarch64. Python 3.10+.
- Quickstart:
pip install bithuman && bithuman run— see the quickstart for the full flow.
v1.18.5 (2026-05-18)
- Unified
bithuman: onepip install bithuman= full prior1.11.3API + native engine, 100% backward-compatible (==1.11.3code runs unchanged). - Native engine: far faster cold load + lower memory than pure-Python, exact output parity. Loads fresh console
.imxTAR exports natively. - Python 3.9–3.14 (Linux x86_64/ARM64, macOS Apple Silicon). Pin
>=1.18.5(1.18.0–1.18.4 predate the unification; Windows / macOS-Intel stay on==1.11.3).
v1.17.x (2026-05-14)
bithuman avatar --openai— workstation Realtime, browser-rendered avatar.voice/textauto-pick cloud vs--local; explicit flags override.- Interactive TUI for
voice(mic/bot meters + transcript);BITHUMAN_NO_TUI=1opts out. - Flutter plugin renamed
bithuman_avatar→bithuman(one Dart codebase, mac/iOS). - Canonical OpenAI Realtime path is now the Rust CLI’s
--openaimode.
v1.16.0 (2026-05-14)
- Streaming API on Swift (
pushAudio/frames()/resetStream()). Flat per-tick cost on long sessions. - Default Realtime model:
gpt-realtime-mini.
v1.12.0 (2026-05-12)
- First unified release: Python, Swift, CLI from one source, identical output.
- Linux + Windows Python wheels (no WSL).
April 2026
- Chat Widget v5 — text/voice/video in one floating widget; themes, FAB styles, JS API (
open/close/setTheme/destroy). - FAQ KB — search always runs; removed dedup that dropped valid results.
- Voice — Siri-style animation; multilingual TTS (+11 languages including Thai, Chinese, and Arabic).
- Streaming — instant text to UI without waiting for audio sync.
March 2026
- Platform UI — sidebar (Explore / Library / Billing / Developer); Explore replaces Community, Library replaces My Agents; credit balance in top nav.
- Docs — screenshots + navigation refreshed for the new UI.
February 2026
- Expression Avatar v2 — 24% faster pipeline; no concurrent-session artifacts.
- Self-hosted GPU container — up to 8 sessions/GPU; ~50 s cold / 4–6 s warm; ~5 GB weights auto-cached.
- Examples overhaul — fixed Compose
env_file; standardized.env.example; addedAGENTS.md,llms.txt, OpenAPI spec. - REST API —
/v1/agent/{code}/speak,/v1/agent/{code}/add-context; consistent error codes. - SDK —
livekit-plugins-bithumanExpression support;bithuman.AvatarSessionunified cloud/CPU/GPU; animal mode for Essence.
January 2026
- Essence Avatar — CPU-only
.imxrendering, 25 FPS, Linux / macOS / Windows. - Platform API — agent generation, CRUD, file upload, dynamics/gestures.
- Integrations — LiveKit cloud plugin, iframe embed (JWT), webhooks, Flutter example.
Note Feature requests and bugs: GitHub and Discord. See the full community guide.