Status: the glyph and its scroll-activation are real, live on this site today — you’ve probably already scrolled past one. Everything past the first section is the spec for what doesn’t exist yet: distribution.

What’s live

There’s a mark that wakes up as you scroll — two orange particles orbiting a breathing core, ported from the same component the native app uses for “agentic work happening.” Dormant on load. Scroll past a page’s headline and it wakes: the ring glows, and a written line offers a walkthrough. Click it, and it opens this site’s chat panel.

That panel is honestly a stub today — its own placeholder reply says so. Nothing about the glyph pretends otherwise. It’s a presence indicator, not a claim that something is talking to you.

The wake behavior is one real prop in code right now: <OrbitalGlyphTrigger scrollActivate /> on /about and /career. Small, boring, working.

The realization

That component isn’t really a page decoration. It’s a primitive: a business twin’s presence, on a surface, that wakes on a signal. Nothing about it is specific to myorbit.ai. Any business running an Echo OS twin could have the same glyph, on their own site, wired to their own twin.

That’s the pitch. This note is the spec for building it.

The config surface

Three flags, one full implementation today:

FlagWhat it controlsStatus
scrollActivateWakes on a scroll marker vs. stays dormantReal — shipped, this page uses it
glyphEnabledWhether the glyph feature exists on a given surface at allOne case only (always on where mounted) — not yet a real toggle
fixedLocationFloating dock vs. embedded inline in page contentOne case only (always fixed) — not yet a real toggle

The last two aren’t built because there’s nothing to branch on yet — a flag with one caller isn’t a flag, it’s a comment. They become real the day a second surface needs the other value. That day is distribution.

The channels

Four ways a business could get this on their own site, in rough order of how much they’d have to trust us with:

URL. A hosted page — <slug>.myorbit.ai or similar — running their twin’s chat, their branding. No integration work on their end. The floor, not the ceiling.

Embedded. A script tag, the Intercom/Drift shape: drop one line in their <head>, the glyph and panel render on their actual site, wired to their twin. This is almost certainly the one people actually want.

Webhook. Their server gets told things — a visitor woke the glyph, asked a question, requested a human. For businesses who want the signal without owning the surface.

API. Full programmatic control — mount it, configure it, read transcripts, everything the embed script does but from their own code instead of ours.

What each one actually needs

Not hand-waving — this is the requirements list.

  • An embed key per business. Scoped, revocable, tied to a twin — the same shape as any API key, minted from the console.
  • A config-serving endpoint. Given a key, returns the three flags plus branding (default: this glyph, our orange; overridable: their mark, their color).
  • A loader script on a CDN. The one line a business actually pastes. Small, no framework dependency, degrades to nothing if it fails to load rather than breaking their page.
  • CORS and auth that assume a hostile origin. This script runs on someone else’s site, for anyone’s browser. Every request needs origin-checking a same-site widget doesn’t.
  • The voice, if it’s voice. Real-time and PSTN calling already exist elsewhere in this stack for a different surface. Wiring that into a browser embed — not into another phone call — is the actual remaining work, not a from-scratch build.

None of this is running today. All of it is scoped enough to build.

Where to start

Start with the embed script and the config endpoint — those two alone get a business’s own glyph on their own site, wired to their own (still-honest, still-labeled) twin. Webhook and API are the same primitive with a different front door; they come after, once the first one is proven on a real site.

The glyph already exists. The panel already exists. The only thing that doesn’t is the door between “runs on myorbit.ai” and “runs on yours.”