DOCS Talk to Alive ← Back to the site
Documentation

From zero to alive.
Five steps, one JSON.

Everything you need to make an Alive Agent Avatar, carry it out of the studio as one portable file, and put it to work anywhere — your website, your device, your model, your voice. Five first-class types: SVG · ASCII · Sketch Line · Hybrid · Kinetic Typography.

The quickstart

Michael's five steps. That's the whole product.

The spine of NetShow Alive fits in one breath. Here is each step in plain words, with the exact clicks.

Go to the website

Everything happens at voice.netshow.ai — no install, no account, no meter. The front door shows the living cast; the studios are one click away. Pick the door that fits: the guided Create studio for characters of any species, the Face Overlay Lab for a photo-real Hybrid from a portrait (crew preview — it asks for a crew password today), or the Universal Stage to watch all five types answer the same agent side by side.

THE EXACT CLICKS
  1. Open the front door.
  2. Choose a studio: Create · Universal Stage · Face Overlay Lab (crew preview — password today).

Make your avatar

Build the character you actually want — person, pet, mascot, dragon, or robot. The Create studio walks you through it top to bottom; the Face Overlay Lab starts from a portrait and gives you every gauge — eyes, brows, lips, mustache, boil, breathing — plus draggable glasses, hats, and necklaces. (The lab is in crew preview today — it asks for a crew password at the door; the Create studio is open to everyone.) Nothing you dial is baked in; it all stays live and editable. Not sure which of the five styles fits? The styles menu shows every lane live — pick there, then come back.

THE EXACT CLICKS — CREATE STUDIO
  1. "What are you creating?" — pick the character category.
  2. "How do you want to start?" — template, photo, or from scratch.
  3. "Choose the character structure" then "Choose visual styles".
  4. "Customize the character" — dials, colors, outfit.
  5. "Preview live states" — watch it listen, think, and speak.
THE EXACT CLICKS — FACE OVERLAY LAB (PHOTO HYBRID)
  1. Upload a portrait (it lands under YOUR UPLOADS) or pick a cast face.
  2. Dial the sliders — the dial reference below explains every one.
  3. Drag accessories where you want them.
  4. "Save avatar" — the complete look, every gauge, this browser.

Output your JSON

One click turns your avatar into one portable, sealed file: your-name.alive.json. It is self-contained — a Hybrid even carries its base image inside — and integrity-sealed with a sha-256 hash, so any surface that wears it can prove it arrived untouched.

THE EXACT CLICKS — WHERE THE EXPORT BUTTONS LIVE
  1. Create studio → "⬇ Download your Alive Agent Avatar (.alive.json)" on the final Save & use step — the guided, open-to-everyone path to the sealed file.
  2. Universal Stage → "Export packages" row — ↓ svg · ↓ sketch-line · ↓ kinetic.
  3. Face Overlay Lab → "⬇ Export avatar" — downloads your Hybrid as name.alive.json. Crew preview today: the lab asks for a crew password first, so start with the two doors above.
  4. ASCII authoring lives on the Semantic Stage.
  5. The Create studio's other button, "⬇ Studio tuning file (.character.json)", is different on purpose — that one is studio tuning you can keep editing, not the sealed package. The difference matters →

Put it in your device or wherever

Copy the file wherever your page lives and give it a tag to wear. Two lines is the whole integration — the same tag works inline in a card, as a floating bubble in the corner, or fullscreen on a kiosk or Raspberry Pi display (mode="kiosk").

YOUR-PAGE.HTML — THE WHOLE INTEGRATION
<script type="module" src="/alive-site/alive-element.js"></script>
<netshow-alive src="/alive-site/your-avatar.alive.json"></netshow-alive>
THE EXACT CLICKS
  1. Put your-avatar.alive.json next to your page (same site — why, kindly explained).
  2. Paste the two lines. Size the tag with your own CSS.
  3. Optional: mode="floating" for a corner bubble, mode="kiosk" for a display.

