A small macOS menu bar app for capturing Markdown into an Obsidian vault without leaving the app you are currently using.
Obsidian Side Note opens a compact floating editor from the menu bar or a global shortcut. It can create new notes, continue a daily note, search existing Markdown files, edit them in place, and save everything back to your local vault.
- Opens from the macOS menu bar and stays out of the Dock.
- Provides global shortcuts for Daily Note, Create New Note, and Edit Vault File.
- Creates Markdown notes directly inside your selected Obsidian vault.
- Opens New Note and Edit Vault File actions in independent floating windows so several notes can remain open concurrently.
- Autosaves new notes and edits to existing vault files.
- Avoids empty files: a title-only draft stays local until the note has body text.
- Searches Markdown files by fuzzy title or vault-relative path matches, with slash paths scoped to that directory subtree.
- Shows Edit Vault File results in a scrollable overlay without shrinking the editor.
- Lets
Command+Lreturn to vault search, then moves focus back to the editor after a file is selected. - Watches the open note file and reloads external Obsidian edits before the next autosave.
- Renders source-preserving Markdown styling, blockquotes, task checkboxes, bullets, headings, and inline images in the bundled CodeMirror editor.
- Stores indentation as real tab characters and displays tabs at four spaces wide.
- Keeps
Shift+Entercontinuation lines inside list items and blockquotes, aligned with their text. - Copies pasted or dropped media into the vault attachment folder when configured.
- Keeps Settings and Quit local so the app does not steal normal shortcuts from other apps.
- macOS compatible with the project target.
- Xcode 26 or newer for local builds.
- Node.js and npm for local builds of the bundled CodeMirror editor.
- Obsidian for Daily Note creation and "Open in Obsidian" behavior.
- A local Obsidian vault folder.
- The Obsidian Daily notes core plugin for Daily Note workflows.
- The Obsidian Advanced URI community plugin for URI-driven Obsidian actions.
The app is built with SwiftUI, AppKit, Carbon global hotkeys, and a bundled CodeMirror editor.
Download a release .zip from GitHub Releases, unzip it, and drag ObsidianSideNote.app into /Applications.
Release builds may not be notarized yet. If macOS blocks the first launch:
- Open Finder and go to
/Applications. - Control-click
ObsidianSideNote.app. - Choose
Open. - Confirm the macOS security dialog.
If needed, remove the quarantine attribute:
xattr -dr com.apple.quarantine /Applications/ObsidianSideNote.app
open /Applications/ObsidianSideNote.appFor a local build and install:
script/build_and_run.sh runMore setup notes are in docs/INSTALLATION.md.
- Launch
ObsidianSideNote.app. - Install and enable Obsidian's Advanced URI plugin.
- Enable Obsidian's Daily notes core plugin if you want Daily Note support.
- Open Obsidian Side Note settings.
- Select your local Obsidian vault folder.
- Review the default keyboard shortcuts.
- Choose how long New Note drafts should be resumed.
The selected vault is stored in app configuration so the menu bar app can keep access across launches.
Daily Note: open today's daily note in the floating editor.Create New Note: start a Markdown note in the selected vault.Edit Vault File: search and edit an existing Markdown file.Settings: select the vault, configure shortcuts, and set the draft resume interval.
Control-Option-Command-D: Daily Note.Control-Option-Command-N: Create New Note.Control-Option-Command-V: Edit Vault File.Command-L: Focus and select the vault search while editing a vault file.Command-,: Settings while the app is active.Command-Q: Quit while the app is active.
Global shortcuts must include Control or Option. Command-only app-management shortcuts remain local so Obsidian Side Note does not intercept standard commands from your foreground app.
New notes autosave into the selected vault once the body has content. If you close a title-only note, it remains a local draft and no empty Markdown file is created.
Reopening New Note from the menu or shortcut resumes the current draft or created note within the configured interval. After the interval expires, New Note starts a fresh draft.
Choose Edit Vault File, type part of a note title or path, and select a result with the mouse, arrow keys, Tab, or Return. Search accepts fuzzy abbreviations such as initial letters, ranks matches, and shows the top suggestions in a scrollable overlay instead of moving the layout. Typing a slash path such as Projects/Active/Budapest searches only below Projects/Active; typing Budapest from the empty/root field searches the whole vault, including subfolders. Edits save back to the Markdown file immediately.
If the same file changes in Obsidian while it is open in Side Note, the editor reloads the disk version and cancels stale pending autosaves.
The editor supports regular Markdown links, Obsidian wikilinks, local media, remote images, and Obsidian embeds. Inactive bold spans render as bold text without visible ** markers; placing the cursor in the span reveals the source markers for editing.
[[Project Plan]]
[[Project Plan|Planning]]
![[Sketch.png]]
Pasted images and supported dropped media files are copied into Obsidian's configured attachment folder. If no fixed attachment folder is configured, the app stores the media at the vault root. Pasted image embeds display inline in the editor while preserving normal Markdown source.
Supported preview formats:
- Images:
apng,avif,gif,jpeg,jpg,png,svg,webp - Videos:
m4v,mov,mp4
Open the project:
open ObsidianSideNote.xcodeprojInstall JavaScript editor dependencies once:
npm --prefix EditorWeb installBuild and verify the embedded editor bundle:
npm --prefix EditorWeb run build
npm --prefix EditorWeb run verifyRun unit, integration, and UI tests with coverage:
xcodebuild test \
-project ObsidianSideNote.xcodeproj \
-scheme ObsidianSideNote \
-destination 'platform=macOS' \
-enableCodeCoverage YESRun static analysis:
xcodebuild analyze \
-project ObsidianSideNote.xcodeproj \
-scheme ObsidianSideNote \
-destination 'platform=macOS'Check whitespace before committing:
git diff --checkObsidianSideNote/
Models/ Small domain types for note modes, shortcuts, and vault notes.
Services/ Global hotkeys, logging, media import, and Obsidian URI helpers.
Stores/ UserDefaults preferences, vault access, and file persistence.
Support/ AppKit and SwiftUI integration helpers.
Views/ Settings, setup, editor chrome, and the CodeMirror bridge.
MarkdownEditor/
Bundled HTML and generated JavaScript for the WKWebView editor.
EditorWeb/
src/ Source for the bundled CodeMirror editor.
ObsidianSideNoteTests/
Unit and integration tests grouped by domain responsibility.
ObsidianSideNoteUITests/
End-to-end launch and vault-edit persistence tests.
See docs/ARCHITECTURE.md for the internal design notes.
Obsidian Side Note 2.6 is usable, but still evolving. Known next steps:
- Developer ID signing and notarization.
- Window size and position preferences.
- Multiple vault support.
- Note templates.
This project started from Luke Smith's original Obsidian Side Note repository: lukesmith96/obsidian_side_note.
Obsidian integration is based on local Markdown files and Obsidian URI.

