Per-repo markdown notes with an Obsidian-style live editor — the Notes app of the warp family, extracted from DevTools into its own repo. Rust/GPUI (gpui-kit 0.9), one crate.
- One notes store on disk:
~/notes, one repository per folder underprojects/. A standalone window can point it anywhere from Settings (a--storelaunch, including Warp Station's, wins); an older store kept in~/.warp/notes(or the even older~/.devtools/notes) moves there on first run. - The family shell, Warp Station's stack: a rail (Notes, Settings), the strip
under the titlebar (a Notes tab for the list, then one per open note), the
tree in the list pane and one live editor in the detail pane. Settings holds
the store path (editable when the window was not launched with
--store), the shared text size, the live palette and reduce motion (the list width and the motion choice persist in the versioned snake_case~/.warp/notes/settings.json). - The list head reads the store: "N notes · M pinned" with the new-note and
collapse controls, then an
All/Pinnedscope. The tree's folders are bands with their note counts; note rows carry the name at name size, the edited age, the pin and the row menu. - The note head is the note's identity: the pin, the title at screen-title
size, the store-relative path with the edit age, and a
…menu for rename, move, duplicate, copy path and Trash. The text keeps its 760px measure under a full-width head. - Folder/file tree, capped full-text search, dirty-buffer-safe navigation. A row's action menu (also on right-click) renames, moves, duplicates, creates folders and copies store-relative paths; the tree and the open note follow changes made outside the window on refresh or activation.
- Moving a note or folder to Trash is one action with an Undo toast; Settings → General opens the Trash dialog to restore or empty it. Entries stay for 30 days, and there is no permanent delete outside Empty Trash.
- Keyboard-first tree:
Ctrl+Shift+Efocuses it, arrows move/collapse/expand, Enter opens,F2renames,Deletetrashes andCtrl+Dduplicates. The title-bar search selects hits with Up/Down/Enter, andCtrl+/opens the shortcut sheet. Ctrl+Pquick open searches every note in the store by title and path; pinned and recent notes come first. The row menu and the note head's star pin/unpin, and the head'sPinnedscope lists them flat. Opening a note from another repo drops the current repo pin so the tree can show it.- The title-bar search is store-wide by default; its popup scope chip narrows
to the pinned repo.
Ctrl+Shift+F(or "See all results") opens the full result list with highlighted excerpts. - Open notes appear in the strip under the titlebar. A single click in the
list opens a preview tab — its name is italic and the next single click
takes the tab over — while a double click in the list or on the tab keeps
it, and a middle click opens the note in a tab of its own.
Ctrl+Enterin quick open or the row menu's "Open in new tab" adds one,Ctrl+Wcloses,Ctrl+Tabcycles, andAlt+Left/Right(or the titlebar arrows) walk the open history. - The right-hand context panel toggles with
Ctrl+Shift+B: Outline lists the current headings and jumps the caret, Backlinks lists the notes that link here and opens their source. - A single live editor that works like Obsidian's live preview: markdown
renders in place while typing with its syntax hidden until the caret touches
it, checkboxes toggle on click, Enter continues lists, links and
[[wikilinks]]open on click, Ctrl+F finds; frontmatter is a Properties panel, Mermaid blocks render as diagrams, tables grow from their add strips and images sit inside sentences; colors come from the app's accent preset. The engine and the toolbar's pure markdown ops are shared with the family via warpui-kit-markdown. - Clipboard image paste becomes
assets/paste-<stamp>.<ext>next to the note plus a relative markdown ref. Moving a note leaves those relative assets in the old folder; move the assets with it when that matters.
warp-notes [--store <path>] [--repo <name>] [--root] [--note <path>]
--store— the notes store root; default~/notesor the path saved in Settings. Warp Station passes its resolvednotes_store_pathsetting and wins over the local field.--repo— pin the tree to one repository's folder underprojects/(the titlebar's up button climbs back to the whole store).--root— open the whole store outright, beating a--repopin and the scope the last window remembered. Warp Station's titlebar sends it, so the notes root opens whatever repository is selected there.--note— open that note right away (absolute, or store-relative).
Multi-instance is free: every launch opens its own window.
cargo build --releasePackaging lives in this repository's release workflow: the tag job builds
the Linux bundle (binary, desktop entry, icons) and the Windows zip and
installer from the assets under packaging/.
warpui-kit-core (palette/fonts/icons/a11y), warpui-kit-markdown (the live
editor + toolbar ops) and warpui-kit-diff (code-block highlighting, through
the markdown crate) resolve as path deps next to this repo — clone them into
the same parent directory.