Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Join the community
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

yeet.md

David V. KimballDavid V. Kimball9 downloads

Publish current note's contents as a snapshot to yeet.md.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates2

Publish the current note to yeet.md with one hotkey. Persists the per-snapshot delete token so you can unpublish later from inside Obsidian.

Install

Not yet in the community plugin directory. For now:

  1. Clone this repo into <vault>/.obsidian/plugins/yeet/.
  2. Run pnpm install && pnpm build inside that folder.
  3. Restart Obsidian. Enable yeet.md under Settings → Community plugins.

Commands

All four appear in the command palette and can be bound under Settings → Hotkeys:

  • yeet.md: Publish current note. Suggested hotkey: Ctrl/Cmd+Shift+Y.
  • yeet.md: Copy published link for current note
  • yeet.md: Unpublish latest snapshot of current note
  • yeet.md: Show all published snapshots from this vault

Publish flow

Hitting Publish on a note handles three cases automatically:

  • Fresh. Posts the note to yeet.md, copies the returned URL, stores the delete token.
  • Already published, unchanged. Just copies the existing URL. No new snapshot.
  • Already published, edited since. Prompts with three options:
    • Copy existing link (do nothing)
    • Publish as new snapshot (old one stays live at the old URL)
    • Replace (delete old snapshot, publish new one, reuse the record)

A status-bar indicator on desktop shows yeet.md ✓ when the active buffer matches an existing snapshot and yeet.md ↑ when the buffer has drifted from the latest snapshot. If a note has more than one snapshot, the count appears in parentheses.

Why "snapshots" and not "published notes"?

Each publish creates an immutable snapshot at a unique /s/<id> URL. Editing the source note does not update prior snapshots, and unpublishing one does not unpublish the others. The plugin stores every snapshot the vault has ever produced so you can find, copy, or delete each of them individually.

Settings

  • API base URL. Defaults to https://yeet.md. Change it if you self-host.
  • Copy link after publish. Automatically copies the URL to clipboard.
  • Show toast on publish. Displays a notice with the URL.
  • Strip properties before publish. Comma-separated property names to remove from the copy sent to the server. Fields starting with _ are always stripped. Your note is not modified; only the HTTP payload.
  • Published snapshots. Browsable list at the bottom grouped by source note, with per-snapshot Open / Copy / Delete buttons.

Properties support

yeet.md renders Obsidian properties (YAML at the top of a note) as a clean metadata card above the note body. title, tags, aliases, dates, URLs, wikilinks, and arbitrary arrays all get sensible rendering. See the yeet.md about page for examples.

Use Strip properties in settings to hide private keys like _internal, cssclasses, plugin metadata, etc.

Security

Ownership of a published snapshot is established by a delete token issued by the server at publish time.

  • Tokens are stored in Obsidian's SecretStorage, backed by the OS keychain on desktop. They do NOT ride along with vault sync, so a leaked or shared vault cannot be used to unpublish your snapshots.
  • The snapshot record (id, URL, publish date, content hash, source path) still lives in data.json so the plugin knows the snapshot exists. The token is the only sensitive bit, and it's kept separately.
  • DELETE /api/delete/:id sends the token in Authorization: Bearer <token>. Server hashes and constant-time compares.
  • Sent over HTTPS only (plugin warns if you configure a non-HTTPS API base URL).
  • A per-vault random UUID is sent as X-Client-Id for server-side rate limiting. Not an auth credential.

Consequence of keychain storage — device-local unpublish. If you publish a note from your desktop, the delete token lives in your desktop keychain. If you later open the same vault on mobile, you'll see the snapshot in the "Published snapshots" list, but the Delete button will be disabled because the token isn't on the mobile device. To unpublish, go back to the device that published. This is the cost of not syncing tokens.

Upgrading from < v0.0.3: tokens are migrated automatically on first launch after the upgrade. Nothing to do on your end.

Development

pnpm install
pnpm dev      # rebuild on save
pnpm build    # production bundle
pnpm lint     # eslint + obsidianmd rules

Template: obsidian-sample-plugin-plus. See AGENTS.md and .agent/skills/ for the development skills system.

License

MIT © David V. Kimball

83%
HealthExcellent
ReviewSatisfactory
About
Publish the current note to yeet.md with a single hotkey and create immutable snapshots at unique /s/<id> URLs. Store per-snapshot delete tokens to unpublish later, copy published links, list all vault snapshots, and show a status-bar indicator for published or drifted notes.
PublishingStatus barIntegrations
Details
Current version
0.0.3
Last updated
3 weeks ago
Created
3 weeks ago
Updates
2 releases
Downloads
9
Compatible with
Obsidian 1.11.4+
License
MIT
Report bugRequest featureReport plugin
Sponsor
Patreon
Author
David V. KimballDavid V. Kimballdavidvkimball
davidvkimball.com
GitHubdavidvkimball
Xdavidvkimball
discord.com
davidvkimball
davidvkimball
  1. Community
  2. Plugins
  3. Publishing
  4. yeet.md

Related plugins

GitHub

Share as Gist

Share a note as a GitHub.com Gist.

Quartz Syncer

Manage and publish your notes to Quartz, the fast, batteries-included static-site generator.

BRAT

Easily install a beta version of a plugin for testing.

Maps

Adds a map layout to bases so you can display notes as an interactive map view.

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

Zotero Integration

Insert and import citations, bibliographies, notes, and PDF annotations from Zotero.

Agent Client

Chat with AI agents via the Agent Client Protocol directly from your vault.

Smart Composer

AI chat with note context, smart writing assistance, and one-click edits for your vault.

LanguageTool Integration

advanced spell/grammar checks with the help of language-tool.

Readwise Official

Sync highlights from Readwise to your vault.