Two lines of HTML.
Then the honest details.
People land on your website, read a little, and leave — carrying the question they actually came to ask. Here is how to put an agent there so the question gets answered: what you paste, what happens next, what it costs, and every way it can fail.
One tag, and it only ever dials home.
The tag is <netshow-alive-remote> — a purpose-built
“off-origin door”, the version made specifically for running on your domain rather than
ours. It loads a small program from voice.netshow.ai, draws your agent in a box on
your page, and lets visitors talk to it.
Everything the embed downloads, it downloads from NetShow’s own origin, and your page cannot redirect that. The program works out its own home address from where its code was loaded, and dials only there: “every URL this module dials is derived from import.meta.url. The host page picks placement, never network.”
Your page chooses where the agent sits and whether live chat is offered. It never chooses where the agent’s code or data come from. Your page’s own content is treated as untrusted data — attributes you set are validated as text and never executed.
Copied exactly from the live program.
<script type="module" src="https://voice.netshow.ai/alive-site/embed/alive-embed-v2.mjs"></script> <netshow-alive-remote agent="front-desk-v1" live="click"></netshow-alive-remote>
Replace front-desk-v1 with your agent’s
name. That is the whole integration.
The marketplace page’s “use this avatar” flow currently hands out a different, earlier
snippet with a src="/avatars/….alive.json" path. That one expects you to
host the character file on your own website, and it is the version with the silent-failure
behaviour described below. Use the two lines above — and if someone gives you a
snippet containing src="/avatars/, come back to this page.
The settings you can change
| Attribute | What you can put | What it does |
|---|---|---|
agent | your agent’s slug | Names which agent to load |
package | a path to a character file | Alternative to agent: loads a face only. Use one or the other, never both |
mode | inline (default), floating, kiosk | Where the agent sits on the page |
live | off (default) or click | Whether a visitor can start a live conversation |
A live conversation can only ever begin from a real human click — the code checks the click came from a person and not a script: “the billed lane starts ONLY from a trusted click. There is no auto mode.” Nothing starts spending the moment your page loads. That is a rule in the code, not a promise in a brochure.
Five steps, and nobody sees a stranger’s face.
A neutral loading panel appears first
The agent’s box is never filled with a stand-in face while yours loads.
Your agent’s file is fetched
From NetShow’s origin — the only place the embed dials.
The character is checked before it is shown
The file is parsed, its fingerprint verified against what it claims to be, and its contents sanitised for the character type being drawn.
Your agent appears
The loading panel lifts.
If live="click" is set, a talk button appears
Nothing further happens until a visitor presses it.
Because of a real defect in the older version, which this one was built to remove. In the old embed a misconfigured page would show NetShow’s default face — a complete, convincing avatar that simply was not yours — and the refusal was invisible, logged nowhere a human would look. The current embed makes that structurally impossible: the character is only created once its file is actually in hand. Silence is never an acceptable failure.
No meter on the avatar. A plan for publishing it.
What you pay for is the thinking and the speaking — your AI model’s tokens and your voice provider’s audio, billed by those providers, to you, on your own keys. And there is a genuinely free lane: an agent whose mind is set to local rules skips the whole paid path — no token, no server slot, no spend, and it works offline.
Deployment channels widen as you climb the ladder. Free is web chat. Starter ($9/mo) adds a share link. Creator ($29/mo) opens web, share, phone and SMS. Professional ($79/mo) adds WhatsApp and email alongside API access, and Business ($149/mo) is the plan that adds the embed channel itself, with the full API and webhooks. Current plans and checkout live at claude.netshow.ai/plans.
On “your keys.” That promise describes the intended setup — you connect your providers. There is a fallback: where a business has no key of its own on file, the live relay resolves one server-side, “business vault key wins, platform key under demo mode.” Worth confirming with us before you assume it of a demo.
On other price lists. The wider NetShow platform has a separate 20-product catalogue whose own configuration records that it carries “synthetic price_netshow_* ids and prices never ratified against Stripe.” The NetShow Alive plans are the live, published ones.
In the visitor’s words, not ours.
When something goes wrong the visitor sees a short honest card in the agent’s box — never a blank space, never a stranger’s face. These are the exact messages, read from the live program.
| What the visitor sees | What it means | What to do |
|---|---|---|
| “This assistant isn’t set up correctly on this page.” | The tag is wrong — no agent named, both agent and package set, or a bad character in the name | Check the snippet above |
| “This assistant couldn’t load.” | The file could not be fetched, or failed its safety and fingerprint checks | Check the agent name; if it is right, tell us |
| “Live chat isn’t available on this site.” | Your domain is not on the agent’s approved list | Send us the exact domain to register |
| “The session timed out — tap to try again.” | Too long between pressing talk and talking | Nothing — a Try again button appears |
| “Live chat is busy right now — tap to try again.” | The live service was busy or the connection dropped | Nothing — a Try again button appears |
The last two carry a retry button because they are worth retrying; the first three do not, because retrying would not help. Each card also shows a short code underneath so support can identify the exact fault without guessing.
Your exact domain. That is it.
Live conversation is locked to a list of approved web addresses held per agent. A request from a domain that is not on the list is refused, and the visitor sees “Live chat isn’t available on this site.”
It means nobody can copy your snippet onto their own website and run up usage against your agent. The browser cannot lie about which site a request came from, so the lock holds. Removing your domain from the list revokes access immediately.
Send us every address visitors actually use — https://example.com and
https://www.example.com are two different entries.
You do not have to do anything with this, but you should know it exists. When a visitor presses talk, your site quietly asks NetShow for a short-lived permission slip, and that slip is what buys the conversation — not your agent’s name. It lasts at most five minutes, covers one purpose, cannot be renewed, and never appears in a web address where it could leak into logs or browser history.
We cite that carefully on purpose: the design document those rules come from still labels itself a proposal, so we did not take its word for what is running. The live program served today enforces the same rule in its own code, and the estate’s status record confirms the minting service was deployed and its domain map loaded.
What is real, and one contradiction we are not hiding.
It is running on real outside websites
The embed program is served right now — verified by direct request on 2026-08-10: HTTP 200, 25,910 bytes, banked in this lane’s evidence folder. Two real outside domains already carry a working NetShow Alive agent with working text conversation.
The contract says “nothing here is live” — that line is out of date
It was written on 2026-08-08 as a proposal; the system was then built and deployed, with the permission-slip service running and the domain list loaded. We are flagging the contradiction rather than quietly picking the flattering side. Disk and the live wire agree: it is deployed.
Your agent’s face and greeting are public
The character file sits on a public web address by design and contains no keys or credentials — it is “not a credential.” Anything private belongs in the agent’s instructions, never in its character file.
3D characters do not travel off-site
The full-body 3D type is same-origin only in this version — named as out of scope, not quietly missing. The flat character types are the ones that go on your site today.
Send us your domains.
We will register them, and the snippet above starts working.