Website and live demo · Documentation · npm · Changelog
Dare to ask. @boldare/askdare is a Next.js library for adding an AI chatbot, built on the official OpenAI SDK, to any website. It takes one route file and one <script> tag, and needs no database.
Status: release candidate (0.1.0-rc). The API is complete, but may still change before 0.1.0. Install the
rctag, and pin the exact version.
It succeeds @boldare/openai-assistant, which stopped working when OpenAI shut down the Assistants API on 2026-08-26. askdare is a new, independent project built on the Responses API.
- Embed anywhere: a tiny loader script plus an isolated iframe, with a per-site allowlist.
- Secure by default: short-lived session tokens, rate limits, daily token budgets, sanitized output.
- Knowledge base: answers from your files via OpenAI file search, with citations linking to your pages.
- Tools: your own functions, defined with Zod schemas and validated end to end.
- Attachments and images, plus voice input (speech to text).
- No database required: conversations live in the OpenAI Conversations API.
- Looks good out of the box: four themes in light and dark, English and Polish texts, and everything customizable from configuration to your own CSS.
In a Next.js 16 app with the App Router:
npm install @boldare/askdare@rc zod
npx @boldare/askdare init # route, bot config, .env.local and the chat script
# set OPENAI_API_KEY and ASKDARE_MODEL in .env.local
npm run dev
npx @boldare/askdare doctor # checks the key, model, permissions and headersThe integration is a bot definition, one route and one script tag:
// askdare.config.ts
import { defineBot } from '@boldare/askdare';
export const bots = [
defineBot({
id: 'support',
model: process.env.ASKDARE_MODEL ?? '',
instructions: 'You answer questions about our product. If you do not know, say so.',
security: { allowedOrigins: ['https://www.example.com'] },
widget: { theme: 'aura', greeting: 'Hi! How can I help?' },
}),
];// app/api/chat/[...path]/route.ts
import { createChatHandler } from '@boldare/askdare/next';
import { bots } from '../../../../askdare.config';
export const maxDuration = 300;
export const { GET, POST, DELETE } = createChatHandler({ bots });<script src="https://your-app.example.com/api/chat/widget.js?bot=support" async></script>Getting started walks through it step by step.
Halo, Aura, Sage and Care come in light and dark. Set your colors in the bot's widget options, or restyle any part with your own CSS; BLDR is a custom theme built that way. Try each of them on the website, and see Themes and Styling.
The docs are on the website, at askdare.vercel.app/docs, with search and a chat that answers from them. The same pages are in docs/:
- Getting started, then the configuration reference, embedding, the CLI and troubleshooting
- Knowledge base, Tools, Attachments, Voice input
- Styling and Themes
- Deployment to Vercel and Heroku, and the going-public checklist
- Costs, privacy and support: versions, browsers and download sizes
- Coming from
@boldare/openai-assistant? See migrating. - Threat model and streaming protocol
For AI coding agents: llms.txt, and the askdare skill. Both ship in the package with the docs, so they match the installed version. To use the skill with Claude Code, copy it into your project:
mkdir -p .claude/skills && cp -R node_modules/@boldare/askdare/skills/askdare .claude/skills/| Package | What it is |
|---|---|
@boldare/askdare |
The library: bot definitions, the chat route, the embeddable chat and the CLI |
@boldare/askdare-upstash |
Rate limits and budgets shared by every server instance, in Upstash Redis |
The architecture is documented as Architecture Decision Records.
See CONTRIBUTING.md. Report security issues privately as described in SECURITY.md.
MIT © Boldare



