Some checks failed
Verify / Install node dependencies (push) Failing after 2s
Verify / Build packages (push) Has been skipped
Verify / Check linting & formatting (push) Has been skipped
Verify / Run unit tests (push) Has been skipped
Verify / Run e2e tests (shard 1/4) (push) Has been skipped
Verify / Run e2e tests (shard 2/4) (push) Has been skipped
Verify / Run e2e tests (shard 3/4) (push) Has been skipped
Verify / Run e2e tests (shard 4/4) (push) Has been skipped
Publish / Resolve publish config (push) Failing after 2s
Publish / Send notification to Slack (push) Has been skipped
Publish / Send failure notification to Slack (push) Failing after 8s
Verify / Merge e2e reports (push) Has been skipped
Publish / Build (push) Has been skipped
Publish / Bump Versions OR Release to Registry (push) Has been skipped
166 lines
6.8 KiB
Markdown
166 lines
6.8 KiB
Markdown
---
|
|
name: tiptap
|
|
description: Helps coding agents integrate and work with the Tiptap rich text editor. Use when building or modifying a rich text editor with Tiptap, installing Tiptap extensions, or implementing features like collaboration, comments, AI, or document conversion.
|
|
compatibility: Requires git
|
|
metadata:
|
|
author: tiptap
|
|
version: '1.0'
|
|
---
|
|
|
|
# Tiptap Integration Skill
|
|
|
|
This skill contains instructions for integrating the Tiptap rich text editor into an app and
|
|
developing new features with it.
|
|
|
|
This is not the Tiptap editor you know: it may have evolved and changed since the version you're familiar with.
|
|
Before you implement any feature with Tiptap, reference the Tiptap code and documentation to make sure you implement
|
|
it correctly. Make sure any decision you make is in accordance to the "Best Practices" section and is grounded in the
|
|
Tiptap documentation and source code. Do not guess or invent patterns, make sure the code you write matches the library
|
|
source code and the documentation.
|
|
|
|
## Finding Tiptap source and docs
|
|
|
|
Avoid cloning. You usually don't need to.
|
|
|
|
- **Docs**: append `.md` to any page URL on https://tiptap.dev/docs to fetch it as Markdown.
|
|
`https://tiptap.dev/docs/llms.txt` lists every page with a one-line description.
|
|
- **Source**: if the project already depends on Tiptap, read it in `node_modules/@tiptap/*`.
|
|
|
|
Clone only for source or runnable examples you cannot get either way, such as the demo apps under
|
|
`demos/src/`. Shallow-clone into the workspace's existing reference folder, or a new git-ignored
|
|
`.reference/`:
|
|
|
|
```bash
|
|
git clone --depth 1 --filter=blob:none https://github.com/ueberdosis/tiptap .reference/tiptap
|
|
```
|
|
|
|
Never clone `tiptap-docs`. The site is the interface.
|
|
|
|
A cloned Tiptap repository is read-only reference. Its `AGENTS.md` / `CLAUDE.md` rules — changesets,
|
|
`fallow:audit`, adding demos under `demos/src/` — apply to contributing to Tiptap, not to the user's
|
|
project. Never follow them in the user's repo.
|
|
|
|
## Best Practices
|
|
|
|
### General
|
|
|
|
- For a new install, use the latest stable version. Resolve it with `npm view @tiptap/core version`.
|
|
- The editor and extension packages published from the tiptap monorepo share one version line. Pin
|
|
every one of them to that same version. Mixing versions risks introducing bugs.
|
|
- Some packages have their own version line. Resolve these from the registry, never from
|
|
`@tiptap/core`: `@tiptap/ai-toolkit`, `@tiptap/y-tiptap`, `@tiptap-pro/*` (private registry),
|
|
`@hocuspocus/*`.
|
|
- Do not mix majors. For a project still on Tiptap 2, upgrade first. See
|
|
https://tiptap.dev/docs/guides/upgrade-tiptap-v2.md.
|
|
- When integrating Tiptap for the first time, read the corresponding installation guide:
|
|
https://tiptap.dev/docs/editor/getting-started/install.md, plus the page for your framework under
|
|
`https://tiptap.dev/docs/editor/getting-started/install/` (e.g. `react.md`, `nextjs.md`, `vue3.md`,
|
|
`svelte.md`, `nuxt.md`, `vanilla-javascript.md`).
|
|
- When server-side rendering (e.g. Next.js), set the `immediatelyRender: false` option when initializing the editor. Otherwise, the editor will crash. Learn more about this in
|
|
https://tiptap.dev/docs/editor/getting-started/install/nextjs.md.
|
|
|
|
### React
|
|
|
|
Default to the Composable API (`<Tiptap>` + `useTiptap()`) for new code. The hook-based
|
|
`useEditor` + `<EditorContent />` API is still supported and is fine for an editor that lives in a
|
|
single component.
|
|
|
|
Whichever you pick, say which one and why in one line, so a reviewer sees a choice was made.
|
|
|
|
## Implementing Editor Features
|
|
|
|
When the user asks you to implement one of these features, read the linked documentation for guidance.
|
|
Every link below is the Markdown form of a live page; `https://tiptap.dev/docs/llms.txt` lists the rest
|
|
of each section.
|
|
|
|
### Real-time collaboration
|
|
|
|
Multiple users editing a document simultaneously. See
|
|
https://tiptap.dev/docs/collaboration/getting-started/overview.md and
|
|
https://tiptap.dev/docs/collaboration/getting-started/install.md.
|
|
|
|
Use Tiptap Cloud to implement real-time collaboration. Use the Collaboration extension:
|
|
|
|
```
|
|
const doc = new Y.Doc()
|
|
|
|
const editor = new Editor({
|
|
extensions: [
|
|
Collaboration.configure({
|
|
document: doc,
|
|
}),
|
|
],
|
|
})
|
|
```
|
|
|
|
Use the TiptapCollabProvider:
|
|
|
|
```
|
|
const provider = new TiptapCollabProvider({
|
|
name: 'unique_document_name',
|
|
appId: 'APP_ID', // Your document server ID from the Cloud dashboard
|
|
token: 'JWT_TOKEN', // Your JWT token
|
|
document: doc,
|
|
})
|
|
```
|
|
|
|
If it's the first time setting up collaboration and the Tiptap Cloud account is not set up, explain
|
|
to the user how to set up a Tiptap Cloud account and obtain the environment variables.
|
|
|
|
### Comments
|
|
|
|
Implement comments with the Comments extension.
|
|
|
|
Thread-based inline and document comments. See
|
|
https://tiptap.dev/docs/comments/getting-started/overview.md and
|
|
https://tiptap.dev/docs/comments/getting-started/install.md.
|
|
|
|
### Tracked changes
|
|
|
|
Track, accept, and reject document edits. See
|
|
https://tiptap.dev/docs/tracked-changes/getting-started/overview.md and
|
|
https://tiptap.dev/docs/tracked-changes/getting-started/install.md.
|
|
|
|
### Import/Export
|
|
|
|
Convert documents to and from DOCX, PDF, Markdown, and other formats. See
|
|
https://tiptap.dev/docs/conversion/getting-started/overview.md and
|
|
https://tiptap.dev/docs/conversion/getting-started/install.md.
|
|
|
|
### AI Toolkit
|
|
|
|
Agentic document work: an AI reading, editing, commenting on, proofreading, and reviewing Tiptap
|
|
documents. Server-side is the default. See https://tiptap.dev/docs/ai/ai-toolkit/overview.md.
|
|
|
|
Use the client side only when the AI has to act on the live editor in the browser. See
|
|
https://tiptap.dev/docs/ai/ai-toolkit/client/overview.md.
|
|
|
|
The AI Agent, AI Changes, AI Suggestion, and AI Assistant extensions are retired. Don't recommend
|
|
them, and never implement from any page under `https://tiptap.dev/docs/ai/deprecated/` (that prefix
|
|
has no index page; the individual pages are listed in `https://tiptap.dev/docs/llms.txt`). To move an
|
|
existing integration off them, see
|
|
https://tiptap.dev/docs/ai/ai-toolkit/client/advanced-guides/migration-guides.md.
|
|
|
|
### Basic AI Generation
|
|
|
|
Generate and edit text content from one-shot prompts. See https://tiptap.dev/docs/ai/basic/overview.md.
|
|
|
|
### Version history
|
|
|
|
Save and restore document snapshots. See https://tiptap.dev/docs/collaboration/documents/snapshot.md.
|
|
|
|
### Snapshot compare
|
|
|
|
Highlight differences between document versions. See https://tiptap.dev/docs/collaboration/documents/snapshot-compare.md.
|
|
|
|
### Pages
|
|
|
|
Print-ready page layout with headers, footers, and page breaks. See
|
|
https://tiptap.dev/docs/pages/getting-started/overview.md and
|
|
https://tiptap.dev/docs/pages/getting-started/install.md.
|
|
|
|
## Pro Extensions
|
|
|
|
Some Tiptap extensions are distributed through a private npm registry. To install pro packages, see
|
|
https://tiptap.dev/docs/guides/pro-extensions.md for setup instructions.
|