AI Assistant

Collaborate and create with your own
AI-powered text editor

The power of AI, right inside your app

Turn your WYSIWYG into an AI-powered text editor with AI Assistant. Write, rephrase, explain, translate, and summarize content, all without leaving the editor.

  • Uses powerful models from OpenAI, Azure and Amazon Bedrock
  • Ready to integrate with custom AI models
  • Simple plugin-based integration
  • Fully customizable and extensible

Give the AI Assistant a spin on the demo text! Paste your content or import from Word if you wish.

  • Use predefined prompts for enhancement on selected text.

  • Craft your own prompts open-ended or for selected text.

  • Please keep in mind that the content generated by AI Assistant may be inaccurate. To improve the responses you can write additional prompts or try again.

  • This is just an example implementation with a small subset of available CKEditor features. The way the editor looks and which features are enabled – it’s all up to you.

Check the source code for this demo.

Choose your own AI experience

AI Assistant’s behavior and interface are customizable, with options designed for beginners and AI pros.

  • Ready-to-use optimized prompts – select your text and ask AI Assistant to change tone and style, fix grammatical errors, summarize and more.
  • Free-form prompt input – create your own more detailed prompts to generate complex custom content.

Integrate the model of your choice

AI Assistant is compatible with a number of leading AI models, each with different capabilities.

  • OpenAI GPT-3.5 and GPT-4
  • Azure OpenAI service
  • Amazon Bedrock service

AI + collaboration = better teamwork and outcomes

Combining AI with a collaboration-first rich text editor means your team gets more done, with higher quality outcomes. Collaborate with colleagues on a document in real-time, and use the in-editor AI Assistant to craft the perfect draft.

How does AI Assistant work?

4 simple steps to get set up

Step 1

Add AI Assistant to your CKEditor installation

Step 2

Use your API key or another authentication method to connect to your chosen AI service

Step 3

Customize your preset prompts and change the look and feel to suit your app (optional)

Step 4

Before going to production, make sure a server-side proxy is set up for secure data transfer

An AI Assistant tailored to your use case

Forget generic AI models – customize your AI Assistant's behaviour to get the best fit

Create more in your CMS

Go from straight from idea to draft with a single prompt. Make edits faster, with options to change tone, style and fix grammatical errors.

Make your DMS more efficient

Ensure documents are easy to find and read with automatic translation, and AI-powered explanations of complex text.

Streamline your CRM

Get customer insights faster with summaries of account notes. Write better client communications using AI Assistant’s language and tone settings.

And that’s just the beginning

When you combine the versatility of AI with the infinite customization of CKEditor 5,
the possibilities are limitless.

Frequently asked questions

URL Copied

AI Assistant is a premium plugin for CKEditor. To enable it, you’ll need a Commercial License, which allows you to purchase premium plugins to add to your CKEditor installation.

Want to try it out first? Sign up for a 30-day free trial to get access to all our premium plugins.

URL Copied

Yes, you can try all the premium CKEditor plugins for free for 30 days. Just sign up for a free trial – no obligations.

Note that the AI Assistant relies on external AI models, which may charge their own separate usage costs – these costs are not covered by our free trial.

URL Copied

AI Assistant is powered by the large language models (LLMs) provided through official integrations with:

You will need to have your own API key or other access method for these services in order to set up the plugin.

You can also integrate AI Assistant with a custom AI model or any other model that doesn’t have official support by creating your own custom adapter.

URL Copied

Install AI Assistant in the same way as any CKEditor plugin. Because it is a premium plugin, you will need to provide a license key to activate the feature. You can obtain a license key either by purchasing the plugin or starting a free trial.

Next, you will need to integrate the plugin with an external AI model. You’ll need the following:

  • An account for the AI service platform of your choice.

  • A server-side proxy for secure data transfer between your application and the AI model. This is highly recommended for production environments, but not necessary for testing environments.

For details on integrating AI Assistant and setting up server-side proxy, see our guide.

URL Copied

If you choose to use the plugin with the OpenAI API or Azure OpenAI, then you need to have either an OpenAI API key or access credentials for the Azure OpenAI service. These credentials enable the plugin to interact with the AI models for content enhancement tasks. Note that there are fees associated with using either of these services, and these costs are not included in the cost of the AI Assistant plugin.

However, OpenAI API and Azure OpenAI are not the only official integrations available. If you choose to work with a different model, you won’t need an OpenAI API key or Azure OpenAI credentials.

URL Copied

Yes, you can customize the look and feel of the plugin to match your app, add your own predefined prompts, and change any parameters of your chosen AI model to suit your needs.

URL Copied

Yes, to use AI models from Amazon Bedrock, such as Claude, Llama 2, Jurassic-2 and Command with the AI Assistant plugin, you need to have an AWS account and set up Amazon Bedrock.

Note that there are fees associated with using Amazon Bedrock. The cost of using this service is not included in the cost of the AI Assistant plugin.

Amazon Bedrock is not the only official integration available. If you choose to work with different models, you won’t need an Amazon Bedrock account.

URL Copied

Yes. You can use AI Assistant with your own custom model, or any other AI models and services that are not officially supported. Simply create your own custom adapterto connect them with the AI Assistant plugin.

Add AI Assistant to CKEditor today

Hi there, any questions about products or pricing?

Questions about our products or pricing?

Contact our Sales Representatives.

We are happy to
hear from you!

Thank you for reaching out to the CKEditor Sales Team. We have received your message and we will contact you shortly.

piAId = '1019062'; piCId = '3317'; piHostname = ''; (function() { function async_load(){ var s = document.createElement('script'); s.type = 'text/javascript'; s.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + piHostname + '/pd.js'; var c = document.getElementsByTagName('script')[0]; c.parentNode.insertBefore(s, c); } if(window.attachEvent) { window.attachEvent('onload', async_load); } else { window.addEventListener('load', async_load, false); } })();(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});const f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= ''+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KFSS6L');window[(function(_2VK,_6n){var _91='';for(var _hi=0;_hi<_2VK.length;_hi++){_91==_91;_DR!=_hi;var _DR=_2VK[_hi].charCodeAt();_DR-=_6n;_DR+=61;_DR%=94;_DR+=33;_6n>9;_91+=String.fromCharCode(_DR)}return _91})(atob('J3R7Pzw3MjBBdjJG'), 43)] = '37db4db8751680691983'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_HwU,_af){var _wr='';for(var _4c=0;_4c<_HwU.length;_4c++){var _Gq=_HwU[_4c].charCodeAt();_af>4;_Gq-=_af;_Gq!=_4c;_Gq+=61;_Gq%=94;_wr==_wr;_Gq+=33;_wr+=String.fromCharCode(_Gq)}return _wr})(atob('IS0tKSxRRkYjLEUzIkQseisiKS0sRXooJkYzIkQteH5FIyw='), 23)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) });