An AI-powered voice assistant for any web page. Add GuideAI with a single script tag to help users navigate and complete tasks in your application.
Install
Drop two script blocks anywhere in your HTML — usually right before
</body>. Everything the widget needs is included in the script.
<script src="https://cdn.getguide.ai/guideai/0.5.5-15/GuideAI.standalone.js"></script>
<script>
GuideAI.embed({
authKey: 'your-access-key',
workspace: 'your-workspace',
});
</script>
Props
The argument to GuideAI.embed() is an options object. Every widget prop listed below is supported.
| Prop | Type | Required | Description |
|---|---|---|---|
authKey |
string |
Yes | Widget access key. See Getting your access key. |
workspace |
string |
No | Force-open a specific workspace. See Workspaces. |
workspaces |
string | string[] |
No | Allowlist of workspace slugs. See Workspaces. |
getUserInfo |
function |
No | Snapshot of the signed-in user. See Signed-in users. |
position |
object |
No | CSS positioning for the floating mic. See Position. Placement props are ignored when launcher.variant is 'tab'. |
launcher |
object |
No | Launcher presentation: floating mic circle (default) or draggable side tab. See Launcher. |
environment |
string |
No | 'production' (default), 'development', or 'local'. |
theme |
string |
No | Built-in color theme preset id. See Themes. Omit for the default palette (Studio blue). |
tools |
object |
No | Custom tool handlers — Record<name, { description, parameters, execute }>. |
Position Top
Place the floating mic with CSS offsets. Default is bottom-right:
GuideAI.embed({
authKey: 'your-access-key',
position: { bottom: '20px', right: '20px' },
});
More position options
position?: {
top?: string;
right?: string;
bottom?: string;
left?: string;
marginTop?: string;
marginRight?: string;
marginBottom?: string;
marginLeft?: string;
transform?: string;
zIndex?: number; // base for GuideAI UI (default: 1300)
}
Bottom-left corner
GuideAI.embed({
authKey: 'your-access-key',
position: { bottom: '20px', left: '20px' },
});
Centered at bottom
GuideAI.embed({
authKey: 'your-access-key',
position: {
bottom: '20px',
left: '50%',
transform: 'translateX(-50%)',
},
});
Top-right corner
GuideAI.embed({
authKey: 'your-access-key',
position: { top: '20px', right: '20px' },
});
Launcher Top
Choose how users open GuideAI: a floating mic (default) or an edge-docked side tab.
variant: 'mic' (default)
variant: 'tab'
GuideAI.embed({
authKey: 'your-access-key',
launcher: { variant: 'tab' },
});
More launcher options
launcher?: {
variant?: 'mic' | 'tab'; // default: 'mic'
side?: 'left' | 'right'; // tab only (default: 'right')
}
The side tab is draggable up and down the screen edge; the vertical
offset is saved in localStorage. With variant: 'tab',
position placement props are ignored (position.zIndex still
applies).
Floating mic with position
GuideAI.embed({
authKey: 'your-access-key',
launcher: { variant: 'mic' },
position: { bottom: '20px', right: '20px' },
});
Left-edge tab
GuideAI.embed({
authKey: 'your-access-key',
launcher: { variant: 'tab', side: 'left' },
});
Themes Top
Set the widget color palette with the theme option. All presets ship inside
GuideAI.standalone.js — no extra scripts or CDN files are required.
GuideAI.embed({
authKey: 'your-access-key',
workspace: 'your-workspace',
theme: 'dark',
});
Omit theme for the default palette (Studio blue, same as
theme: 'dark').
Built-in presets
Light: light-ivory, light-snow, light-sand, light-mist, light-mint, light-sky, light-coral, light-rose, light-plum, light-slate
Dark: dark (Studio blue), dark-muted-gray, dark-midnight, dark-ocean, dark-forest, dark-teal, dark-violet, dark-ember, dark-carbon, dark-ruby, dark-graphite
Complete example Top
<script src="https://cdn.getguide.ai/guideai/0.5.5-15/GuideAI.standalone.js"></script>
<script>
GuideAI.embed({
authKey: 'your-access-key',
workspace: 'your-workspace',
environment: 'production',
position: { bottom: '40px', right: '40px' },
});
</script>
Signed-in users Top
If people sign in on your site, pass getUserInfo so GuideAI can recognize
them across visits.
function getUserInfo() {
if (!window.currentUser) return null;
return { username: window.currentUser.email };
}
GuideAI.embed({
authKey: 'your-access-key',
getUserInfo: getUserInfo,
});
More signed-in user details
- Return something like
{ username: user.email }when someone is logged in. Use whatever stable string identifies them (often an email). - When no one is logged in,
return null(or omitusername) so GuideAI keeps a normal anonymous experience. - After login or logout, dispatch
GUIDEAI_HOST_USERINFO_REFRESHonwindowto notify GuideAI right away.
getUserInfo once at page
scope rather than re-creating it inline on each embed call.
Advanced: initializeUserId
If you already manage end-user identity yourself, you can pass
initializeUserId — a stable string sent as the user id when the session
starts. Prefer getUserInfo for normal signed-in sites.
GuideAI.embed({
authKey: 'your-access-key',
workspace: 'your-workspace',
initializeUserId: window.currentUser.id,
getUserInfo: getUserInfo,
});
Full example
<script src="https://cdn.getguide.ai/guideai/0.5.5-15/GuideAI.standalone.js"></script>
<script>
function getUserInfo() {
if (!window.currentUser) return null;
return {
username: window.currentUser.email,
displayName: window.currentUser.name,
};
}
GuideAI.embed({
authKey: 'your-access-key',
workspace: 'your-workspace',
getUserInfo: getUserInfo,
});
// After login or logout:
// window.dispatchEvent(new CustomEvent('GUIDEAI_HOST_USERINFO_REFRESH'));
</script>
Workspaces Top
Each GuideAI workspace has a short slug — a stable id like
sales or onboarding — that identifies it in the embed.
Your GuideAI contact can provide the slugs for your account (alongside your access key).
workspace force-opens that workspace when the widget starts. Omit it to use
your account default. Because it is just an embed option, you can add it conditionally
in your own code (for example only on certain pages or for certain signed-in users).
// Always open a specific workspace
GuideAI.embed({
authKey: 'your-access-key',
workspace: 'sales',
});
// Conditionally force a workspace
GuideAI.embed({
authKey: 'your-access-key',
...(shouldOpenSupport ? { workspace: 'support' } : {}),
});
workspaces (plural) is optional and limits which workspaces appear in the
catalog — pass a slug, a comma-separated string, or an array. Omit it to load all
workspaces for your account.
Getting your access key Top
To use GuideAI you need an access key. Contact the GuideAI team to get set up — they can also provide your workspace slugs.
Support Top
For questions, issues, or feature requests, contact the Guide AI team.