Built for production, not demos
yak isn't just a chatbot overlay. It's a complete AI assistant platform with multi-API integration, security built-in, programmatic control, and full theming—everything you need to ship a production-quality experience.
Your product on autopilot
Voice mode turns your app into a hands-free copilot. Users speak naturally—"take me to my orders," "cancel the one from Tuesday," "add another"—and the assistant moves them through your routes and fires off the same tool calls your APIs already expose. No new integration, no second widget; one pill, two surfaces, the same handlers behind both.
- Hands-free navigation across your existing routes
- Real actions, not transcripts—same tool calls as chat
- One mode prop flips between chat, voice, or both
- Push-to-talk over WebRTC, low-latency and on-device
- Same auth, same permissions, same data the user already sees
- Configurable opening greeting—generated, fixed, or silent to control voice minutes
Multi-API integration
yak connects to your existing APIs—tRPC, GraphQL, REST/OpenAPI, or custom adapters. The AI learns your schema and generates appropriate queries. You provide the API, we handle the AI.
- tRPC adapter with procedure allowlisting
- GraphQL schema integration
- REST/OpenAPI spec support
- Custom adapters for any data source
- Combine multiple APIs in a single assistant
Connect your knowledge base
Connect any remote MCP server—Zendesk, Notion, Confluence, GitHub, or your own internal one. If it speaks the Model Context Protocol, the assistant can use it. An admin authorizes it once from the dashboard and every chat and voice session can use its tools. No code, no per-provider integration to maintain.
- Admin connects once via OAuth—no engineering work
- Same connection powers both chat and voice
- Tool allowlist: expose read-only lookups, hide the rest
- Tokens encrypted at rest and never sent to the browser
- Auto-refreshed; one-click reconnect if a provider revokes access
Security by design
yak doesn't bypass your security model—it works within it. Tool calls receive the original request object, so you authenticate with cookies, headers, or tokens. The AI only accesses what the user can access.
- Tool calls receive the original Request object
- Use your existing auth (Clerk, Auth.js, custom)
- Allowlist specific procedures—block the rest
- Origin validation for all postMessage communication
- Built-in redirect protection against open redirect attacks
Remember signed-in users
Pass a signed user identity into the widget and yak persists every conversation against that user. When they come back—same device or new one—they see their past chats in a history pane and can pick up where they left off. Anonymous traffic still works exactly as before: no identity, no persistence.
- HMAC-signed identity verification (Intercom-style)—the secret never leaves your server
- Conversations resume across devices and sessions
- Built-in history pane in the widget with start-new and delete actions
- Just an id and a hash—no PII passed through the widget
- Rotate the secret from the dashboard if it ever leaks
Programmatic control
Go beyond the floating button. The useYak hook gives you full control to open the chat, inject context-aware prompts, and subscribe to tool events—build help buttons, onboarding flows, or error assistance.
- open(), close(), openWithPrompt() methods
- Check widget state with isOpen
- Subscribe to tool events for cache invalidation
- Build context-sensitive help buttons
- Create keyboard shortcuts and help menus
Custom theming
The assistant should feel native to your product. Configure position, colors, display mode, and color scheme. Separate light and dark mode themes let you match both modes of your design system.
- Chatbox or full-height drawer display modes
- Use our widget or build your own with programmatic control
- Light, dark, or system color mode
- Customize backgrounds, borders, buttons, and message bubbles
- Style the launcher button per color mode
Automatic route discovery
For Next.js apps, yak scans your app directory and extracts page metadata automatically. The AI knows every page in your app and can navigate users there. A CLI generates the manifest for production builds.
- Auto-scans Next.js app and pages directories
- Extracts title and description from page metadata
- CLI generates route manifest for production
- Filter routes with include/exclude patterns
- Override with custom routes when needed
yak-nextjs generate-manifestTool event subscription
When the AI modifies data through tool calls, your UI should update. The useYakToolEvent hook lets you subscribe to tool completions and invalidate caches—your page refreshes automatically after chatbot actions.
- Subscribe to tool call completion events
- Access tool name, args, result, and success status
- Integrate with tRPC, React Query, or SWR cache invalidation
- Auto-unsubscribe when components unmount
- Keep data fresh without manual refresh
Interactive data tables
When the AI returns lists or structured data, yak automatically displays it in an interactive table panel. Users can sort columns, filter rows, and export to CSV—all without writing any code.
- Automatic detection of tabular data in responses
- Split-panel view keeps chat visible while exploring data
- Sort by any column with a single click
- Filter rows to find what you need
- Export to CSV for use in spreadsheets
| Order | Status | Total |
|---|---|---|
| #1234 | Delivered | $89.00 |
| #1235 | Shipped | $124.50 |
| #1236 | Pending | $45.00 |
Image-first card results
When the AI surfaces products, places, or anything image-first, yak renders a grid of cards instead of plain text. You configure the action buttons in the portal—"Add to cart," "Book now," "View details"—and clicks inject a prompt back into the chat so the conversation keeps flowing.
- Image-first cards with title, price, badges, and custom fields
- Up to three tenant-defined action buttons per card, styled as primary, secondary, or ghost
- Auto layout—inline in the chat bubble for small grids, side panel for larger ones
- Action clicks inject prompts so the conversation continues naturally
- Currency-aware price formatting with compare-at support for sale items
Ready to see these features in action?
Get started with yak today and ship an AI assistant that matches your product.