Kiosk on a Linux PC
More ▾
A live avatar full screen on a standard Linux PC with no GPU: the CLI renders it on the CPU, Chrome shows it in kiosk mode, and visitors talk to it.
What you’ll build
A screen that greets visitors with a live avatar that listens and answers. The avatar renders on the PC’s CPU, so a standard Linux PC with no GPU is enough.
You need:
- a Linux PC (x86_64 or arm64) with a screen, speakers and a microphone;
- Google Chrome;
- an API secret on the Creator plan or higher.
Steps
6 steps
Install the CLI
curl -fsSL https://install.bithuman.ai | sh sudo apt install -y ffmpeg python3-venv # Ubuntu/DebianThe Linux download includes
livekit-server, whichbithuman runstarts for you.Expected
bithuman --versionprints the CLI and engine versions.Give the kiosk its own API secret
Create a secret for this kiosk alone, so you can revoke it without touching anything else (API secrets). Put it in the kiosk’s environment:
export BITHUMAN_API_SECRET="<this kiosk's API secret>"Expected
bithuman accountshows your plan and credit balance.Download the avatar
Download it once, ahead of the first visitor.
bithuman pullprints the file’s path:AVATAR=$(bithuman pull kwame-warm-museum-guide) # or your own agent code echo "$AVATAR"A file always renders on this machine. Any Essence 2 or Expression 2 avatar works on the CPU.
Expected
A path ending in
kwame-warm-museum-guide.imx. The next runs reuse it.Start the avatar
bithuman run "$AVATAR"The first run also installs the conversation brain (about 350 MB). By default the conversation runs on bitHuman’s voice chat; set
OPENAI_API_KEYto use your own OpenAI account, orBITHUMAN_LOCAL=1for the local conversation brain.Expected
The CLI prints the page's URL, such as
http://127.0.0.1:8088/KWAMEWARMMUSEUMGUIDE. Open it in a browser, press the start button and allow the microphone: the avatar answers when you speak.Show it full screen
Open the URL in Chrome’s kiosk mode, with a profile of its own so the microphone permission is remembered:
google-chrome --kiosk --user-data-dir="$HOME/.kiosk-chrome" "http://127.0.0.1:8088/KWAMEWARMMUSEUMGUIDE"Expected
The avatar fills the screen with no browser chrome. The first time, allow the microphone once;
Alt+F4leaves kiosk mode.Choose online or fully offline
A session checks your API secret when it starts and keeps rendering through a network drop of up to 5 minutes, so this kiosk needs the network to start a conversation.
For a site with no internet at all: Offline license is only available to Business and Enterprise clients who want to run realtime avatars completely locally, off the internet — e.g. kiosks, trade shows, ATM machines, embedded screens. Linux PCs and terminals; arranged through sales. See Fully offline.
Expected
Online, the kiosk is ready: it needs the network each time a session starts. For fully offline, talk to sales before you deploy.
All steps done. Next: make it your own.
How it works
bithuman run starts a local livekit-server, the conversation brain and the avatar on this PC. Chrome joins as the visitor: it sends the microphone and shows the avatar’s video, all on 127.0.0.1. The page is served on the loopback address only; --host 0.0.0.0 (with BITHUMAN_ALLOW_PUBLIC_BIND=1) opens it to the network.
Make it your own
- Your avatar: create one from a portrait (Create your own avatar), then
bithuman pull <agent code>. - Its persona and voice: Persona and Voices.
- Start at boot: run
bithuman run "$AVATAR"from a service withBITHUMAN_API_SECRETin its environment, and start the kiosk browser from the desktop session’s autostart. - What it costs: active session time, talking or idle, billed to the second at the rates on Pricing. The conversation’s rate depends on the brain you choose.
- Speed on your PC: the CPU-only rows on Performance are measured on a standard desktop CPU.
Troubleshooting
| Symptom | Fix |
|---|---|
bithuman exits with code 77 | No API secret: export BITHUMAN_API_SECRET, or run bithuman login once. |
livekit-server is not found | Install again with the one-line installer; the Linux download includes it. |
| The avatar does not answer | Run bithuman doctor: it names the missing part (credential, brain, ffmpeg). |
| Chrome asks for the microphone every time | Keep the same --user-data-dir; the permission is stored in that profile. |
| No sound in kiosk mode | Choose the speaker as the default output in the system’s sound settings, then reload the page. |
| The picture stutters | Close other heavy programs; see the CPU-only rows on Performance for the reference machine. |
