Drop-in component
One HTML tag, everything handled — input, streaming, scrolling.Attributes
| Attribute | Type | Default | Description |
|---|---|---|---|
agentId | string | required | The agent ID |
conversationId | string | — | Resume an existing conversation |
context | string (JSON) | — | Additional context passed to the agent |
placeholder | string | "Type a message..." | Input placeholder |
emptyText | string | "How can I help you today?" | Empty-state text |
agentColor | string | primary color | Override accent color |
dark | boolean | false | Dark mode |
Events
The component dispatches DOM events you can listen to:Gleap.on(...) without the gleap- prefix:
Headless with Gleap.createAgentChat()
Manage state and streaming yourself, render any UI you want.
agentId– the agent to talk to (defaults to"kai").context– arbitrary object passed to the agent.conversationId– resume an existing conversation.onChange({ messages, isExecuting, error, conversationId })– called whenever state changes.onToken,onReplyReceived,onError,onConversationCreated– optional lifecycle callbacks.
sendMessage(content)– send a user message (streams the reply).setContext(context)– update the context for future messages.clearMessages()– clear messages and start a new conversation.cancelStream()– abort the in-flight stream.getState()–{ messages, isExecuting, error, conversationId }.destroy()– tear down listeners. Always call when unmounting.
{ id, role, content, createdAt, isStreaming? }. isStreaming is true while tokens are still arriving.
To clear cached conversation state across the page (e.g. on logout):
Raw API
One call, you handle everything else.{ runId, status, response, conversationId }.
Custom styling
The drop-in component renders inside an iframe and acceptsagentColor / dark for basic theming. For full control over the UI, use the headless createAgentChat() API and render your own components.