Agentifys // THE WIDGET

One script tag. Your product can chat.

// a drop-in chat agent that lives inside your app, in your branding. not a popup you send people away to. paste it and ship.

<script
  src="https://agentifys.ai/static/widget.js"
  data-api-key="era_your_project_key"
  data-title="Assistant"
  data-primary-color="#2F6FED"
  data-placeholder="Ask me anything…"
  data-position="bottom-right"
></script>

WHAT IT DOES

01STREAMS MARKDOWN

Answers render token by token, formatted, as the model writes them. Live tool status shows what the agent is doing right now, not a spinner.

02ATTACH & ACT

Users attach files, get clickable choice buttons, and approve or cancel write actions inline. A stop button ends a run mid-stream.

03ZERO DEPS, ISOLATED

Vanilla JS in a Shadow DOM. No framework, no CSS bleed either way. It looks like part of your product and cannot break its styles.

04FEEDBACK & TASKS

Thumbs up or down on any answer, and a My-tasks panel where scheduled work and its results live.

05POINTS AT YOUR UI

Ask where something is and it rings the real control on your page, scrolled into view. It points; it never clicks for the user.

06VOICE IN & OUT

A mic that dictates into the composer and a speaker that reads answers back. Browser-native, so no extra cost and it works with any model.

07ASK ABOUT A SELECTION

Select text anywhere in your app and an Ask button appears; the passage lands in the chat already quoted.

CONFIGURE WITH DATA-*

data-api-key

Your project key. The only required attribute.

data-title

Header label for the chat window.

data-primary-color

Accent color, to match your brand.

data-placeholder

Text shown in the empty input.

data-position

bottom-right or bottom-left.

data-theme

Force a light or dark look.

data-max-length

Cap the length of a user message.

data-feedback

Set "off" to hide thumbs feedback.

data-options

Set "off" to disable choice buttons.

data-status-style

"professional" or "playful" tool status.

data-base-url

Point the widget at your own proxy.

data-point-at

Set "off" to stop it spotlighting your UI.

data-select-ask

Set "on" to enable the selection Ask button (off by default).

data-dictation

Set "off" to hide the microphone.

data-read-aloud

Set "off" to hide the read-aloud toggle.

data-command-key

Opt in to the command palette, e.g. "k".

DRIVE IT FROM YOUR APP

A small window.ERA API.

Identify the user with window.ERAConfig, then open, send, and listen from your own buttons.

ERA.open() / ERA.close()

Open or close the chat panel from your own UI.

ERA.sendMessage(text)

Send a message as the user, e.g. from a "Ask about this" button.

ERA.clear()

Start a fresh conversation.

ERA.onMessage(fn)

Subscribe to stream events: { type, content, full, name }.

ERA.openTasks()

Open the My-tasks panel.

ERA.point(target, label)

Ring an element on your page yourself. Target a data-era-id or any selector.

ERA.scrollTo(target)

Bring an element into view without the spotlight.

ERA.clearPoint()

Remove the spotlight immediately.

ERA.highlight(target)

Ring an element with no caption.

ERA.openPalette()

Open the command palette from your own shortcut.

ERA.destroy()

Remove the widget and every listener it added.

ERA.ask(text)

Open the panel with text quoted into the composer.

ERA.connectMcp(serverId)

Kick off a per-user MCP OAuth connection.

Paste it into your app.

// grab your project key and the snippet from the dashboard. free to start.