Changelog

What's new in Notesidian

Every notable change, version by version. Notesidian 1.3.0 is now available on the Mac App Store. The format follows Keep a Changelog.

1.3.0 On the App Store Available now on the Mac App Store

Fix a misspelling without leaving the keyboard in Vim mode, keep an eye on your mode and word count in a new status bar, and a handful of list-editing fixes.

Added
  • Vim-mode spelling correction. ]s/[s jump to the next/previous misspelled word, and z= opens a small popover of replacement suggestions right at the word — arrow keys or j/k to move, a bare digit 1–9 to pick one instantly, l for “Learn Spelling,” Return to accept the highlighted one, Escape to cancel.
  • A status bar above the tab bar, always visible: your Vim mode (blank in Normal mode, matching real Vim), the spelling hotkeys as a hint whenever the caret is on a misspelled word, the note's word count (or the selection's, while one's active), and a cursor ruler — line, column, and percent through the note.
Fixed
  • Erasing a list, task, heading, or quote item's last character of content no longer removes the whole item. Backspace, Delete, Vim's D, and a character-wise Vim visual delete now just empty the content and leave the marker in place — a further Backspace on the now-empty line is what removes it, matching how emptying it any other way already behaved.
  • Vim's visual-LINE (V) yank/cut now keeps a marked line's bullet, number, or checkbox when pasted, instead of pasting back just the bare text.
1.2.2 On the App Store Available now on the Mac App Store

A focused bug-fix release: a rare silent crash, disappearing links, formatting-shortcut markers, and a Vim delete are all fixed.

Fixed
  • Fixed a rare, silent crash when a setting synced in from iCloud (say, from another Mac). Handling that sync could land on a background thread and try to rebuild the tab bar's layout from there, which AppKit doesn't allow — the app would quit instantly with no dialog or error. That handling now always runs on the main thread.
  • Typed URLs render as links instead of disappearing. Both a bare https://… and one wrapped in <https://…> used to vanish entirely in the rendered view; both now render and are ⌘-clickable.
  • The Today tab starts fresh after midnight, even if you'd browsed to an adjacent day with ⌘⌥↑/↓ before the day rolled over — that browse used to pin the tab to whatever note it landed on indefinitely, until an explicit ⌘T.
  • Bold/italic/underline/strikethrough with nothing selected no longer insert bare **/~~/etc into the note. The next character you type is what gets wrapped, and nothing is left behind if you change your mind and click away. Hitting the same shortcut again stops formatting from there on without un-formatting what you already typed — select the text first if you want to remove formatting from it.
  • Vim's dd (and other whole-line deletes) on a bulleted, numbered, task, heading, or quote line now removes the entire line, instead of leaving an empty one behind.
  • Reduced a rare cursor-rendering glitch in Vim mode, where losing and regaining window focus could leave a stray, cursor-shaped artifact on screen.
1.2.1 On the App Store Available now on the Mac App Store

Rendered Markdown now gets out of your way as you edit, a single ⌘K popover creates and edits every inline element, and fenced code blocks read as real blocks.

Added
  • ⌘K element editor. ⌘K opens a popover to create or edit the element under the caret — a web link, wiki link, callout, or code block — and pressing ⌘K again cycles through those types (starting at web link). Remove strips any element's markup while keeping its visible text.
  • Code blocks render as a block, with syntax highlighting. A fenced ``` block shows as a softly-boxed, monospace region with its language labeled and colored, instead of the fences collapsing to blank lines. Covers the common languages (JavaScript/TypeScript, Python, Swift, Go, Rust, Java, C/C++/C#, Ruby, PHP, Kotlin, HTML/CSS/SCSS, JSON/YAML/XML, SQL, Shell, TOML, Dockerfile); anything else still renders, just without color.
  • Rename notes. A Rename… item in a tab's right-click menu renames the current note (and can move it between folders), keeping the tab pointed at it.
  • ⌘⌥↑/↓ browse adjacent daily notes from the Today tab. Previously a no-op there, it now steps to the previous/next day's note, the same way it steps between sibling notes on any other tab. ⌘T always snaps the Today tab back to the real current day, however far you've browsed.
  • Copy Settings From, in a tab's right-click menu. Copies another tab's note and icon onto the current tab (not its color, which stays independent of what note is shown). Lists every other tab, including the Today tab as a source — but the Today tab can't be a destination, since its note binding is fixed to the current day.
Changed
  • Rendered Markdown gets out of your way. In preview mode the hidden syntax now behaves as if it isn't there: the caret (arrows, Vim motions, clicks, Home/End, ⌘-arrows, Option-arrows) steps over it, and Backspace/Delete edit the visible text — emptying an element's text removes the whole thing, so you never leave a stray ** or ]]. This spans bold, italic, code, strikethrough, headings, quotes, links, wikilinks, callouts, and code blocks. Wikilinks and embeds no longer reveal their raw source; edit a wikilink's target with ⌘K.
  • List, heading, and quote markers can't be typed into by accident. The caret can no longer land somewhere — via Home, a click, or Vim's I/^ — that would break a bullet, numbered item, task, heading, or quote if you started typing there.
  • Today's Note is a fixed tab. The sixth tab is permanently the Today's Note tab (so ⌘6 and ⌘T match) and can't be dragged out of place.
  • Smaller download — trimming code-block language support to the common set (above) cut the app's size by several hundred KB.
Fixed
  • Undo can no longer erase a whole note. Undoing an edit made shortly after opening a note used to undo the note being loaded too, silently wiping it back to empty; now only your edit is undone.
  • Copying, cutting, or dragging text never includes hidden Markdown. If a selection happened to extend into a link's hidden URL (or similar), the hidden characters used to tag along to the clipboard, the search box, or wherever you dropped the text — now only what you actually see selected goes with it.
  • Dragging an image onto a note now embeds it. It previously did nothing.
  • A missing or moved image's placeholder renders reliably instead of occasionally losing track of its spot in the note after the image failed to load.
  • List-related formatting-toolbar buttons no longer corrupt markers. Switching a line between bullet, numbered, and checkbox now converts it cleanly instead of stacking a second marker in front or leaving an invalid one behind.
  • ⌘K on a word fills in the wikilink Alias, not the Target. Cycling ⌘K to wiki-link mode used to put the word under your cursor into the Target field, implying it was itself a note name; it now stays as display text, with Target left for you to fill in — matching how web-link mode already worked.
  • Typing right before a code block no longer breaks it. The caret could land at the very start of a fenced code block's opening line — a spot that reads as blank in preview — and a keystroke there landed ahead of the fence markers, turning the block back into plain text.
  • Vim's visual-mode selection is visible again. Selecting text in Vim mode had stopped drawing a highlight (the selection itself still worked, it just wasn't shown); it now renders like any other selection.
  • Vim's O on a list's first line adds an item above it, instead of a bare, unmarked line.
  • A URL entered into ⌘K without http(s):// now assumes https://.
  • Moving the caret past the start of a wikilink no longer needs an extra keystroke. An aliased wikilink's hidden markdown could momentarily catch the caret partway through (arrows, or Vim's h); it now skips over cleanly in one step.
  • Vim's h/l no longer bounce back and forth at the start or end of a link or wikilink that sits at the very edge of a note. The caret would flip between two positions on every further keystroke instead of settling.
  • An empty code block can now be deleted. Backspace/Delete on its (now-empty) content used to do nothing, since the same protection that stops a delete from merging into a fence line left an emptied block permanently stuck; it can now be removed like any other emptied element.
  • Vim's block cursor no longer flashes hidden Markdown into view, and exiting a construct leftward with h takes one keystroke, not two. Reaching the true end of a line, or exiting a link, wikilink, or bold/italic run leftward, used to leave Vim's cursor sitting on the hidden delimiter itself (a link's [, a wikilink's ]], …) — Vim's own cursor rendering reads the raw character under it and would flash it into view, and since that's not a real position, it took a pointless extra h to actually get past it. The cursor now lands directly on real content.
  • An empty code block can now be deleted from Vim mode. The empty-block removal above only ran for the literal Backspace/Delete keys; Vim's other ways to delete text (x, dd, visual-mode d, …) dispatch their own edits directly and bypassed it, leaving an emptied block permanently stuck. Works the same way no matter which command emptied it now — and real Vim's Normal-mode Backspace is still a leftward motion, not a delete, matching real Vim.
  • A long note path in the note-search picker wraps onto multiple lines instead of being cut off with an ellipsis, so the full path — including the folder names a search matched on — stays visible.
  • Vim's O keeps the current line's own indent, instead of sometimes picking up the line above's. O continues from the line above by design (matching how o continues from the current line), which is normally the same marker — but at a list-nesting boundary (a less-indented line sitting right below a more-indented one) it used to continue the wrong, deeper indent.
  • Erasing a bullet, numbered item, task, heading, or quote is clean. Backspacing an already-empty one used to chew through its marker one raw character at a time — a checkbox's - [ ] could leave a stray space, bracket, or partial marker behind instead of a plain blank line. Backspace now drops the whole marker in one step once there's nothing left after it, the same way emptying a link or code block already dropped the whole thing; covered for Vim's other delete commands (x, visual-mode d, …) too, not just the literal Backspace key.
1.1.0 On the App Store Available now on the Mac App Store

This release brings the editor closer to Obsidian's own: wikilinks, inline images, tags, callouts, and Vim mode. It also makes edits much harder to lose.

Added
  • Wikilink navigation. [[Note]] and [[Note|alias]] render as clickable links in preview; clicking one opens the note in Obsidian, creating it first if it doesn't exist. Editing a link now reveals its raw source while your cursor is inside it, so backspacing edits the text you see instead of the hidden brackets.
  • Wikilink autocomplete. Typing [[ suggests notes from your vault (filter as you type, ↑/↓ then ↵ or Tab to choose); the link and closing ]] are inserted for you.
  • Inline images. Embedded images render right in the editor's preview: ![[image.png]] (with Obsidian's |width syntax), ![alt](path), and remote ![](https://…). Source mode still shows the raw embed.
  • Markdown links render, too. [text](url) shows as an underlined, clickable link with the destination tucked away, and reveals its source when you edit it.
  • Tags, callouts, and frontmatter render in preview. #tag shows as a subtle pill (click to open Obsidian's search); > [!note] … callouts render as a colored block with an icon and title; a leading --- … --- YAML block is dimmed into a compact properties strip.
  • Spell & grammar check in the editor: the usual macOS underlines and right-click suggestions, plus an Edit ▸ Spelling and Grammar menu to toggle checking.
  • Vim mode (opt-in): modal editing (normal / insert / visual, : commands, / search) via a toggle in Settings ▸ Editor. Off by default; the setting syncs like the others. Opening a line with o/O continues the list and indentation, just like Return.
  • Toggle rendered / source with ⌘E (in addition to the header's </> button).
  • Advanced-formatting menu. A ⋯ button in the header toolbar inserts a code block, quote, or callout (> [!note]).
  • Make a task from the keyboard. ⌘. turns the current line into a task if it isn't one, or checks / unchecks the task you're on (or every task line in the selection), stamping the ✅ done-date just like clicking the box.
  • Paste or drag in an image. Pasting or dropping an image saves it into your vault's attachment folder (honoring Obsidian's attachmentFolderPath) and embeds it as ![[image]].
  • Paste a link. Paste a URL over selected text and it becomes a [text](url) Markdown link (single-line selections; http(s)/scheme URLs and mailto:).
  • Auto-close [[. Typing the second [ inserts the closing ]] and parks the caret between them, ready to type or autocomplete a wikilink, scoped to [[ only.
  • Fuzzy note search. The ⌘O picker matches by subsequence (type “prjx” to find Projects/Project X), ranks the closest matches first, and bold-highlights the letters that matched.
  • Proximity-ordered note picker. ⌘O lists notes grouped by closeness to the current note: siblings first, then peer folders, then everything else, with paths shown relative to the shared parent for nearby notes.
  • Create notes from the picker. Typing a name that doesn't match shows a “Create note …” option that makes the note next to the current one and binds it to the tab.
  • Keyboard navigation (all on ⌘⌥, so the editor keeps its own ⌘-arrow shortcuts): ⌘⌥← / ⌘⌥→ previous / next tab; ⌘⌥↑ / ⌘⌥↓ previous / next note in the same folder; ⌘T jumps to the Today's Note tab.
  • Open in Obsidian. Jump from a note straight to the full Obsidian app, from the ⋯ menu, or by ⌘-clicking or double-clicking the note title in the header. Capture here, go deep there.
  • Insert date / time. ⌘; inserts today's date (in your vault's daily-note format) and ⇧⌘; inserts the current time, at the caret.
  • Daily-note template. When a Today tab first opens a day that doesn't exist yet, the note is created from the Daily Notes plugin's template (if configured), with the core {{title}} / {{date}} / {{time}} (and {{date:FORMAT}}) tokens filled in. Templater <% … %> syntax is left untouched.
  • Notes remember where you left off. Each note's caret and scroll position are restored when you reopen it, so the quick-open loop lands you exactly where you were. The first time you open a note, the caret starts at the end, ready to append.
  • Find in note (⌘F). A single case-insensitive search box (Obsidian-style) with a match count and next / previous, styled to match the rest of the UI. It also seeds from the current selection and jumps to the first match.
  • Keyboard-shortcut help (⌘/). A centered panel listing every in-panel shortcut.
  • Per-vault tab configuration. Each Obsidian vault keeps its own set of tab assignments, synced via iCloud, so the same vault matches across your Macs no matter where it lives on disk, and a different vault starts with its own layout.
  • Resizable width. The resize grip moved to the bottom-left and now adjusts both width and height, growing from the fixed top-right corner. Tabs and the header scale to stay readable; width persists and syncs like height.
  • Note-name cue. When the loaded note changes, the header briefly shows the note's full name (middle-truncated) for about a second, then fades back to the toolbar.
  • Tab-switch swipe. Switching tabs slides the content in from the direction of the move, for a bit more polish.
  • Just start typing. On a tab with no note assigned (or no vault yet), the prompt is keyboard-actionable: press Return or Space to choose a note / vault without reaching for the mouse.
  • Placeholder text. An empty note shows a dim “Start writing…” hint.
  • Reduce Motion. With Reduce motion on, the panel zoom, tab-switch slide, and settings grow fall back to a quick crossfade (or nothing).
  • Vault path in Settings. The current vault's path is shown under the Choose… button, with the home folder abbreviated to ~ and long paths middle-truncated.
  • VoiceOver labels on the note tabs, formatting toolbar, settings controls, resize grip, and menu-bar item. The note picker and shortcut help open as centered, arrow-less panels.
Changed
  • The selected tab is highlighted with an outline instead of a filled color, so every tab keeps its own tint and stays recognizable whether or not it's selected.
  • Increase Contrast support. With Increase contrast on, the header band, tab pills, and settings recess firm up (a sibling to the Reduce Motion support). The empty-tab prompt also shows a focus ring when keyboard-focused.
  • A tab's config menu opens with a right-click (or control-click) instead of a double-click.
Fixed
  • Save failures are no longer silent. If a write to the vault fails, the header shows an amber warning and the save retries automatically, clearing on the next success. Your text always stays in the editor.
  • Sync conflicts don't lose the other side. If a note changes on disk while you have unsaved edits, the incoming version is preserved as a “… (sync conflict …).md” copy before your edits save.
  • No lost edits when switching notes. Switching tabs, stepping siblings, picking a note, or hiding the panel now reads the editor's true current text and saves it before loading the next note.
  • No lost edits on sleep or quit. The debounced autosave is flushed when the machine sleeps or the app quits, not only when the panel hides.
  • Live sync no longer bounces you to the top. When a note changes on disk (Obsidian Sync, iCloud/Dropbox), the update is applied in place, keeping your caret and scroll position.
  • Today tab follows midnight. Left open across midnight, a Today tab rolls over to the new day's note instead of showing yesterday's.
  • Non-standard daily-note formats resolve correctly. Formats using single D, ordinal Do, weekday names, and bracketed literals now match Obsidian's file.
  • Font size only accepts a number (9–48); non-numeric input is rejected instead of snapping to the minimum.
  • Find no longer errors the editor. The custom ⌘F panel could dispatch a query mid-update; it now sets the query only on input.
  • Missing note. A tab whose note was moved or deleted shows a clear “Note not found” state with a re-pick action, instead of an empty editor.
  • Cloud-vault note loading. Notes in a cloud vault (OneDrive, iCloud, Dropbox) that are stored as online-only placeholders are downloaded before opening, so they load correctly.
1.0 Initial release

The first release: a native macOS menu-bar companion for Obsidian. A floating panel of quick note tabs with a live-preview Markdown editor, one global hotkey away.

Added
  • Menu-bar panel. A global hotkey (default ⌥⌘N) opens a floating panel that points at the menu-bar icon, with a stay-on-top option so it floats above other apps, on every Space.
  • Six note tabs. Six fixed, color-coded tabs along the bottom, each bound to a real note in your vault and switchable with ⌘1–⌘6.
  • Live-preview Markdown editor. A CodeMirror 6 editor with a formatting toolbar: headings, bold, italic, code, lists, quotes, and links render inline while the file stays plain Markdown.
  • Clickable task checkboxes. - [ ] / - [x] render as real checkboxes; click one to toggle it done.
  • Autosave & live reload. Edits autosave back to the .md files, and changes made in Obsidian are picked up live in Notesidian.
  • Per-tab icons. Give each tab an icon from SF Symbols or any emoji.
  • Today's Note tabs. Point any tab at the current day's daily note.
  • Inline settings panel. Font, global shortcut, launch-at-login, and stay-on-top, all in one place.
  • Light & dark. Follows your system appearance.