.docx files from Node.js or Python. They manage the CLI process for you and expose typed methods for every operation.
The SDKs are in alpha. The API surface matches the Document API and will evolve alongside it.
Installation
- Node.js
- Python
Quick start
The Node SDK supports both ESM and CommonJS:- Node.js (ESM)
- Node.js (CJS)
- Python
defaultChangeMode: 'tracked' (Node) or default_change_mode='tracked' (Python) to make mutations use tracked changes by default. If you pass changeMode on a specific call, that explicit value overrides the default.
The Python SDK also exposes synchronous SuperDocClient with the same doc.* operations when you prefer non-async code paths.
User identity
By default the SDK attributes edits to a generic “CLI” user. Setuser on the client to identify your automation in comments, tracked changes, and collaboration presence:
- Node.js
- Python
user is injected into every doc.open call. If you pass userName or userEmail on a specific doc.open, those per-call values take precedence.
Collaboration sessions
Use this when your app already has a live collaboration room (Liveblocks, Hocuspocus, or SuperDoc Yjs).Join an existing room
PasscollabUrl and collabDocumentId to doc.open:
- Node.js
- Python
Start an empty room from a local .docx
If the room is empty, pass doc together with collaboration params:
- Node.js
- Python
doc:
| Room state | Result |
|---|---|
| Room already has content | SDK joins the room. doc is ignored. |
Room is empty and doc is provided | SDK seeds the room from doc, then joins. |
Room is empty and no doc is provided | SDK starts a blank document. |
Control empty-room behavior
| Parameter | Type | Default | Description |
|---|---|---|---|
collabUrl | string | — | WebSocket URL for your collaboration provider. |
collabDocumentId | string | session ID | Room/document ID on the provider. |
doc | string | — | Local .docx used only when the room is empty. |
onMissing | string | seedFromDoc | seedFromDoc, blank, or error. |
bootstrapSettlingMs | number | 1500 | Wait time (ms) before seeding to avoid race conditions. |
onMissing values:
| Value | When the room is empty | Use when |
|---|---|---|
seedFromDoc (default) | Seeds from doc if provided, otherwise seeds a blank document. | First-time opens where you provide a .docx template. |
blank | Always seeds a blank document. | You want an empty starting document regardless of doc. |
error | Throws an error instead of seeding. | Reopening existing ydocs — prevents accidental overwrites. |
- Node.js
- Python
Check if the SDK seeded or joined
doc.open returns bootstrap details in collaboration mode:
- Node.js
- Python
Available operations
The SDKs expose all operations from the Document API plus lifecycle and session commands. The tables below are grouped by category.- Node.js
- Python
Core
| Operation | CLI command | Description |
|---|---|---|
doc.get | get | Read the full document as an SDDocument structure. |
doc.find | find | Search the document for text or node matches using SDM/1 selectors. |
doc.getNode | get-node | Retrieve a single node by target position. |
doc.getNodeById | get-node-by-id | Retrieve a single node by its unique ID. |
doc.getText | get-text | Extract the plain-text content of the document. |
doc.getMarkdown | get-markdown | Extract the document content as a Markdown string. |
doc.getHtml | get-html | Extract the document content as an HTML string. |
doc.markdownToFragment | markdown-to-fragment | Convert a Markdown string into an SDM/1 structural fragment. |
doc.info | info | Return document metadata including revision, node count, and capabilities. |
doc.clearContent | clear-content | Clear all document body content, leaving a single empty paragraph. |
doc.insert | insert | Insert content at a target position, or at the end of the document when target is omitted. Accepts two input shapes: legacy string-based (value + type) or structural SDFragment (content). Supports text (default), markdown, and html content types via the type field in legacy mode. Structural mode accepts an SDFragment with typed nodes (paragraphs, tables, images, etc.). |
doc.replace | replace | Replace content at a target position with new content. Accepts two input shapes: legacy string-based (text) or structural SDFragment (content). Structural mode replaces the target range with typed nodes (paragraphs, tables, images, etc.). |
doc.delete | delete | Delete content at a target position. |
doc.blocks.delete | blocks delete | Delete an entire block node (paragraph, heading, list item, table, image, or sdt) deterministically. |
doc.query.match | query match | Deterministic selector-based search with cardinality contracts for mutation targeting. |
doc.mutations.preview | mutations preview | Dry-run a mutation plan, returning resolved targets without applying changes. |
doc.mutations.apply | mutations apply | Execute a mutation plan atomically against the document. |
doc.capabilities.get | capabilities | Query runtime capabilities supported by the current document engine. |
doc.hyperlinks.list | hyperlinks list | List all hyperlinks in the document, with optional filtering by href, anchor, or display text. |
doc.hyperlinks.get | hyperlinks get | Retrieve details of a specific hyperlink by its inline address. |
doc.hyperlinks.wrap | hyperlinks wrap | Wrap an existing text range with a hyperlink. |
doc.hyperlinks.insert | hyperlinks insert | Insert new linked text at a target position. |
doc.hyperlinks.patch | hyperlinks patch | Update hyperlink metadata (destination, tooltip, target, rel) without changing display text. |
doc.hyperlinks.remove | hyperlinks remove | Remove a hyperlink. Mode ‘unwrap’ preserves display text; ‘deleteText’ removes the linked content entirely. |
doc.headerFooters.list | header-footers list | List header/footer slot entries across sections. |
doc.headerFooters.get | header-footers get | Get a single header/footer slot entry by address. |
doc.headerFooters.resolve | header-footers resolve | Resolve the effective header/footer reference for a slot, walking the section inheritance chain. |
doc.headerFooters.refs.set | header-footers refs set | Set an explicit header/footer reference on a section slot. |
doc.headerFooters.refs.clear | header-footers refs clear | Clear an explicit header/footer reference from a section slot. |
doc.headerFooters.refs.setLinkedToPrevious | header-footers refs set-linked-to-previous | Link or unlink a header/footer slot to/from the previous section. |
doc.headerFooters.parts.list | header-footers parts list | List unique header/footer part records from document relationships. |
doc.headerFooters.parts.create | header-footers parts create | Create a new independent header/footer part, optionally cloned from an existing part. |
doc.headerFooters.parts.delete | header-footers parts delete | Delete a header/footer part and its associated relationship when no section slots reference it. |
doc.create.contentControl | create content-control | Create a new content control (SDT) in the document. |
doc.contentControls.list | content-controls list | List all content controls in the document with optional type/tag filtering. |
doc.contentControls.get | content-controls get | Retrieve a single content control by target. |
doc.contentControls.listInRange | content-controls list-in-range | List content controls within a block range. |
doc.contentControls.selectByTag | content-controls select-by-tag | Select content controls matching a specific tag value. |
doc.contentControls.selectByTitle | content-controls select-by-title | Select content controls matching a specific title (alias) value. |
doc.contentControls.listChildren | content-controls list-children | List direct child content controls nested inside the target. |
doc.contentControls.getParent | content-controls get-parent | Get the parent content control of the target, if any. |
doc.contentControls.wrap | content-controls wrap | Wrap existing content with a new content control. |
doc.contentControls.unwrap | content-controls unwrap | Remove the content control wrapper, preserving its content in place. |
doc.contentControls.delete | content-controls delete | Delete a content control and its content from the document. |
doc.contentControls.copy | content-controls copy | Copy a content control to a destination position. Copied SDTs receive new IDs. |
doc.contentControls.move | content-controls move | Move a content control to a new position. Preserves original IDs. |
doc.contentControls.patch | content-controls patch | Patch metadata properties on a content control (tag, alias, appearance, color, etc.). |
doc.contentControls.setLockMode | content-controls set-lock-mode | Set the lock mode on a content control. |
doc.contentControls.setType | content-controls set-type | Transition a content control to a different semantic type. Metadata-only; no implicit content rewrite. |
doc.contentControls.getContent | content-controls get-content | Get the text content of a content control. |
doc.contentControls.replaceContent | content-controls replace-content | Replace the entire content of a content control. |
doc.contentControls.clearContent | content-controls clear-content | Clear all content inside a content control, leaving it empty. |
doc.contentControls.appendContent | content-controls append-content | Append content to the end of a content control. |
doc.contentControls.prependContent | content-controls prepend-content | Prepend content to the beginning of a content control. |
doc.contentControls.insertBefore | content-controls insert-before | Insert content immediately before a content control. |
doc.contentControls.insertAfter | content-controls insert-after | Insert content immediately after a content control. |
doc.contentControls.getBinding | content-controls get-binding | Get the data binding metadata (w:dataBinding) of a content control. |
doc.contentControls.setBinding | content-controls set-binding | Set data binding metadata on a content control. |
doc.contentControls.clearBinding | content-controls clear-binding | Remove data binding metadata from a content control. |
doc.contentControls.getRawProperties | content-controls get-raw-properties | Get the raw sdtPr properties of a content control as a passthrough hash. |
doc.contentControls.patchRawProperties | content-controls patch-raw-properties | Apply raw XML-level patches to the sdtPr subtree of a content control. |
doc.contentControls.validateWordCompatibility | content-controls validate-word-compatibility | Validate a content control for Word compatibility issues. |
doc.contentControls.normalizeWordCompatibility | content-controls normalize-word-compatibility | Normalize a content control to resolve Word compatibility issues. |
doc.contentControls.normalizeTagPayload | content-controls normalize-tag-payload | Normalize a content control tag between plain-string and JSON-encoded formats. |
doc.contentControls.text.setMultiline | content-controls text set-multiline | Set or clear the multiline attribute on a plain-text content control. |
doc.contentControls.text.setValue | content-controls text set-value | Set the text value of a plain-text content control. |
doc.contentControls.text.clearValue | content-controls text clear-value | Clear the text value of a plain-text content control. |
doc.contentControls.date.setValue | content-controls date set-value | Set the date value of a date content control. |
doc.contentControls.date.clearValue | content-controls date clear-value | Clear the date value of a date content control. |
doc.contentControls.date.setDisplayFormat | content-controls date set-display-format | Set the display format string for a date content control. |
doc.contentControls.date.setDisplayLocale | content-controls date set-display-locale | Set the display locale for a date content control. |
doc.contentControls.date.setStorageFormat | content-controls date set-storage-format | Set the XML storage format for a date content control. |
doc.contentControls.date.setCalendar | content-controls date set-calendar | Set the calendar type for a date content control. |
doc.contentControls.checkbox.getState | content-controls checkbox get-state | Get the checked state of a checkbox content control. |
doc.contentControls.checkbox.setState | content-controls checkbox set-state | Set the checked state of a checkbox content control. |
doc.contentControls.checkbox.toggle | content-controls checkbox toggle | Toggle the checked state of a checkbox content control. |
doc.contentControls.checkbox.setSymbolPair | content-controls checkbox set-symbol-pair | Set the checked and unchecked symbol glyphs for a checkbox content control. |
doc.contentControls.choiceList.getItems | content-controls choice-list get-items | Get the list items and selected value of a comboBox or dropDownList content control. |
doc.contentControls.choiceList.setItems | content-controls choice-list set-items | Replace the list items of a comboBox or dropDownList content control. |
doc.contentControls.choiceList.setSelected | content-controls choice-list set-selected | Set the selected value of a comboBox or dropDownList content control. |
doc.contentControls.repeatingSection.listItems | content-controls repeating-section list-items | List the repeating section items inside a repeating section content control. |
doc.contentControls.repeatingSection.insertItemBefore | content-controls repeating-section insert-item-before | Insert a new item before a specific index in a repeating section. |
doc.contentControls.repeatingSection.insertItemAfter | content-controls repeating-section insert-item-after | Insert a new item after a specific index in a repeating section. |
doc.contentControls.repeatingSection.cloneItem | content-controls repeating-section clone-item | Clone a repeating section item at the given index. Cloned SDTs receive new IDs. |
doc.contentControls.repeatingSection.deleteItem | content-controls repeating-section delete-item | Delete a repeating section item at the given index. |
doc.contentControls.repeatingSection.setAllowInsertDelete | content-controls repeating-section set-allow-insert-delete | Set the allowInsertDelete flag on a repeating section. |
doc.contentControls.group.wrap | content-controls group wrap | Wrap a content control inside a new group content control. Always nests; not idempotent. |
doc.contentControls.group.ungroup | content-controls group ungroup | Remove the group designation from a group content control. |
doc.bookmarks.list | bookmarks list | List all bookmarks in the document. |
doc.bookmarks.get | bookmarks get | Get detailed information about a specific bookmark. |
doc.bookmarks.insert | bookmarks insert | Insert a new named bookmark at a target location. |
doc.bookmarks.rename | bookmarks rename | Rename an existing bookmark. |
doc.bookmarks.remove | bookmarks remove | Remove a bookmark from the document. |
doc.footnotes.list | footnotes list | List all footnotes and endnotes in the document. |
doc.footnotes.get | footnotes get | Get detailed information about a specific footnote or endnote. |
doc.footnotes.insert | footnotes insert | Insert a new footnote or endnote at a target location. |
doc.footnotes.update | footnotes update | Update the content of an existing footnote or endnote. |
doc.footnotes.remove | footnotes remove | Remove a footnote or endnote from the document. |
doc.footnotes.configure | footnotes configure | Configure numbering and placement for footnotes or endnotes. |
doc.crossRefs.list | cross-refs list | List all cross-reference fields in the document. |
doc.crossRefs.get | cross-refs get | Get detailed information about a specific cross-reference field. |
doc.crossRefs.insert | cross-refs insert | Insert a new cross-reference field at a target location. |
doc.crossRefs.rebuild | cross-refs rebuild | Rebuild (recalculate) a cross-reference field. |
doc.crossRefs.remove | cross-refs remove | Remove a cross-reference field from the document. |
doc.index.list | index list | List all index blocks in the document. |
doc.index.get | index get | Get detailed information about a specific index block. |
doc.index.insert | index insert | Insert a new index block at a target location. |
doc.index.configure | index configure | Update the configuration of an existing index block. |
doc.index.rebuild | index rebuild | Rebuild (regenerate) an index block from its entries. |
doc.index.remove | index remove | Remove an index block from the document. |
doc.index.entries.list | index entries list | List all XE (index entry) fields in the document. |
doc.index.entries.get | index entries get | Get detailed information about a specific XE index entry. |
doc.index.entries.insert | index entries insert | Insert a new XE index entry field at a target location. |
doc.index.entries.update | index entries update | Update the properties of an existing XE index entry. |
doc.index.entries.remove | index entries remove | Remove an XE index entry field from the document. |
doc.captions.list | captions list | List all caption paragraphs in the document. |
doc.captions.get | captions get | Get detailed information about a specific caption paragraph. |
doc.captions.insert | captions insert | Insert a new caption paragraph adjacent to a target block. |
doc.captions.update | captions update | Update the text of an existing caption paragraph. |
doc.captions.remove | captions remove | Remove a caption paragraph from the document. |
doc.captions.configure | captions configure | Configure numbering format for a caption label. |
doc.fields.list | fields list | List all fields in the document. |
doc.fields.get | fields get | Get detailed information about a specific field. |
doc.fields.insert | fields insert | Insert a raw field code at a target location. |
doc.fields.rebuild | fields rebuild | Rebuild (recalculate) a field. |
doc.fields.remove | fields remove | Remove a field from the document. |
doc.citations.list | citations list | List all citation marks in the document. |
doc.citations.get | citations get | Get detailed information about a specific citation mark. |
doc.citations.insert | citations insert | Insert a new citation mark at a target location. |
doc.citations.update | citations update | Update an existing citation mark’s source references. |
doc.citations.remove | citations remove | Remove a citation mark from the document. |
doc.citations.sources.list | citations sources list | List all citation sources in the document store. |
doc.citations.sources.get | citations sources get | Get detailed information about a specific citation source. |
doc.citations.sources.insert | citations sources insert | Register a new citation source in the document store. |
doc.citations.sources.update | citations sources update | Update the fields of an existing citation source. |
doc.citations.sources.remove | citations sources remove | Remove a citation source from the document store. |
doc.citations.bibliography.get | citations bibliography get | Get information about the bibliography block. |
doc.citations.bibliography.insert | citations bibliography insert | Insert a bibliography block at a target location. |
doc.citations.bibliography.rebuild | citations bibliography rebuild | Rebuild the bibliography from current sources. |
doc.citations.bibliography.configure | citations bibliography configure | Configure the bibliography style. |
doc.citations.bibliography.remove | citations bibliography remove | Remove the bibliography block from the document. |
doc.authorities.list | authorities list | List all table-of-authorities blocks in the document. |
doc.authorities.get | authorities get | Get detailed information about a specific table-of-authorities block. |
doc.authorities.insert | authorities insert | Insert a new table-of-authorities block at a target location. |
doc.authorities.configure | authorities configure | Update the configuration of an existing table-of-authorities block. |
doc.authorities.rebuild | authorities rebuild | Rebuild a table-of-authorities block from its entries. |
doc.authorities.remove | authorities remove | Remove a table-of-authorities block from the document. |
doc.authorities.entries.list | authorities entries list | List all TA (authority entry) fields in the document. |
doc.authorities.entries.get | authorities entries get | Get detailed information about a specific TA authority entry. |
doc.authorities.entries.insert | authorities entries insert | Insert a new TA authority entry field at a target location. |
doc.authorities.entries.update | authorities entries update | Update the properties of an existing TA authority entry. |
doc.authorities.entries.remove | authorities entries remove | Remove a TA authority entry field from the document. |
Format
| Operation | CLI command | Description |
|---|---|---|
doc.format.apply | format apply | Apply inline run-property patch changes to the target range with explicit set/clear semantics. |
doc.format.bold | format bold | Set or clear the bold inline run property on the target text range. |
doc.format.italic | format italic | Set or clear the italic inline run property on the target text range. |
doc.format.strike | format strike | Set or clear the strike inline run property on the target text range. |
doc.format.underline | format underline | Set or clear the underline inline run property on the target text range. |
doc.format.highlight | format highlight | Set or clear the highlight inline run property on the target text range. |
doc.format.color | format color | Set or clear the color inline run property on the target text range. |
doc.format.fontSize | format font-size | Set or clear the fontSize inline run property on the target text range. |
doc.format.fontFamily | format font-family | Set or clear the fontFamily inline run property on the target text range. |
doc.format.letterSpacing | format letter-spacing | Set or clear the letterSpacing inline run property on the target text range. |
doc.format.vertAlign | format vert-align | Set or clear the vertAlign inline run property on the target text range. |
doc.format.position | format position | Set or clear the position inline run property on the target text range. |
doc.format.dstrike | format dstrike | Set or clear the dstrike inline run property on the target text range. |
doc.format.smallCaps | format small-caps | Set or clear the smallCaps inline run property on the target text range. |
doc.format.caps | format caps | Set or clear the caps inline run property on the target text range. |
doc.format.shading | format shading | Set or clear the shading inline run property on the target text range. |
doc.format.border | format border | Set or clear the border inline run property on the target text range. |
doc.format.outline | format outline | Set or clear the outline inline run property on the target text range. |
doc.format.shadow | format shadow | Set or clear the shadow inline run property on the target text range. |
doc.format.emboss | format emboss | Set or clear the emboss inline run property on the target text range. |
doc.format.imprint | format imprint | Set or clear the imprint inline run property on the target text range. |
doc.format.charScale | format char-scale | Set or clear the charScale inline run property on the target text range. |
doc.format.kerning | format kerning | Set or clear the kerning inline run property on the target text range. |
doc.format.vanish | format vanish | Set or clear the vanish inline run property on the target text range. |
doc.format.webHidden | format web-hidden | Set or clear the webHidden inline run property on the target text range. |
doc.format.specVanish | format spec-vanish | Set or clear the specVanish inline run property on the target text range. |
doc.format.rtl | format rtl | Set or clear the rtl inline run property on the target text range. |
doc.format.cs | format cs | Set or clear the cs inline run property on the target text range. |
doc.format.bCs | format b-cs | Set or clear the bCs inline run property on the target text range. |
doc.format.iCs | format i-cs | Set or clear the iCs inline run property on the target text range. |
doc.format.eastAsianLayout | format east-asian-layout | Set or clear the eastAsianLayout inline run property on the target text range. |
doc.format.em | format em | Set or clear the em inline run property on the target text range. |
doc.format.fitText | format fit-text | Set or clear the fitText inline run property on the target text range. |
doc.format.snapToGrid | format snap-to-grid | Set or clear the snapToGrid inline run property on the target text range. |
doc.format.lang | format lang | Set or clear the lang inline run property on the target text range. |
doc.format.oMath | format o-math | Set or clear the oMath inline run property on the target text range. |
doc.format.rStyle | format r-style | Set or clear the rStyle inline run property on the target text range. |
doc.format.rFonts | format r-fonts | Set or clear the rFonts inline run property on the target text range. |
doc.format.fontSizeCs | format font-size-cs | Set or clear the fontSizeCs inline run property on the target text range. |
doc.format.ligatures | format ligatures | Set or clear the ligatures inline run property on the target text range. |
doc.format.numForm | format num-form | Set or clear the numForm inline run property on the target text range. |
doc.format.numSpacing | format num-spacing | Set or clear the numSpacing inline run property on the target text range. |
doc.format.stylisticSets | format stylistic-sets | Set or clear the stylisticSets inline run property on the target text range. |
doc.format.contextualAlternates | format contextual-alternates | Set or clear the contextualAlternates inline run property on the target text range. |
doc.styles.apply | styles apply | Apply document-level default style changes to the stylesheet (word/styles.xml). Targets docDefaults run and paragraph channels with set-style patch semantics. |
doc.styles.paragraph.setStyle | styles paragraph set-style | Set the paragraph style reference (w:pStyle) on a paragraph-like block. |
doc.styles.paragraph.clearStyle | styles paragraph clear-style | Remove the paragraph style reference from a paragraph-like block. |
doc.format.paragraph.resetDirectFormatting | format paragraph reset-direct-formatting | Strip all direct paragraph formatting while preserving style reference, numbering, and section metadata. |
doc.format.paragraph.setAlignment | format paragraph set-alignment | Set paragraph alignment (justification) on a paragraph-like block. |
doc.format.paragraph.clearAlignment | format paragraph clear-alignment | Remove direct paragraph alignment, reverting to style-defined or default alignment. |
doc.format.paragraph.setIndentation | format paragraph set-indentation | Set paragraph indentation properties (left, right, firstLine, hanging) in twips. |
doc.format.paragraph.clearIndentation | format paragraph clear-indentation | Remove all direct paragraph indentation. |
doc.format.paragraph.setSpacing | format paragraph set-spacing | Set paragraph spacing properties (before, after, line, lineRule) in twips. |
doc.format.paragraph.clearSpacing | format paragraph clear-spacing | Remove all direct paragraph spacing. |
doc.format.paragraph.setKeepOptions | format paragraph set-keep-options | Set keep-with-next, keep-lines-together, and widow/orphan control flags. |
doc.format.paragraph.setOutlineLevel | format paragraph set-outline-level | Set the paragraph outline level (0–9) or null to clear. |
doc.format.paragraph.setFlowOptions | format paragraph set-flow-options | Set contextual spacing, page-break-before, and suppress-auto-hyphens flags. |
doc.format.paragraph.setTabStop | format paragraph set-tab-stop | Add or replace a tab stop at a given position. |
doc.format.paragraph.clearTabStop | format paragraph clear-tab-stop | Remove a tab stop at a given position. |
doc.format.paragraph.clearAllTabStops | format paragraph clear-all-tab-stops | Remove all tab stops from a paragraph. |
doc.format.paragraph.setBorder | format paragraph set-border | Set border properties for a specific side of a paragraph. |
doc.format.paragraph.clearBorder | format paragraph clear-border | Remove border for a specific side or all sides of a paragraph. |
doc.format.paragraph.setShading | format paragraph set-shading | Set paragraph shading (background fill, pattern color, pattern type). |
doc.format.paragraph.clearShading | format paragraph clear-shading | Remove all paragraph shading. |
Create
| Operation | CLI command | Description |
|---|---|---|
doc.create.paragraph | create paragraph | Create a new paragraph at the target position. |
doc.create.heading | create heading | Create a new heading at the target position. |
doc.create.sectionBreak | create section-break | Create a section break at the target location with optional initial section properties. |
doc.create.table | create table | Create a new table at the target position. |
doc.create.tableOfContents | create table-of-contents | Insert a new table of contents at the target position. |
doc.create.image | create image | Insert a new image at the target position. |
Sections
| Operation | CLI command | Description |
|---|---|---|
doc.sections.list | sections list | List sections in deterministic order with section-target handles. |
doc.sections.get | sections get | Retrieve full section information by section address. |
doc.sections.setBreakType | sections set-break-type | Set the section break type. |
doc.sections.setPageMargins | sections set-page-margins | Set page-edge margins for a section. |
doc.sections.setHeaderFooterMargins | sections set-header-footer-margins | Set header/footer margin distances for a section. |
doc.sections.setPageSetup | sections set-page-setup | Set page size/orientation properties for a section. |
doc.sections.setColumns | sections set-columns | Set column configuration for a section. |
doc.sections.setLineNumbering | sections set-line-numbering | Enable or configure line numbering for a section. |
doc.sections.setPageNumbering | sections set-page-numbering | Set page numbering format/start for a section. |
doc.sections.setTitlePage | sections set-title-page | Enable or disable title-page behavior for a section. |
doc.sections.setOddEvenHeadersFooters | sections set-odd-even-headers-footers | Enable or disable odd/even header-footer mode in document settings. |
doc.sections.setVerticalAlign | sections set-vertical-align | Set vertical page alignment for a section. |
doc.sections.setSectionDirection | sections set-section-direction | Set section text flow direction (LTR/RTL). |
doc.sections.setHeaderFooterRef | sections set-header-footer-ref | Set or replace a section header/footer reference for a variant. |
doc.sections.clearHeaderFooterRef | sections clear-header-footer-ref | Clear a section header/footer reference for a specific variant. |
doc.sections.setLinkToPrevious | sections set-link-to-previous | Set or clear link-to-previous behavior for a header/footer variant. |
doc.sections.setPageBorders | sections set-page-borders | Set page border configuration for a section. |
doc.sections.clearPageBorders | sections clear-page-borders | Clear page border configuration for a section. |
Lists
| Operation | CLI command | Description |
|---|---|---|
doc.lists.list | lists list | List all list nodes in the document, optionally filtered by scope. |
doc.lists.get | lists get | Retrieve a specific list node by target. |
doc.lists.insert | lists insert | Insert a new list at the target position. |
doc.lists.create | lists create | Create a new list from one or more paragraphs, or convert existing paragraphs into a new list. |
doc.lists.attach | lists attach | Convert non-list paragraphs to list items under an existing list sequence. |
doc.lists.detach | lists detach | Remove numbering properties from list items, converting them to plain paragraphs. |
doc.lists.indent | lists indent | Increase the indentation level of a list item. |
doc.lists.outdent | lists outdent | Decrease the indentation level of a list item. |
doc.lists.join | lists join | Merge two adjacent list sequences into one. |
doc.lists.canJoin | lists can-join | Check whether two adjacent list sequences can be joined. |
doc.lists.separate | lists separate | Split a list sequence at the target item, creating a new sequence from that point forward. |
doc.lists.setLevel | lists set-level | Set the absolute nesting level (0..8) of a list item. |
doc.lists.setValue | lists set-value | Set an explicit numbering value at the target item. Mid-sequence targets are atomically separated first. |
doc.lists.continuePrevious | lists continue-previous | Continue numbering from the nearest compatible previous list sequence. |
doc.lists.canContinuePrevious | lists can-continue-previous | Check whether the target sequence can continue numbering from a previous compatible sequence. |
doc.lists.setLevelRestart | lists set-level-restart | Set the restart behavior for a specific list level. |
doc.lists.convertToText | lists convert-to-text | Convert list items to plain paragraphs, optionally prepending the rendered marker text. |
doc.lists.applyTemplate | lists apply-template | Apply a captured ListTemplate to the target list, optionally filtered to specific levels. |
doc.lists.applyPreset | lists apply-preset | Apply a built-in list formatting preset to the target list. |
doc.lists.setType | lists set-type | Convert a list to ordered or bullet and merge adjacent compatible sequences to preserve continuous numbering. |
doc.lists.captureTemplate | lists capture-template | Capture the formatting of a list as a reusable ListTemplate. |
doc.lists.setLevelNumbering | lists set-level-numbering | Set the numbering format, pattern, and optional start value for a specific list level. |
doc.lists.setLevelBullet | lists set-level-bullet | Set the bullet marker text for a specific list level. |
doc.lists.setLevelPictureBullet | lists set-level-picture-bullet | Set a picture bullet for a specific list level by its OOXML lvlPicBulletId. |
doc.lists.setLevelAlignment | lists set-level-alignment | Set the marker alignment (left, center, right) for a specific list level. |
doc.lists.setLevelIndents | lists set-level-indents | Set the paragraph indentation values (left, hanging, firstLine) for a specific list level. |
doc.lists.setLevelTrailingCharacter | lists set-level-trailing-character | Set the trailing character (tab, space, nothing) after the marker for a specific list level. |
doc.lists.setLevelMarkerFont | lists set-level-marker-font | Set the font family used for the marker character at a specific list level. |
doc.lists.clearLevelOverrides | lists clear-level-overrides | Remove instance-level overrides for a specific list level, restoring abstract definition values. |
Tables
| Operation | CLI command | Description |
|---|---|---|
doc.tables.convertFromText | tables convert-from-text | Convert a text range into a table. |
doc.tables.delete | tables delete | Delete the target table from the document. |
doc.tables.clearContents | tables clear-contents | Clear the contents of the target table or cell range. |
doc.tables.move | tables move | Move a table to a new position in the document. |
doc.tables.split | tables split | Split a table into two tables at the target row. |
doc.tables.convertToText | tables convert-to-text | Convert a table back to plain text. |
doc.tables.setLayout | tables set-layout | Set the layout mode of the target table. |
doc.tables.insertRow | tables insert-row | Insert a new row into the target table. |
doc.tables.deleteRow | tables delete-row | Delete a row from the target table. |
doc.tables.setRowHeight | tables set-row-height | Set the height of a table row. |
doc.tables.distributeRows | tables distribute-rows | Distribute row heights evenly across the target table. |
doc.tables.setRowOptions | tables set-row-options | Set options on a table row such as header repeat or page break. |
doc.tables.insertColumn | tables insert-column | Insert a new column into the target table. |
doc.tables.deleteColumn | tables delete-column | Delete a column from the target table. |
doc.tables.setColumnWidth | tables set-column-width | Set the width of a table column. |
doc.tables.distributeColumns | tables distribute-columns | Distribute column widths evenly across the target table. |
doc.tables.insertCell | tables insert-cell | Insert a new cell into a table row. |
doc.tables.deleteCell | tables delete-cell | Delete a cell from a table row. |
doc.tables.mergeCells | tables merge-cells | Merge a range of table cells into one. |
doc.tables.unmergeCells | tables unmerge-cells | Unmerge a previously merged table cell. |
doc.tables.splitCell | tables split-cell | Split a table cell into multiple cells. |
doc.tables.setCellProperties | tables set-cell-properties | Set properties on a table cell such as vertical alignment or text direction. |
doc.tables.sort | tables sort | Sort table rows by a column value. |
doc.tables.setAltText | tables set-alt-text | Set the alternative text description for a table. |
doc.tables.setStyle | tables set-style | Apply a named table style to the target table. |
doc.tables.clearStyle | tables clear-style | Remove the applied table style, reverting to defaults. |
doc.tables.setStyleOption | tables set-style-option | Toggle a conditional style option such as banded rows or first column. |
doc.tables.setBorder | tables set-border | Set border properties on a table or cell range. |
doc.tables.clearBorder | tables clear-border | Remove border formatting from a table or cell range. |
doc.tables.applyBorderPreset | tables apply-border-preset | Apply a border preset (e.g. all borders, outside only) to a table. |
doc.tables.setShading | tables set-shading | Set the background shading color on a table or cell range. |
doc.tables.clearShading | tables clear-shading | Remove shading from a table or cell range. |
doc.tables.setTablePadding | tables set-table-padding | Set default cell padding for the entire table. |
doc.tables.setCellPadding | tables set-cell-padding | Set padding on a specific table cell or cell range. |
doc.tables.setCellSpacing | tables set-cell-spacing | Set the cell spacing for the target table. |
doc.tables.clearCellSpacing | tables clear-cell-spacing | Remove custom cell spacing from the target table. |
doc.tables.get | tables get | Retrieve table structure and dimensions by locator. |
doc.tables.getCells | tables get-cells | Retrieve cell information for a table, optionally filtered by row or column. |
doc.tables.getProperties | tables get-properties | Retrieve layout and style properties of a table. |
doc.tables.getStyles | tables get-styles | List all table styles and the document-level default table style setting. |
doc.tables.setDefaultStyle | tables set-default-style | Set the document-level default table style (w:defaultTableStyle in settings.xml). |
doc.tables.clearDefaultStyle | tables clear-default-style | Remove the document-level default table style setting. |
Table of contents
| Operation | CLI command | Description |
|---|---|---|
doc.toc.list | toc list | List all tables of contents in the document. |
doc.toc.get | toc get | Retrieve details of a specific table of contents. |
doc.toc.configure | toc configure | Update the configuration switches of a table of contents. |
doc.toc.update | toc update | Rebuild or refresh the materialized content of a table of contents. |
doc.toc.remove | toc remove | Remove a table of contents from the document. |
doc.toc.markEntry | toc mark-entry | Insert a TC (table of contents entry) field at the target paragraph. |
doc.toc.unmarkEntry | toc unmark-entry | Remove a TC (table of contents entry) field from the document. |
doc.toc.listEntries | toc list-entries | List all TC (table of contents entry) fields in the document body. |
doc.toc.getEntry | toc get-entry | Retrieve details of a specific TC (table of contents entry) field. |
doc.toc.editEntry | toc edit-entry | Update the properties of a TC (table of contents entry) field. |
Images
| Operation | CLI command | Description |
|---|---|---|
doc.images.list | images list | List all images in the document. |
doc.images.get | images get | Get details for a specific image by its stable ID. |
doc.images.delete | images delete | Delete an image from the document. |
doc.images.move | images move | Move an image to a new location in the document. |
doc.images.convertToInline | images convert-to-inline | Convert a floating image to inline placement. |
doc.images.convertToFloating | images convert-to-floating | Convert an inline image to floating placement. |
doc.images.setSize | images set-size | Set explicit width/height for an image. |
doc.images.setWrapType | images set-wrap-type | Set the text wrapping type for a floating image. |
doc.images.setWrapSide | images set-wrap-side | Set which side(s) text wraps around a floating image. |
doc.images.setWrapDistances | images set-wrap-distances | Set the text-wrap distance margins for a floating image. |
doc.images.setPosition | images set-position | Set the anchor position for a floating image. |
doc.images.setAnchorOptions | images set-anchor-options | Set anchor behavior options for a floating image. |
doc.images.setZOrder | images set-z-order | Set the z-order (relativeHeight) for a floating image. |
doc.images.scale | images scale | Scale an image by a uniform factor applied to both dimensions. |
doc.images.setLockAspectRatio | images set-lock-aspect-ratio | Lock or unlock the aspect ratio for an image. |
doc.images.rotate | images rotate | Set the absolute rotation angle for an image. |
doc.images.flip | images flip | Set horizontal and/or vertical flip state for an image. |
doc.images.crop | images crop | Apply rectangular edge-percentage crop to an image. |
doc.images.resetCrop | images reset-crop | Remove all cropping from an image. |
doc.images.replaceSource | images replace-source | Replace the image source while preserving identity and placement. |
doc.images.setAltText | images set-alt-text | Set the accessibility description (alt text) for an image. |
doc.images.setDecorative | images set-decorative | Mark or unmark an image as decorative. |
doc.images.setName | images set-name | Set the object name for an image. |
doc.images.setHyperlink | images set-hyperlink | Set or remove the hyperlink attached to an image. |
doc.images.insertCaption | images insert-caption | Insert a caption paragraph below the image. |
doc.images.updateCaption | images update-caption | Update the text of an existing caption paragraph. |
doc.images.removeCaption | images remove-caption | Remove the caption paragraph from below the image. |
Comments
| Operation | CLI command | Description |
|---|---|---|
doc.comments.create | comments create | Create a new comment thread (or reply when parentCommentId is given). |
doc.comments.patch | comments patch | Patch fields on an existing comment (text, target, status, or isInternal). |
doc.comments.delete | comments delete | Remove a comment or reply by ID. |
doc.comments.get | comments get | Retrieve a single comment thread by ID. |
doc.comments.list | comments list | List all comment threads in the document. |
Track changes
| Operation | CLI command | Description |
|---|---|---|
doc.trackChanges.list | track-changes list | List all tracked changes in the document. |
doc.trackChanges.get | track-changes get | Retrieve a single tracked change by ID. |
doc.trackChanges.decide | track-changes decide | Accept or reject a tracked change (by ID or scope: all). |
History
| Operation | CLI command | Description |
|---|---|---|
doc.history.get | history get | Query the current undo/redo history state of the active editor. |
doc.history.undo | history undo | Undo the most recent history-safe mutation in the active editor. |
doc.history.redo | history redo | Redo the most recently undone action in the active editor. |
Session
| Operation | CLI command | Description |
|---|---|---|
doc.open | open | Open a document and create a persistent editing session. Optionally override the document body with contentOverride + overrideType (markdown, html, or text). |
doc.save | save | Save the current session to the original file or a new path. |
doc.close | close | Close the active editing session and clean up resources. |
doc.status | status | Show the current session status and document metadata. |
doc.describe | describe | List all available CLI operations and contract metadata. |
doc.describeCommand | describe command | Show detailed metadata for a single CLI operation. |
doc.session.list | session list | List all active editing sessions. |
doc.session.save | session save | Persist the current session state. |
doc.session.close | session close | Close a specific editing session by ID. |
doc.session.setDefault | session set-default | Set the default session for subsequent commands. |
Related
- Document API — the in-browser API that defines the operation set
- CLI — use the same operations from the terminal
- Collaboration guides — set up Liveblocks, Hocuspocus, or SuperDoc Yjs

