Skip to content

Complete Headless Publish reference

Open beta Paid public-service gates

Headless Publish requires Node.js 22+, an active Obsidian Publish subscription, and approved interactive authentication. Listing and dry-run are evidence surfaces; site creation, setup, scope/options changes, unlink, and publication are mutations requiring exact approval. It uses the standalone ob command, not the desktop-app obsidian CLI.

Release rule

Before any authorized publication, preserve the immutable source commit/hash and exact include set, run and review a dry-run, and record approval for the exact account alias, site, path, scope, cost, and rollback owner. After publication, read back the exact public URL and expected content/hashes. A successful command is not public proof.

Commands

ob publish-list-sites

Read-only inventory of Publish sites available to the authenticated account. Account authentication remains separately gated. No options.

ob publish-create-site

Creates a Publish site. The required --slug names the URL identifier. This is a paid/public service mutation and requires exact approval.

ob publish-setup

Connects a local vault path to a Publish site. Optional options:

OptionMeaning
--siteSite ID or slug
--pathLocal vault path; current directory when omitted

Setup requires exact target approval and rollback ownership.

ob publish

By default, Publish includes files with publish: true frontmatter.

OptionMeaning and safety
--pathLocal vault path
--allIncludes all files, broadening scope beyond the frontmatter selection
--dry-runShows changes without publishing; preview only
--yesSuppresses confirmation

Dry-run is the required pre-publication evidence surface. --all, --yes, or any actual public publication requires separately named approval.

ob publish-config

Run without setting options to read current include/exclude configuration. Setting options mutates publication scope.

OptionMeaning
--pathLocal vault path
--includesComma-separated included folders; empty clears
--excludesComma-separated excluded folders; empty clears

ob publish-site-options

Run without setting options to read site display/navigation settings. Any setting option mutates the public site and requires exact approval plus public readback.

OptionMeaning
--pathLocal vault path
--site-nameSite name
--index-fileHome page file path
--logoLogo path; empty clears
--show-navigationNavigation sidebar visibility
--show-graphGraph visibility
--show-outlineTable of contents visibility
--show-searchSearch visibility
--show-backlinksBacklinks visibility
--show-hover-previewHover-preview visibility
--show-theme-toggleTheme-toggle visibility
--default-themelight or dark
--readable-line-lengthReadable line-length setting
--strict-line-breaksStrict line-break setting
--hide-titleInline-title visibility
--sliding-windowSliding-window mode
--nav-orderComma-separated navigation paths; empty clears
--nav-hiddenComma-separated hidden navigation paths; empty clears

Disconnects a vault from a Publish site. Supports optional --path. Exact approval and a rollback plan are required.

Recovery

On wrong scope or content, stop further publication, preserve the dry-run/source/public readback, restore the prior approved source state, run a new reviewed dry-run, and republish or remove content only under exact approval. See Recovery.

Source

First-party source retrieved 2026-08-29 EDT: Headless Publish. See Sources.

Unofficial SOP mirror. Built for terminal-driven and agentic Obsidian workflows.