AI Toolkit

Bring AI where content happens.

Ask AI, AI Chat, inline preview, and a reviewable suggestion drawer - all wired into the editor. Writers stay in the document, reviewers keep control, and engineers swap in their own resolver when they are ready.

Live preview

Ask AI, suggestion, review - all inline.

RichTextEditor
B I U Ask AI

Our new release improves performance by 34% while shipping a smaller bundle.

AI rewrite · proofread

The new release improves performance by 34% and ships with a smaller bundle.

Apply Accept Reject
Three surfaces, one toolkit

Meet the writer where they already are.

Different editing tasks want different surfaces. Ask AI for quick actions, Chat for a conversation about the document, Review for batch decisions. They share state, so what you preview in one is reviewable in the others.

Ask AI

Toolbar-first dialog. Proofread, rewrite, shorten, expand, summarize, or translate the selection or the whole document.

Ask AI · proofread
SOURCE
hello world ,bad spacing
RESULT
Hello world, bad spacing.

AI Chat

Docked panel for multi-turn work. Scope-aware: uses the selection or the whole document, with quick prompts built in.

AI Chat · document
Summarize this for the release notes.
Drafted a 2-line recap. Apply to the document?

AI Review

Queue of pending, accepted, and rejected suggestions. Preview before applying, batch-accept or reject, or sync with your server ledger.

AI Review · 3 pending
Proofread intro paragraphPending
Translate heading (Spanish)Accepted
Shorten section 2Pending
Why it matters

AI suggestions should stay inside the editing workflow.

Instead of copying content to a separate AI window and pasting results back, RichTextEditor keeps AI actions attached to the document. Writers can select text, ask for a rewrite, preview the result inline, and review suggestions without leaving the editor.

For product teams

Keep users in your app with an editor-native AI experience that feels integrated, reviewable, and consistent with your content workflow.

For engineers

Start with the built-in demo resolver, then swap in your own model or provider when you are ready. Same UI, new backend.

Feature set

What you get out of the box.

Quick actions

Proofread · rewrite · translate

Seven one-click modes plus your own: proofread, rewrite, shorten, expand, summarize, translate, justify. Each returns a rationale.

Structured plan

Operation contract

Resolvers return one or many operations (preview, replace, insert, comment). Users apply step-by-step or as a batch.

Inline preview

Accept or reject in place

Before/after view with change highlighting, operation summary, and accept/reject controls. Nothing commits until a human says so.

Persistent ledger

Review drawer + sync

Pending, accepted, and rejected suggestions persist per editor. Hook a remote ledger endpoint to sync across sessions.

Scope control

Selection or document

Every action knows what it is acting on. Selection-aware by default, with a one-tap switch to whole-document scope.

Multi-turn chat

Conversation with context

Docked panel with quick prompts, message history, and copy / apply / insert / replace actions on every AI response.

Custom actions

Register your own modes

Use registerAction to add domain-specific actions (legal clause check, SEO rewrite, tone matcher). They plug into the same UI.

Demo mode

No API key required

Built-in deterministic resolver ships with the plugin. Evaluate the UX first, wire a real model later - same front-end.

Developer surface

Bring your own resolver in ~15 lines.

The aiToolkitResolver hook receives a structured request (action, source text, scope, snapshot) and returns a result or a list of operations. The editor handles rendering, preview, and review for you.

JavaScript aiToolkitResolver
var editor = new RichTextEditor("#editor", {
    toolbar: "full",
    aiToolkitResolver: async function (request) {
        // request: { mode, source, scope, snapshot, language, ... }
        const reply = await fetch("/api/ai", {
            method: "POST",
            body: JSON.stringify({
                mode: request.mode,
                text: request.source
            })
        }).then(r => r.json());

        return {
            result: reply.text,
            reason: reply.explanation,
            operations: [{ type: "preview-suggestion",
                         text: reply.text }]
        };
    }
});
Pair with structured content

AI gets stronger when the document model is structured.

Use the structured content bridge alongside AI Toolkit to move between HTML, semantic JSON, Markdown, static HTML rendering, and validation. That makes it easier to save, inspect, render, and process AI-assisted content in real applications.

Ready to evaluate?

Start with the demo, then connect your backend.

Open the AI Toolkit demo in a new tab, run the built-in resolver locally, and decide how you want to wire a real provider. No account, no download.