Point it to your model and voice, boom done

The avatar has no opinions about your stack. Feed it your model's text stream through the five-line feeder and the face thinks, speaks, and gestures with the reply; feed your TTS loudness into el.level(v) and the mouth follows your voice. No key ever touches our servers — and for a wiring test that costs nothing, the built-in offline agent answers with agent="local".

YOUR-MODEL.JS — THE FIVE-LINE FEEDER
import { attachTextAgent } from '/alive-site/alive-adapter-text.js';
const feeder = attachTextAgent(document.querySelector('netshow-alive').session);
feeder.userSaid(question);   // your user's turn
feeder.beginTurn();          // your model is thinking
for await (const chunk of yourModelStream) feeder.delta(chunk);
feeder.endTurn();            // boom — done
THE SAMPLE RELAYS — WHERE YOUR KEY ACTUALLY LIVES
  1. The model call doesn't happen in the page — it happens in a tiny relay you run. Your page POSTs the question same-origin to /turn; the relay calls your model and streams the words straight back into the feeder above.
  2. We ship three, ready to copy, in /alive-site/samples/ — pick your stack: relay-node.mjs (Node 18+, nothing to install), relay.py (Python 3, standard library only), or relay.php (PHP with the stock cURL extension). Each is about a screenful, commented for a first integration. relay-demo.html is the page side — this exact feeder, already wired; copy it next to a running relay (it needs one to answer). The full wiring — the same-origin proxy snippet, persona pinning, the whole contract — is written down on the text-turn wiring page.
  3. Your provider key lives in exactly one place: an environment variable on your own server (MODEL_KEY). It's never in the page, never in anything a visitor's browser sends or receives, and never on our servers. Pointing at a model on your own machine instead? Then no key exists anywhere at all.
One file, one law

What a .alive.json is — and what it isn't.

NetShow Alive keeps its files honest. There are exactly two kinds of JSON in your life here, and each has one job.

name.alive.json

The sealed, portable package

  • Your finished Alive Agent Avatar — one of the five first-class types: SVG, ASCII, Sketch Line, Hybrid, Kinetic Typography.
  • Self-contained: a Hybrid carries its base image embedded; nothing else to ship.
  • Integrity-sealed: a sha-256 hash over the canonical payload. A package whose declared hash doesn't match is refused whole — no half-loaded faces.
  • Stamped with its generator and license, capped at 20 MB.
  • Any <netshow-alive> tag can wear it via src=. This is the file the open marketplace lists and sells.
name.character.json

The studio tuning file

  • A working file from the Create studio's "⬇ Studio tuning file (.character.json)" — your dials and choices, saved so you can come back and keep editing.
  • Not sealed, not integrity-hashed, not meant for src=.
  • Think of it as the recipe; the .alive.json is the finished dish.
The same-origin law, kindly explained. A <netshow-alive> tag only fetches a package from the same site the page itself lives on — a cross-origin src= is refused before a single request goes out. That's not a limitation to work around; it's two promises we make your visitors: their browser never phones a third party just to show a face, and no surprise host can swap the character out from under your page. Moving an avatar between sites is deliberate and easy: copy the file. It's one file. That's the point.
Honesty in the seal. The integrity hash is computed over deterministic, sorted-keys JSON. A package with a declared hash that fails verification is rejected whole. A package with no hash (or a browser without WebCrypto) is accepted and honestly reported as unverified — we never fake a green check.
The self-host bundle, honestly. Running the whole engine on your own server (or fully air-gapped) is real — our offline bundle builds and passes an automated air-gap proof: the five types mount, the local agent answers, zero external requests. The one-click public download is still on its way; today, write ai@netshow.ai and we'll hand you the bundle.
WEAR A PACKAGE — LIVE EXAMPLE ON THIS ORIGIN
<script type="module" src="/alive-site/alive-element.js"></script>
<netshow-alive src="/alive-site/demo/kinetic-hotpink.alive.json"></netshow-alive>

