Skip to main content
The software is free and open source. You pay Cloudflare for what your desk uses, on your own account.The inbox, widget and visitor list run on the Workers Free plan. For the AI, use the Workers Paid plan ($5 a month per account): on Free, AI replies fail now and then with error 1102 because of its 10 ms CPU limit. Workers AI usage beyond Cloudflare’s free allocation is billed by Cloudflare; if you use OpenAI, OpenAI bills you for that. See Costs and limits.
You. Conversations, contacts, files, knowledge and settings live in your Cloudflare account’s D1 database, R2 bucket and Durable Objects. There’s no Jun server, account or telemetry. Data leaves your account only for the AI provider you choose (Workers AI stays on Cloudflare), the APIs your actions call, your docs sites when crawled, GitHub or Linear when a teammate files an issue, and push services for notifications. See Security.
No key is needed. The default is Workers AI (Mistral Small 3.1 24B), built into your Cloudflare account. You can switch to OpenAI with an OPENAI_API_KEY secret. You can also sign in with ChatGPT to use your own ChatGPT plan, but OpenAI’s terms cover plan usage for your own use, not a desk answering the public. See Models.
No. There’s no email service, login provider or database server to sign up for. Teammates sign in with passkeys. GitHub, Linear and OpenAI are optional.
No. Jun is built on Cloudflare Workers, Durable Objects, D1, R2, Queues and Workers AI. npm run dev runs the same code locally for development. See Local development.
Yes. One desk holds several workspaces, one per website or product, each with its own widget key, inbox, AI agent, knowledge and team. Owners create them from the workspace menu at the top of the sidebar. See Workspaces. A second desk is only needed to keep Worker secrets or the database fully apart.
  • The widget works in mobile browsers; the classic chat panel fills the screen on small screens. Visitors’ screenshots are desktop-only.
  • The desk works in a mobile browser and can be added to the Home Screen as an app. On iPhone and iPad, push notifications need it on the Home Screen. There are no native apps.
The AI replies in the customer’s language, from knowledge in any language the model understands. The widget’s and the desk’s own interface text is in English.
The loader is a few kilobytes, loads with defer, and doesn’t block your page. The chat itself loads in an iframe when it’s first opened (at once for the greeting card and the island, which draw themselves in it). See Install the widget.
Only through what you give it: actions (HTTP calls you define in actions/*.yaml) and page actions your website registers. Page actions run in the visitor’s browser with their own login, after they confirm unless you say otherwise. The AI never files issues; a teammate does. See Actions and Page actions.
Merge the Update Jun to vX.Y.Z pull request that your copy of the repository gets when a release is out; merging deploys it. It applies database migrations before deploying the new code, and your data carries over. See Upgrade.
Jun is a v1 release candidate: everything documented here works and is tested end to end, and there are rough edges. Report problems on GitHub.
The desk (server and dashboard, the jun CLI) is AGPL-3.0. The widget loader (widget.js), the React hook and the agent-config format (instructions.md, tasks/, actions/, tests/ and the jun init templates) are MIT, so putting the widget on your site never triggers a licence review. If you modify the desk and offer it to others over a network, the AGPL asks you to share those changes.
Yes. Read CONTRIBUTING.md and CLAUDE.md in the repository, and run npm test, npm run typecheck and the end-to-end suites before opening a pull request. Outside contributions will need a Contributor License Agreement, which isn’t set up yet; until it is, open an issue before starting a large change.