Start

Run the app

One command starts everything for one creator. You need that creator's trained models in checkpoints/<creator>/; if you don't have them yet, build them first.

./alive check huberman      # everything on disk?
./alive up huberman         # start; about 20 seconds
# open http://127.0.0.1:8800 and ask a question
./alive down                # stop everything

What starts, and how one question flows through it

Four small servers on your machine. The viewer in your browser talks only to the first; it calls the others in turn.

your browser the viewer page app :8800 runs the chain, streams timings and frames back answers :8788 searches their transcripts, asks the LLM, checks every claim has a source voice :8791 speaks the answer in their cloned voice, streaming ~2 GB on the card face :8730 audio → face motion → their face, pasted on a real clip of them. up to ~7 GB 1 the question 5 frames + sound 2 answer text 3 the audio 4 audio in, frames out creators/<creator>/live.env says which voice, which face model, which real-body footage, the resting pose and the example questions. Nothing in the code names a person. ./alive starts the voice before the face: the face's speech encoder keeps the card memory it takes

Where the time goes

Measured on one Huberman question with a 71-second answer, drawn to scale:

0 s 25 50 75 100 125 s writing the answer 40.6 s voice: first sound +1.2 s face: first frame +11 s (waits for the whole voice) they speak 71 s of speech, frames made at 2.7x real time
Writing the answer is most of the wait: 20-80 s depending on the question; this one took 40.6 s. While it writes, the viewer plays a resting loop of the creator (blinking, breathing) so the page never looks stuck. The bar under the picture shows these timings live for every question.

The commands

commanddoes
./alive up <creator>starts voice, face, answers, app, in that order, and waits until each answers
./alive downstops all four and frees the card
./alive statuswhat is running, on which port, and card memory
./alive check [creator]every file the app needs, and what is missing
./alive logs <service> [-f]a service's log: voice, face, style (answers) or app
./alive restart [service]one service, or all

Switching creators: ./alive down, then ./alive up <other>. One creator runs at a time.

When something is wrong

you seecause and fix
a service says failed at start./alive logs <service>. Most often a missing file: ./alive check names it
"out of memory" in the voice or face logsomething else is on the card. nvidia-smi, stop it, ./alive restart
stuck on "thinking" for minutesthe answer engine is waiting on the LLM; check data/answers/.protokey and ./alive logs style
no soundbrowsers block sound until you click the page; click the picture once
the picture never leaves "getting <name> ready"the resting loop is still being made, about 10 seconds after start; ./alive logs app