Put an agent on your site

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.

What you are adding

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.

THE IMPORTANT DESIGN DECISION, IN ONE SENTENCE

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.

The snippet

Copied exactly from the live program.

PASTE INTO YOUR PAGE
<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.

CAREFUL — AN OLDER SNIPPET IS STILL CIRCULATING

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

AttributeWhat you can putWhat it does
agentyour agent’s slugNames which agent to load
packagea path to a character fileAlternative to agent: loads a face only. Use one or the other, never both
modeinline (default), floating, kioskWhere the agent sits on the page
liveoff (default) or clickWhether a visitor can start a live conversation
THERE IS NO “AUTO” SETTING, DELIBERATELY

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.

What happens on load

Five steps, and nobody sees a stranger’s face.

1

A neutral loading panel appears first

The agent’s box is never filled with a stand-in face while yours loads.

2

Your agent’s file is fetched

From NetShow’s origin — the only place the embed dials.

3

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.

4

Your agent appears

The loading panel lifts.

5

If live="click" is set, a talk button appears

Nothing further happens until a visitor presses it.

WHY STEP 1 EXISTS

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.

What it costs

No meter on the avatar. A plan for publishing it.

$0/min · $0/sec — the avatar has no meter
DRAWN IN EACH VISITOR’S BROWSER · NO VIDEO STREAM · NO PER-MINUTE RENDERING FEE

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.

THE PLAN THAT COVERS EMBEDDING

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.

TWO HONEST FOOTNOTES

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.

Every way it can fail

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 seesWhat it meansWhat 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 nameCheck the snippet above
“This assistant couldn’t load.”The file could not be fetched, or failed its safety and fingerprint checksCheck 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 listSend us the exact domain to register
“The session timed out — tap to try again.”Too long between pressing talk and talkingNothing — a Try again button appears
“Live chat is busy right now — tap to try again.”The live service was busy or the connection droppedNothing — 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.

What we need from you

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.”

THIS IS THE PART THAT PROTECTS YOU

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.

THE PERMISSION SLIP BEHIND THE SCENES

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.

Honest about today

What is real, and one contradiction we are not hiding.

Live

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.

Contradiction, named

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.

Know this

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.

Not yet

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.