See it worn live on the element demo page.

Put it in your world

Four recipes. Pick yours.

01 — YOUR WEBSITE · 2 LINES

A living greeter on any page

Serve the Alive files and your package from your own site, paste the two lines, size the tag with your CSS. Inline in a card, or mode="floating" for the corner bubble.

INDEX.HTML
<script type="module" src="/alive-site/alive-element.js"></script>
<netshow-alive src="/alive-site/your-avatar.alive.json"></netshow-alive>
02 — SELF-HOST · YOUR SERVERS

Your origin, your rules

The engine is plain static files — no build step, no service, no meter. Host them yourself and the same two lines work on your domain; the air-gapped bundle even runs with the network cable pulled. Downloadable bundle coming; today ask us and we'll hand it over.

Kiosk tip: mode="kiosk" goes fullscreen — a Pi behind a shop-window display is a one-tag install.

03 — EMAIL & SOCIAL · THE GIF PATTERN

Where JavaScript can't go

Email clients and most social feeds run no JS — so don't send code, send motion. Record a short loop of your avatar breathing and mid-reply (any screen recorder), save it as a GIF, embed the GIF, and link it to your live page where the real thing answers. Honest, light, and it works everywhere pixels do.

A short looping capture of an Alive Agent Avatar breathing and speaking
A REAL CAPTURE — THE $0 LOCAL AGENT, MID-REPLY
04 — POINT YOUR MODEL · $0 TO PROVE

Any model, any voice, no keys here

The five-line feeder (step 5) takes any text stream — your backend, a CLI agent, an SSE pipe. For voice, feed loudness into el.level(v) and the mouth tracks your TTS. Where keys live: in your code or, on provider-connected studio surfaces, in your browser only — dialing the provider directly, billed to you, never stored on or proxied through NetShow.

Try it right here — this is the real offline local agent, zero network, zero spend:

TRY: "what time is it?" · "hello" · "what is netshow alive?"

What it costs

The pricing truth.

$0/min · $0/sec — the avatar has no meter
VIDEO-AVATAR COMPETITORS BILL EVERY MINUTE · ALIVE RENDERS IN THE VISITOR'S BROWSER · YOU PAY ONLY YOUR OWN AI & VOICE USAGE

The character is drawn live in each visitor's browser by the Alive engine — there is no per-minute rendering meter to run, so none exists. What you pay for is what you already own: your model's tokens and your voice provider's audio, billed by them, to you, on your keys. Studios, exports, and the local agent cost nothing to try — no account, no meter. Plans on the pricing page cover hosted embeds, publishing, and team features; marketplace avatars are free or priced by their makers.

How she behaves on her own

What she does when nobody is typing.

An avatar that only moves when spoken to reads as a puppet waiting for a hand. The 3D stage carries a presence layer that keeps a body believable through a silence — and three behaviours that go further than that. All three ship switched off, and one of the three costs money once you turn it on. Here is exactly which is which, because guessing at this is how people get surprised by a bill.

ON BY DEFAULT · $0

Idle presence

While the stage is on auto and no call is running, she plays from a library of choreographed presence acts — walking the stage, waving, knocking on the inside of the glass, a full 360, a stretch and reset. A rolling energy budget stops big acts chaining back-to-back, per-act cooldowns rate-limit reruns, and the bag never repeats an act until the others have played.

