# ai-sparkwrite-editor > AI-first rich-text editor SDK on Tiptap for React and Vue: the model writes into the document as real nodes. `RichTextKit` is the whole editor as one extension; every feature is also importable on its own. AI goes through one backend URL (`endpoint`); uploads are app-provided callbacks returning durable URLs. Docs: https://ludejun.github.io/ai-sparkwrite-editor/ · Repository: https://github.com/ludejun/ai-sparkwrite-editor · npm: ai-sparkwrite-editor 1.1.0 For coding agents: the repository ships a skill at `skills/ai-sparkwrite-editor/SKILL.md` (also inside the npm package) with integration rules, the AI backend contract and upload recipes. The complete documentation in one file: `llms-full.txt` next to this one. ## Pages - [Getting Started](https://ludejun.github.io/ai-sparkwrite-editor/guide/getting-started): Install ai-sparkwrite-editor and render a working editor in React or Vue - [RichTextKit](https://ludejun.github.io/ai-sparkwrite-editor/guide/kit): RichTextKit — the whole editor as one extension, with a ready-made toolbar and menus - [AI Coding Agents](https://ludejun.github.io/ai-sparkwrite-editor/guide/ai-agents): Give Claude Code, Cursor, Codex or any coding agent the knowledge to integrate ai-sparkwrite-editor correctly - [Bubble Menu](https://ludejun.github.io/ai-sparkwrite-editor/guide/bubble-menu): Bubble Menu - [Bundle size](https://ludejun.github.io/ai-sparkwrite-editor/guide/bundle-size) - [Custom Theme](https://ludejun.github.io/ai-sparkwrite-editor/guide/custom-theme): Custom Theme - [Customization](https://ludejun.github.io/ai-sparkwrite-editor/guide/customization) - [Features](https://ludejun.github.io/ai-sparkwrite-editor/guide/features) - [Frameworks](https://ludejun.github.io/ai-sparkwrite-editor/guide/frameworks) - [Migrating from reactjs-tiptap-editor](https://ludejun.github.io/ai-sparkwrite-editor/guide/how-to-migrate): Migrating from reactjs-tiptap-editor - [Internationalization](https://ludejun.github.io/ai-sparkwrite-editor/guide/internationalization): Internationalization - [Toolbar](https://ludejun.github.io/ai-sparkwrite-editor/guide/toolbar): Toolbar - [AI](https://ludejun.github.io/ai-sparkwrite-editor/extensions/AI/): AI - [Attachment](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Attachment/): Attachment - [Blockquote](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Blockquote/): Blockquote - [Bold](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Bold/): Bold - [BulletList](https://ludejun.github.io/ai-sparkwrite-editor/extensions/BulletList/): BulletList - [Callout](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Callout/): Callout - [Clear](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Clear/): Clear - [Code](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Code/): Code - [CodeBlock](https://ludejun.github.io/ai-sparkwrite-editor/extensions/CodeBlock/): CodeBlock - [CodeView](https://ludejun.github.io/ai-sparkwrite-editor/extensions/CodeView/): CodeView - [Color](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Color/): Color - [Column](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Column/): MultiColumn - [Details](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Details/): Details - [Divider](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Divider/): Divider - [Drawer](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Drawer/): Drawer - [Emoji](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Emoji/): Emoji - [Excalidraw](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Excalidraw/): Excalidraw - [Export Markdown](https://ludejun.github.io/ai-sparkwrite-editor/extensions/ExportMarkdown/): Export Markdown - [Export PDF](https://ludejun.github.io/ai-sparkwrite-editor/extensions/ExportPdf/): Export PDF - [Export Word](https://ludejun.github.io/ai-sparkwrite-editor/extensions/ExportWord/): Export Word - [Font Family](https://ludejun.github.io/ai-sparkwrite-editor/extensions/FontFamily/): FontFamily - [Font Size](https://ludejun.github.io/ai-sparkwrite-editor/extensions/FontSize/): FontSize - [Format Painter](https://ludejun.github.io/ai-sparkwrite-editor/extensions/FormatPainter/): FormatPainter - [Heading](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Heading/): Heading - [Highlight](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Highlight/): Highlight - [History](https://ludejun.github.io/ai-sparkwrite-editor/extensions/History/): History - [Horizontal Rule](https://ludejun.github.io/ai-sparkwrite-editor/extensions/HorizontalRule/): HorizontalRule - [Embed](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Iframe/): Embed - [Image](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Image/): Image - [ImageGif](https://ludejun.github.io/ai-sparkwrite-editor/extensions/ImageGif/): ImageGif - [Import Word](https://ludejun.github.io/ai-sparkwrite-editor/extensions/ImportWord/): Import Word - [Indent](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Indent/): Indent - [Italic](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Italic/): Italic - [Katex](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Katex/): Katex - [Line Height](https://ludejun.github.io/ai-sparkwrite-editor/extensions/LineHeight/): LineHeight - [Link](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Link/): Link - [Mention](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Mention/): Mention - [Mermaid](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Mermaid/): Mermaid - [More Mark](https://ludejun.github.io/ai-sparkwrite-editor/extensions/MoreMark/): MoreMark - [Notice](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Notice/): Notice - [Ordered List](https://ludejun.github.io/ai-sparkwrite-editor/extensions/OrderedList/): OrderedList - [Recorder](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Recorder/): Recorder - [Rich Paste](https://ludejun.github.io/ai-sparkwrite-editor/extensions/RichPaste/): RichPaste - [Search And Replace](https://ludejun.github.io/ai-sparkwrite-editor/extensions/SearchAndReplace/): Search And Replace - [Short Message](https://ludejun.github.io/ai-sparkwrite-editor/extensions/ShortMessage/): ShortMessage - [Slash Command](https://ludejun.github.io/ai-sparkwrite-editor/extensions/SlashCommand/): SlashCommand - [Strike](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Strike/): Strike - [Table](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Table/): Table - [TableOfContents](https://ludejun.github.io/ai-sparkwrite-editor/extensions/TableOfContents/): TableOfContents - [Task List](https://ludejun.github.io/ai-sparkwrite-editor/extensions/TaskList/): TaskList - [Text Align](https://ludejun.github.io/ai-sparkwrite-editor/extensions/TextAlign/): TextAlign - [Text Direction](https://ludejun.github.io/ai-sparkwrite-editor/extensions/TextDirection/): TextDirection - [Underline](https://ludejun.github.io/ai-sparkwrite-editor/extensions/TextUnderline/): UnderLine - [Twitter](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Twitter/): Twitter - [Video](https://ludejun.github.io/ai-sparkwrite-editor/extensions/Video/): Video