Skip to main content
@reviseio/editor is the browser editor. From version 3 it has no Node entry point: server-side work is revise, the MIT CLI and TypeScript library built on the same engine and released at the same version. It is an optional peer dependency of the editor; a browser-only app doesn’t need it.
Documents move between the two unchanged: a Y.Doc the editor edits is a Y.Doc revise opens, and the reverse. revise runs the same converters and the same document tools, with the same schemas and { ok, value | error } results, so a server can seed a room, edit it while people have it open, and export it to Word:

Library

Open, read, edit, review, and export documents.

Collaboration

Seed, edit, and export live rooms.

Server editing

A server and browsers in the same room.

Tools on the server

The agent tools without a browser.

Migrate from version 2

Version 3 removes the editor’s /server entry point. Install revise at the editor’s version and replace the imports: Three differences when porting:
  • revise methods are async: await them.
  • Tools return { ok: true, value } or { ok: false, error } instead of throwing. doc.tools.call() is the typed form; doc.tools.run() takes a tool name and JSON from a model.
  • doc.export() returns { bytes, fidelity, … }: write .bytes.
jsdom is no longer a peer of the editor; revise brings what it needs. doc.snapshot() is revise’s own storage format, not a Y.js update: keep Y.encodeStateAsUpdate(doc.ydoc) for anything that speaks Y.js, such as a sync server or the editor. The 2.3 backend reference still documents the /server entry point.