this repo has no description
JavaScript 98.8%
TypeScript 1.2%
CSS 0.1%
3 1 0

Clone this repository

https://tangled.org/marcobonomo.dev/obsidian-atproto-publisher https://tangled.org/did:plc:65zy642fqgvy4jenbbfeamk3/obsidian-atproto-publisher
git@knot.tangled.wizardry.systems:marcobonomo.dev/obsidian-atproto-publisher git@knot.tangled.wizardry.systems:did:plc:65zy642fqgvy4jenbbfeamk3/obsidian-atproto-publisher

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

ATProto Publisher for Obsidian#

Publish Obsidian notes to AT Protocol records, including the Standard.site long-form lexicon.

Features#

  • Publish a single note or all notes marked as published.
  • Supports Standard.site site.standard.document records.
  • Auto-creates a site.standard.publication record when needed.
  • Writes back ATProto metadata to frontmatter for future updates.

Setup#

  1. Install the plugin in your vault.
  2. Open Obsidian settings and configure ATProto Publisher:
    • Identifier (handle or email)
    • App password
    • Service URL (PDS)
    • Collection NSID
    • Publication URL or AT-URI (for Standard.site)

Usage#

  • Command palette:
    • Publish current note to ATProto
    • Publish all notes marked as published

Frontmatter keys#

Default keys used by the plugin (customizable in settings):

published: true
slug: my-article
title: My Article
summary: A short summary.
tags: [writing, obsidian]

Metadata written back after publishing:

atprotoUri: at://did:plc.../site.standard.document/...
atprotoCid: ...
atprotoCollection: site.standard.document
atprotoRkey: ...
atprotoPublishedAt: 2026-01-24T10:20:30.000Z
atprotoUpdatedAt: 2026-01-24T10:20:30.000Z

Standard.site mode#

To publish Standard.site documents:

  1. Set Collection NSID to site.standard.document.
  2. Set Publication URL or AT-URI to your site URL (e.g. https://example.com).
  3. Optionally set Publication name and Publication description.

On first publish the plugin will look for a matching publication record in your repo. If it does not exist, it will create one and store its AT-URI in settings.

Development#

npm install
npm run build

To create a distributable folder:

npm run package