If you've already integrated AI Assistant into your TinyMCE instance, you've done the foundational work of bringing AI to your rich text editor (RTE). You know what configuration looks like, you know where it lives in your init script, and your users have built habits around it. Now your app is ready for more: Richer conversations that hold context across exchanges, custom shortcuts that don't require hand-writing prompt logic, and less backend plumbing to maintain as your AI features grow.
TinyMCE AI is built for that next step. This guide walks you through what changes in your configuration, what you can carry forward, and how to get the migration done without disrupting your app.
The difference between AI Assistant and TinyMCE AI
AI Assistant was designed to bring AI into your RTE quickly, with your team in full control of the API key, the model selection, and the backend supporting it. That control is powerful, and for many teams it's the right starting point. As your AI features mature, your app’s requirements extend beyond single-prompt interactions: Persistent conversations, document context that carries across exchanges, and shortcut creation that doesn't require writing prompt logic from scratch. TinyMCE AI is built to fill these gaps.
TinyMCE AI is architecturally different for the cloud-hosted version, and offers a full suite of capabilities for your users. It's configured via a fully managed plugin, not a request layer you point at the AI proinfrastructure you control. This shift changes where the operational responsibility sits. For most teams that's a meaningful reduction in ongoing work because configuration and maintenance are wholly different now, and much easier with TinyMCE AI.
If you still want to manage your own backend and need to use TinyMCE AI for on-prem, contact the TinyMCE team, and they can get you early access.
What's new in TinyMCE AI
Managed backend: You no longer have to own the infrastructure
With AI Assistant, you supplied the API key and, in many cases, built or configured the backend the feature routed requests through. Cloud-hosted TinyMCE AI removes that responsibility. TinyMCE AI now handles the model routing, infrastructure, and model updates. You configure which models are available to your users and whether they can switch between them. The operational surface on your side is a JWT endpoint.
This migration trades infrastructure management for a token endpoint. With TinyMCE AI, you get enhanced features and a smaller commitment over time.
Chat: Persistent, document-aware conversation
AI Assistant offered single-turn prompt interactions. TinyMCE AI Chat opens multi-turn conversations with persistent history and full document context. The AI knows what's in the document, can reference earlier turns in the conversation, and can reason across the whole piece of content rather than acting on isolated selections.
You can scope chat history per document using content_id. This matters if your app hosts multiple documents, because content_id keeps each document's AI conversation isolated from the others.
Quick actions: stateless, one-click text transformations
Quick Actions replace AI Assistant's shortcuts, and the conceptual model is similar: select text, apply a transformation. The difference now is how they’re each configured in the TinyMCE init.
Custom Quick Actions live in the tinymce.init() config as tinymceai_quickactions_custom entries, each with a title, a prompt, and a type: either 'action' for an inline preview before insert, or 'chat' to open the result in the chat sidebar. The configuration is declarative, so you’ll be filling in fields instead of wiring up request handlers.
Review: document-wide analysis with inline suggestions
AI Assistant didn’t document-wide review mode unless the user selected the entire document and had repeated single prompts to change it. TinyMCE AI Review is a new capability that runs analysis across all of the content in the RTE and surfaces inline changes and suggestions in a sidebar for the user to accept or reject. AI Review is designed and optimized to handle large documents, and it gives users granular control over every change.
There are five default built-in automated review types:
- Proofread
- Improve clarity
- Improve readability
- Change length
- Change tone
All five review types are configurable via tinymceai_reviews. Users accept or reject suggestions individually without altering the original document until they choose to apply a change. If enabled, you can also allow users to create custom review prompts in addition to the defaults.
If your users are content teams, editors, or anyone working with standardization in their organizational content, AI Review and AI Chat will help them automate basic reviews and speed up the draft-to-published cycle.
Model selection: Gemini, OpenAI, and Claude without building the routing
TinyMCE AI supports Google Gemini, OpenAI ChatGPT, and Anthropic Claude, all accessible through the managed backend. You set the default model with tinymceai_default_model and control whether users can switch models with tinymceai_allow_model_selection. The managed backend handles model-specific context formatting and prompt management, so your team doesn’t have to maintain the API connections to LLM models.
What stays the same after migrating to TinyMCE AI from AI Assistant
Migrating from AI Assistant to cloud-hosted TinyMCE AI is genuinely narrow in scope. Here's what you're not changing:
- Your TinyMCE editor itself doesn't change: The same
tinymce.init()pattern, the same toolbar configuration, and the same plugin architecture all carry forward. TinyMCE AI is additive, so your foundational editor configuration won’t change. - Your content storage and data models are untouched: The migration lives in the editor configuration layer, so how your application handles or persists content remains unchanged.
- The feature integration is the same: TinyMCE AI follows the same plugin declaration pattern as AI Assistant. If you've integrated one TinyMCE plugin before, the mechanics here will be familiar.
How to migrate: step by step
Step 1: Remove AI Assistant from your config
Start by cleaning out AI Assistant. Remove the following from your tinymce.init() call:
- The
aiplugin from your plugins string - The
aishortcutsplugin if you declared it separately - The
ai_requestfunction - Any API key configuration you added to support AI Assistant's backend
Once those are out, your init script is ready for TinyMCE AI configuration.
Step 2: Add the TinyMCE AI add-on
Add tinymceai to your plugins string. By default, the AI toolbar buttons don’t appear. You’ll need to add them in if you want them available for your users.
If you're on a custom toolbar string, add the buttons you want explicitly:
tinymceai-chatfor the chat sidebartinymceai-quickactionsfor the quick actions menutinymceai-reviewfor document review
You can choose which features you want or implement all of them, so it’s best to add the toolbar buttons that correspond to the features your users actually need.
Step 3: Set up your JWT endpoint
For most migrations, this is the only substantive new backend work in the migration. TinyMCE AI authenticates requests through a signed JWT that your backend generates and your editor config fetches. The JWT configuration helps you manage:
- Permissions for users
- Permissions for integrations
- Access control for models, conversations, context sources, actions, and reviews
The flexible and configurable JWT defines AI permissions, which can vary depending on your app’s needs. For roles, plans, tenant-level settings, or integration needs, you’ll configure the JWT.
The token requires five claims: aud (your TinyMCE API key), sub (a user identifier), exp, iat, and auth. Beyond that, if you need additional claims for support or integration, you can add them.
TinyMCE provides complete setup guides for both Node.js and PHP:
To be concrete about the scope, this one endpoint that signs and returns a token. If your team has built JWT authentication for other services before, the pattern will be immediately recognizable.
Step 4: Add tinymceai_token_provider to your editor config
Once your JWT endpoint is live, wire it into the editor config with tinymceai_token_provider. This must be a function that fetches from your endpoint and returns { token: string }. It might look something like this:
tinymceai_token_provider: () => {
return fetch("/api/token").then((r) => r.json());
};
That function is what connects your editor to the managed backend, so every AI request goes through it. To read more about tinymceai_token_provider, check out the TinyMCE AI documentation.
Step 5: Configure the features you want
With the plugin and token provider in place, the remaining editor configuration controls which AI features are exposed in the UI. Make sure these options align with the permissions granted in the JWT.
A working init with common options looks like this:
tinymce.init({
selector: "textarea",
plugins: "tinymceai",
toolbar: "tinymceai-chat tinymceai-quickactions tinymceai-review",
content_id: "document-123",
tinymceai_default_model: "gemini-2-5-flash",
tinymceai_allow_model_selection: true,
tinymceai_reviews: [
"ai-reviews-proofread",
"ai-reviews-improve-clarity",
"ai-reviews-change-tone",
],
tinymceai_quickactions_custom: [
{
title: "Explain like I am five",
prompt: "Explain the following text in simple terms.",
type: "chat",
},
],
tinymceai_token_provider: () => {
return fetch("/api/token").then((r) => r.json());
},
});
About this code: content_id scopes the chat history to a specific document, so set it to a value that maps to a real document identifier in your app. tinymceai_reviews accepts an array of built-in review type strings, so you can offer all five, or just the ones that fit your users' workflows.
⚠️ Note: Chat and Review render as sidebars. If your layout requires the panel to float or be draggable outside the editor boundaries, add tinymceai_sidebar_type: 'floating' to your config.
📖 Read the full reference on available TinyMCE AI configuration options.
What the migration actually costs your team
The JWT endpoint is the only new backend work. Everything else happens inside the tinymce.init() call your team already manages. There's no AI infrastructure to provision, no model to maintain, and no third-party API key to rotate. For a team of three developers already familiar with your TinyMCE integration the migration is a small to medium effort that could realistically take a few hours or a day, with most of that time spent on the JWT endpoint rather than the editor config itself.
The longer-term maintenance picture also changes in your favor. AI Assistant's BYOAI model meant your team owned whatever broke in the AI request chain. With cloud-hosted TinyMCE AI, Tiny owns the backend. Maintenance tasks like model updates, infrastructure changes, and routing logic are now handled for you.
Wrap up
The migration from AI Assistant to TinyMCE AI is narrower in scope than most teams expect. One endpoint, a handful of config changes, and you get persistent chat, document-wide review, built-in quick actions, and a managed backend in return. Your RTE and content layer both stay the same. The only thing that changes is what the AI can do for your users.
If you want to see TinyMCE AI running in your environment before you commit, you can start a free 14-day trial and work through the full configuration against your actual integration.
FAQs
Do I need to keep my API key from AI Assistant after migrating?
No. AI Assistant required you to supply and manage your own LLM API key because it routed requests through your AI backend. TinyMCE AI is a fully managed service, so Tiny handles model routing and infrastructure. Authentication in TinyMCE AI works through a JWT token you generate from your own backend, not through a third-party AI provider key. Once you've migrated, the old LLM API keys aren’t part of the picture.
Will my existing TinyMCE configuration break when I add TinyMCE AI?
No, it shouldn’t as long as you don’t also have AI Assistant in your init. TinyMCE AI is an additional plugin declaration and a token provider function, both in the same tinymce.init() call you already have. Your content storage, your toolbar customizations, your other plugins: none of that changes. The main thing to audit is whether you're using a custom toolbar string. If you are, you'll need to add the AI toolbar buttons explicitly.
Can I run AI Assistant and TinyMCE AI at the same time during a transition period?
This isn't recommended, and in practice there's no reason to. The migration is fast enough (a few config changes and a JWT endpoint) that a parallel running period isn't worth the overhead of maintaining two AI configurations simultaneously.
Is TinyMCE AI available on all TinyMCE plans?
TinyMCE AI is a premium feature suite available on the Essential tier and above. If your current plan doesn't include it, you'll need to upgrade your plan or contact the TinyMCE team. You can start a free 14-day trial to test the full integration before committing. This is worth doing if you want to validate the JWT setup and feature configuration in your specific environment first.
What if I've built custom AI shortcuts in AI Assistant? Can I migrate those?
Yes. In AI Assistant, custom shortcuts were defined as objects in the ai_shortcuts array, each with a title, a prompt, and an optional selection boolean that controlled whether the shortcut required selected text to activate.
In TinyMCE AI, the equivalent is tinymceai_quickactions_custom. Each action still takes a title and a prompt, but gains a type field: either 'action' for an inline preview before insert, or 'chat' to open the result in the chat sidebar. The selection property doesn't carry over directly, but type: 'action' applies transformations to selected text, which covers the same intent. The prompts you wrote translate as-is; the shape of the object is slightly different.
