This chapter dissects the layer of an AI-native CMS that editors actually touch: the in-editor copilot. It covers the moving parts of inline intelligence — slash commands, ghost-text autocomplete, selection-aware rewrites, grammar/style/readability checks, brand-voice enforcement, and citation/grounding — and the engineering substrate that makes them possible (ProseMirror/Tiptap, Lexical, Portable Text, Gutenberg). It maps real 2025–2026 products and libraries to concrete UX patterns, and distills which of those patterns reliably work versus which create friction. The thesis: the document editor has become the surface where the LLM, the content model, and real-time collaboration converge, and the editors who win are the ones that treat AI as a reviewable collaborator rather than an autocomplete black box.
In-editor AI in 2026 is no longer a single "generate" button. It decomposes into a stack of distinct interaction modes, each with its own UX and trust profile:
| Mode | Trigger | What it does | Trust model |
|---|---|---|---|
| Ghost-text autocomplete | Typing pause | Predicts the next phrase/sentence inline | Tab to accept, Esc to dismiss; zero commitment |
Slash command (/ai, /) | / keystroke | Opens a command palette: draft, summarize, translate, table | Explicit invocation, scoped output |
| Selection rewrite | Highlight + bubble menu | Rewrite, shorten, expand, change tone on selected text | Diff/preview before apply |
| Inline checks | Continuous (debounced) | Grammar, spelling, style, readability underlines | Suggestion cards, accept/ignore |
| Agent / chat sidebar | Sidebar prompt | Multi-step edits across the whole document, RAG, tool use | Reviewable changes, checkpoints |
| Brand-voice guardrail |
| On generation / on save |
| Enforces tone, terminology, banned phrases |
| Score + rewrite suggestion |
The critical architectural insight that separates 2026 products from 2023 ones is that the AI no longer streams plain text into a textarea. It operates over the structured document model — nodes, marks, schema, custom blocks — and the best implementations let the AI read the schema and propose structural diffs that can be reviewed before they mutate shared state.
Inline AI is only as good as the editor framework it sits on. Four substrates dominate.
ProseMirror / Tiptap. ProseMirror's document-as-immutable-tree-plus-transactions model is ideally suited to AI editing because every change is a discrete, invertible Transaction — you can apply, preview, and roll back AI edits deterministically. Tiptap (the ergonomic wrapper over ProseMirror) has consolidated this into a commercial Content AI / AI Toolkit offering. Per Tiptap's docs (tiptap.dev), the older trio of AI Suggestion, AI Changes, and AI Assistant extensions is being superseded in 2026 by the AI Toolkit, a framework-agnostic layer that works with the Vercel AI SDK, LangChain.js, the OpenAI SDK, the Anthropic SDK, Mastra, or a bring-your-own implementation, including open-source / self-hosted models. Its standout claim is schema awareness: the AI understands the document's content and schema, can make precise edits, stream content in, and operate on only the selected content to cut token cost. The companion AI Agent extension frames the LLM as the "brain" and the extension as the "hands and eyes" — the model decides which tools to call (read document, rewrite, plan, summarize), while the extension executes those tools against the ProseMirror state. Tiptap notes the typical topology: the LLM runs on the server; document editing happens in the browser. It supports checkpoints (revertible snapshots) and Google-Docs-style change review.
For non-commercial / DIY stacks, the open ProseMirror ecosystem offers prosemirror-suggestcat-plugin (GitHub: emergence-engineering), which provides Copilot-style inline ghost-text completion (Tab to accept, Esc to dismiss, with a low-opacity autoCompleteGhostText CSS class and acceptAutoCompletion / dismissAutoCompletion methods), plus AI rewrite/translate/tone-change with streaming. prosemirror-autocomplete (curvenote) handles the /, @, # trigger menus that power Notion-style command palettes.
Lexical. Meta's Lexical (github.com/facebook/lexical) is the lightweight, TypeScript-first, node-based alternative. It deliberately ships no AI features in core — UI, toolbars, and AI live in plugins. Its strength for AI work is the Yjs integration: a binding between Lexical's editor state and a shared Yjs CRDT document, with remote cursors and collaborative undo/redo. That makes Lexical a clean foundation for multiplayer AI editing, where a human and an agent are just two more participants in the CRDT.
Portable Text (Sanity). Sanity's Portable Text is JSON-structured rich text rather than HTML, which is why Sanity's AI Assist can do something the HTML-based editors struggle with: generate content that fills specific schema fields by type (string, array, block content), respecting the content model. More on this below.
Gutenberg (WordPress). WordPress's block editor exposes AI at the block level. Jetpack AI adds an "AI Assistant" button to the toolbar of core blocks (Paragraph, Heading, List) for modify/improve actions, and the AI Building Blocks initiative (make.wordpress.org/ai, July 2025) plus the MCP Adapter let WordPress itself be driven by external assistants (Claude, ChatGPT). WordCamp US 2025's Telex extends this to "describe the block you want, get a downloadable plugin."
The slash command is the most successful invocation pattern of the AI-CMS era, and for a reason: it inherits the muscle memory of / from Slack, Notion, and Linear, and it makes AI opt-in and scoped. In Notion (notion.com/product/ai), AI is reached via /ai or by pressing Space on an empty line; the palette offers draft-from-prompt, improve, adjust length/tone, and continue-writing. Notion reports shipping more AI features in the first four months of 2026 than in all of 2025 — moving from a text-rewriter to a "programmable agent platform" with Skills (saved repeatable workflows the agent can run on command), voice input, cross-page awareness, and sub-3-second autofill.
The design lesson from successful palettes: the palette should be a verb menu, not a chat box. Editors don't want to type a prompt every time; they want named, parameterized actions ("Summarize," "Translate → German," "Make a table") that are discoverable, keyboard-navigable, and remember recent/favorite commands.
Inline ghost text — gray predicted text after the cursor, accepted with Tab — is the pattern with the best effort-to-value ratio because it asks for zero explicit invocation and zero commitment to reject. It was popularized by GitHub Copilot in code and has crossed cleanly into prose (prosemirror-suggestcat-plugin, Sapling's ProseMirror integration, Notion's autofill). The UX rules that make it tolerable rather than annoying:
The bubble menu that appears on text selection — Rewrite, Shorten, Expand, Fix grammar, Change tone — is where AI most directly edits human prose. The single most important UX decision here is never silently overwrite the selection. The patterns that work present the change as a reviewable diff: original and proposed shown side-by-side or as inline insertions/deletions, with explicit Accept / Reject / Regenerate. Tiptap's "AI Changes" and Sanity's transform actions both model this. Selection-awareness also cuts cost: Tiptap's toolkit passes only the selected content to the model, reducing tokens versus shipping the whole document.
This is the most mature category, predating LLMs by a decade, and it has a clear standards backbone.
Readability is quantified, not vibes. The dominant metrics are Flesch Reading Ease and the Flesch–Kincaid Grade Level. Yoast SEO (WordPress) surfaces the Flesch score plus sentence-length, passive-voice, and transition-word checks in real time in its Insights tab (yoast.com). This matters for compliance: WCAG 2.2 Success Criterion 3.1.5 (Reading Level, AAA) effectively asks that content not require reading ability beyond lower-secondary education, and accessibility tooling (e.g., Equalize Digital's Accessibility Checker) flags content above roughly a 9th-grade level and prompts for a plain-language summary. A well-built AI editor turns this from a passive score into an active affordance: "this paragraph reads at grade 14 — simplify?" with a one-click rewrite.
Grammar/style has bifurcated. Deterministic rule engines (LanguageTool, Sapling, Grammarly's classic checker) still drive the underline-and-suggest loop because they're fast, explainable, and cheap to run continuously. LLMs now layer on top for holistic rewrites and tone. The hybrid is the state of the art: rules for the always-on continuous pass, LLM for the explicit on-demand rewrite.
For organizations, "does it sound like us" matters more than "is it grammatical." The 2026 approaches:
| Vendor | Mechanism | Notes |
|---|---|---|
| Writer.com | Voice profiles + style rules; train on up to 8 samples / 300–500+ words | Strong on compliance-grade enforcement; users report output can feel rigid/repetitive |
| Grammarly Business | Brand Tones; analyzes existing writing to infer voice, then real-time on-brand suggestions org-wide | Tone detection + style-guide distribution across teams |
| Notion AI | Custom Instructions saved to the workspace | Agent learns brand voice, team structure, stylistic bans (e.g., "no passive voice") |
| Sanity AI Assist | Reusable instructions attached to fields/documents | Voice rules live next to the structured content they govern |
The pattern that works: encode the style guide as machine-applied instructions attached to the workspace/field, not as a PDF humans are supposed to remember. The risk, well documented for Writer, is over-enforcement — rigid rules flatten voice into compliance-speak. The mitigation is to scope hard rules narrowly (banned terms, legal phrasing, capitalization) and treat tone as soft, regeneratable suggestion.
Sanity AI Assist (@sanity/assist) is the clearest example of AI that is content-model-native. Per Sanity's docs, you attach reusable AI instructions to fields and documents, and the assistant is aware of your schema — it generates content matching field types (strings, arrays, Portable Text block content) and you control which fields it touches via per-field/type checkboxes. Sanity's Agent Actions expose three primitives over the schema — Generate, Transform, Translate — and are available on the Growth plan and up. The practical 2026 use case is closing the gap between editorial intent and a complete content object: auto-populating SEO/metadata fields consistently so the front-end always has something to render. This is the structured-content analog of inline editing: the "inline" surface is the field, and the intelligence is bound to the type.
Inline AI that asserts facts inside editorial content is a liability unless it is grounded. The 2025 evidence is sobering: Stanford's 2025 study of purpose-built, RAG-powered legal assistants still found hallucinations in 17–34% of queries, and general AI research tools hallucinate 17–33% of citations (per industry summaries from INRA.AI and ClarityArc). Retrieval-augmented generation (RAG) reduces — does not eliminate — the problem; reported reductions reach ~71% in production but never hit zero. The design conclusions for an AI-CMS editor:
The frontier pattern is the AI as a participant in a multiplayer document rather than a one-shot generator. The enabling tech is CRDT sync (Yjs) plus a presence/streaming layer. Liveblocks (liveblocks.io), whose 3.0 release centers on "ready-made AI copilots and collaboration," provides LiveblocksYjsProvider bindings for Tiptap, Lexical, and Quill, and positions the copilot as "a teammate inside shared, multiplayer experiences" that understands app state, takes in-product actions, and can stream fully custom React components as responses. The behaviors that define good multiplayer AI:
Work:
/ palette, selection bubble) over an always-talking chatbot.Anti-patterns: silent overwrites; modal chat that interrupts flow; ghost text mid-word or paragraph-length; ungrounded factual generation presented as final; brand rules so rigid they flatten voice; streaming agent edits directly into shared state visible to all collaborators before acceptance; treating the LLM as the source of truth instead of a reviewable proposer.
acceptAutoCompletion), AI rewrite/translate/tone with streaming./, @, # trigger menus for Notion/Confluence-style command palettes./ai and Space invocation, Custom Instructions for brand voice, Skills (saved agent workflows), voice input.LiveblocksYjsProvider for Tiptap/Lexical/Quill; private-until-accepted suggestions.