CKEditor 5 changelog
This is the CKEditor 5 changelog guide. Here you will find information about the most important changes introduced in the release, new features, and bug fixes.
Information about both major and minor breaking changes is available, too, if the release introduces them. You can read more about breaking changes in CKEditor 5 in the Versioning policy guide.
You can find more information about each release in the blog posts linked at the start of each entry.
This guide provides the changelog information for the 3 latest releases of CKEditor 5. For older releases, refer to the release notes on GitHub.
We are happy to announce the release of CKEditor 5 v47.1.0.
This release introduces a minor stability update, featuring focused fixes and UX improvements.
Breaking changes in CKEditor AI are allowed in the LTS Edition. Learn more why.
-
ai: Simplified CSS for the CKEditor AI integration in a sidebar mode (
config.ai.container.type: 'sidebar'
) by removing default layout constraints:- Removed the default
min-height
from.ck-ai-chat
, - Removed the default
height
from.ck-tabs
, - Removed the default
width
from.ck-ai-tabs
.
Also, the
--ck-tabs-panels-container-width
custom property has been removed from the codebase. - Removed the default
- ai: Added the
config.ai.container.visibleByDefault
configuration option to allow for hiding the AI component on the editor initialization.
- ai: Fixed TypeScript errors when using the
AIChat
plugin caused by incompatibleconstructor()
signatures. - ai: The editor no longer throws an error when accepting or rejecting proposed changes in review mode for “Adjust length” and “Adjust tone and style” checks.
- ai: Fixed an issue where balloons were displayed under the AI container in the overlay mode.
- ai: “Chat commands” from AI Quick Actions could not be correctly used if the selection was collapsed (nothing was selected). Now, a collapsed selection is correctly expanded to the entire element, which includes the selection.
- ai: AI Quick Action buttons added to the editor toolbar and to the balloon toolbar will no longer gain focus on hover, which had led to incorrect UI behavior.
- link: Changing the link’s “displayed text” using the link contextual balloon resulted in incorrect changes if track changes were turned on. Closes #19193.
- pagination: Images placed in tables should not affect the pagination calculations.
- revision-history: Revision history was showing incorrect revision data in a scenario where, for the same current revision, a user made a deletion before another user’s deletion, in the same element.
- ai: Improved performance of the AI Chat prompt input field, which was lagging while typing if the AI Chat feed contained a very long conversation.
- ai: Made the
config.ai.chat.models
configuration property optional because a default configuration is always provided by the plugin anyway. - ai: Enabled keyboard navigation within the custom command form in AI Review.
- ai: Added validation to the AI Review custom command form to disallow sending an empty prompt.
- ai: Changes proposed by AI, which cannot be applied anymore due to other changes that happened in the document, will now be marked as outdated instead of throwing an error when interacted with.
- ai: Improved the title for AI Review parameterized and custom checks, so it is clear what parameters were used to run the review.
- ai: AI Chat will now display a message if the requested model is no longer available. This may happen, for example, when a conversation is loaded from the history.
- ai:
AIQuickActions
now addsAIActions
plugin as its dependency. This is to ensure that the AI Quick Actions dropdown is populated by the default set of actions, without the need to addAIActions
plugin manually.
We are happy to announce the release of CKEditor 5 v47.0.0.
We are introducing CKEditor AI, a set of versatile AI-powered features that integrate directly into CKEditor 5. It brings generation, summarization, correction, contextual chat help, reviews, and many other capabilities, right into the editor. With CKEditor AI, users will no longer need to switch between the editor and AI tools.
Three features are available in this early access phase:
- Chat: a conversational AI for dynamic, multi-turn interactions that support various context sources, model selection, which can perform changes directly on the document.
- Quick actions: one-click transformations and instant insights for selected text.
- Review: automatic checks for grammar, tone, correctness, style, and more, with UX optimized for performing full-document review.
Each feature is powered by our state-of-the-art AI service, available in the Cloud today and coming soon for on-premises deployments. This makes CKEditor AI a true plug-and-play solution that works out of the box, eliminating the need for months of custom development.
CKEditor AI is available as part of our free trial in early access.
We are introducing the CKEditor 5 LTS (Long-term Support) Edition, giving teams up to 3 years of stability with guaranteed updates.
The first LTS release is v47.0.0 (October 2025). It will receive 6 months of active development with new features and fixes, then 2.5 years of maintenance with security and critical compatibility updates.
For v47.x, the Maintenance phase starts in April 2026. From then, the next versions in the v47.x line will be available only under a commercial LTS Edition license. Therefore, starting in April, integrators without an LTS license should migrate to v48.x (the next regular release).
If you need long-term stability, contact sales or read more about CKEditor 5 LTS Edition.
This release also brings several smaller but important enhancements and fixes:
- Widgets: the default
Tab
/Shift+Tab
navigation now works better inside nested editables, improving usability. This change is also reflected in the editor’s current widgets (like tables), leading to more intuitive keyboard navigation. - UI: dialogs in custom features can now be positioned programmatically with more flexible options (
Dialog#show()
). - Comments: confirmation views for deleting comments and threads now use simplified CSS selectors (
.ck-confirm-view
). You may need to adjust custom styles accordingly.
Please refer to the update guide to learn more about these changes.
- ai: Due to the release of the new AI feature, the
ai.*
configuration structure has changed. Until now, the configuration object was used for the formerAIAssistant
feature. Now, this configuration space is used for all AI related features. Configuration for theAIAssistant
was moved. The changes are:ai.aiAssistant
->ai.assistant
,ai.useTheme
->ai.assistant.useTheme
,ai.aws
->ai.assistant.adapter.aws
,ai.openAI
->ai.assistant.adapter.openAI
.
- table, widget: The Widget feature implements the default handling for
Tab
/Shift+Tab
to navigate nested editable elements in the editor content. Closes #19083. The listeners are registered on thelow
priority bubbling event in the context of widgets and editable elements. Please verify if your customTab
/Shift+Tab
handling does not collide with the default one. - ai: The internal structure of the package has changed. Importing
AIAssistant
from the source should be done via@ckeditor/ckeditor5-ai/src/aiassistant/aiassistant.js
path instead of the previous@ckeditor/ckeditor5-ai/src/aiassistant.js
. - comments: Changed the CSS selectors used to style the confirmation view displayed when attempting to remove a comment or an entire comment thread. For now, CSS classes will be more generic, for example:
.ck-confirm-view
instead of.ck-thread__remove-confirm
. If you override styles for these components, you will need to update the selectors. - undo: The
UndoCommandRevertEvent
type was renamed toUndoRedoBaseCommandRevertEvent
and moved to thebasecommand.ts
file. Adjust your code if you have used this type in your custom integration. See #19168. - Updated to TypeScript 5.3.
- ai: Introduced CKEditor AI, a brand-new set of versatile AI-powered features, including: chat, quick actions, and document review capabilities.
- ui: The
position
parameter inDialog#show()
now can be a function that takesdialogRect
anddomRootRect
parameters and should return an object withtop
andleft
properties ornull
. It can be used to specify a custom positioning for the dialog. Closes #19167.
-
engine: The
markerToHighlight()
converter did not clone theview
configuration if passed as plain object leading to incorrect behavior. This affects only custom plugins that used this converter in the described way. Closes #19105. -
engine: The bubbling events now trigger event callbacks according to the registered priorities even if multiple custom contexts are provided. See #19083.
-
export-inline-styles: Fix specificity calculation to handle
:where()
selectors correctly. -
link: The link manual decorators are no longer lost when caption is added to an image. Closes #19024.
-
pagination: Pagination lines should calculate properly for pages with larger horizontal margins.
-
revision-history: Fixed a crash which happened under specific circumstances when a revision was created when document was exported using the Cloud Services REST API (
GET /documents/
endpoint).Although the fix was necessary in Revision History feature code, it was only reproducible in scenarios involving using the mentioned export endpoint.
- comments: Corrected types for the
resolvedBy
parameter inCommentThread#resolve
. It was previously typed asundefined | null
, and is now properly typed asundefined | string
. - undo:
RedoCommand
will now fire'revert'
event when executed, similarly toUndoCommand
. TypeUndoCommandRevertEvent
was renamed toUndoRedoBaseCommandRevertEvent
and moved tobasecommand.ts
file. Closes #19168.
We are happy to announce the release of CKEditor 5 v46.1.1.
This is an internal release focused on improving our development infrastructure and the release process. These changes have no impact on integrators but represent significant improvements to our development workflow.
We have migrated our package management from Yarn Classic to pnpm, delivering substantial benefits:
- Faster installations through efficient linking mechanisms,
- Improved dependency management with stricter resolution and better peer dependency handling,
- Better disk efficiency by eliminating duplicate packages across projects.
We have also introduced dependency locking mechanisms that provide greater stability and predictability in our build process, ensuring consistent environments across development setups and CI/CD pipelines.
As an integrator, you will not notice any changes in functionality or API. This release maintains full backward compatibility while laying the foundation for more efficient development cycles and faster future releases.
If you fork the repository and develop using source code, you will need to update your development setup according to our development environment guide.