Those acts draw on 45 expressive body verbs — nod, shrug, wave, point, lean, ponder, hop, celebrate and the rest. (The roster file holds 52 keys; seven of them are rig-calibration verbs used to check a body's joints, never performance.)

While you are talking, the pool narrows to the 4 listen-legal picks — a tilt, a nod, a weight shift, an elbow ease. Wandering eyes and stage strolls read as inattention, so they sit that moment out.

If the visitor's OS asks for reduced motion, everything above is scaled to 0.4 and the agent cannot waive it — and it re-clamps live if they change the setting mid-session.

SHIPS OFF · $0 WHEN ON

Rest — sleep and wake by word

Turned on, the guest can say “quiet time” during a call and she settles: motion quiets, the aware-idle draws are postponed, breath and blink keep going. She is resting, not switched off — there is no statue state.

The mic stays live the whole time. Nothing is muted and no audio track is touched — which is exactly why any word wakes her, with no wake phrase needed. That behaviour is not a setting; it cannot be dialled off. Typed and tool input use a wake word (wake up by default); tapping her rest badge works from either side.

Waking is a small orientation moment — a stretch, a look around, a re-weight — over a 420 ms arc, against a 900 ms settle. She will also settle on her own after 3 minutes of quiet in a call, if you leave that timer on.

Resting and waking never cost anything. This lane cannot start a reply. Its only trace on the wire is a one-line note that rides the turn you were already paying for, so she picks the thread back up instead of restarting.

SHIPS OFF · $0 WHEN ON

Held promises

Turned on, “remind me to stretch in 20 minutes” sets a real timer. The grammar is deliberately narrow and digit-anchored — “remind me to X in N minutes” or “remind me in N minutes to X”, seconds, minutes or hours. No digits, no reminder. She does not guess at what you meant.

Up to 12 promises at a time, 200 characters each, from five seconds out to seven days. A chip on the stage shows how many are held; tap it to read them, drop one, or clear the lot.

The timer is set before she confirms it, so when she says she'll remind you, the thing that will actually do it already exists. When it comes due the promise is struck from the list and written to disk before anything else happens — a reminder cannot fire twice, even if the tab dies mid-fire.

Browser notifications are never requested in the background. The one place permission is ever asked is a button you tap yourself, and a notification only goes out when the stage cannot carry the reminder itself — tab hidden, or no call running.

SHIPS OFF · THIS ONE SPENDS

Speaking up on her own

The other two lanes are free. This one is not, and we would rather be blunt about it than clever. Turned on, she may start talking during a quiet moment of a call you already started. She never opens a call, and never speaks on a page you are merely visiting.

When she speaks up on her own, that turn spends your AI & voice budget — same account, same meter as every turn. You set how often; she shows you every time.

Out of the box, if you switch it on: after 90 s of quiet, at most 2 per call and 6 per visit, never twice in a row, one every 2 minutes, each capped at 20 seconds and 300 tokens. Every number is yours to change.

Switching it on is not enough on its own — the guest gets a card naming what she may do, the cost sentence above, and the caps at their real current values, and they have to accept it. Declining leaves her quiet. After that there are three instant offs at all times: tap the speaking-up pill, say the sleep phrase, or flip the toggle. Any of them stops her mid-sentence.

And she has nothing to say by default: with no real reason staged, she does not speak. Silence is the resting state, not a countdown.

Where the switches are today — the honest version. Rest and speak-up are armed from the 3D stage's own presence panel, for that browser session. Held promises are further back: the behaviour is complete and running on the stage, but it has no switch of its own yet, so it is off unless a developer arms it. The separate config door lists these dials and saves them to your agent file, but only the backdrop and the model pointer reach the stage from there so far — everything else is waiting on a seam that has not landed. We would rather write that down than let you find it by turning a knob that does nothing.

All of this is the 3D / VRM stage. The flat engines — SVG, ASCII, Sketch Line, Hybrid, Kinetic Typography — carry their own idle life, but not the rest, reminder or speak-up lanes. The 3D capability card has the per-engine detail and the measured device cost.

The dial reference

Every gauge, in plain words.

The Face Overlay Lab gives you a full mixing desk for a face. This reference is generated from the live help system, so the words here are the same words the studio's help uses — one source, no drift.

LOADING THE HELP SYSTEM…

Five steps. One JSON. Boom — done.

Make one now, wear it anywhere, and pay no meter ever.