Yang

October 31, 2026

A Note Management Workflow for Neovim and Obsidian

Capture into an inbox. Shape the note while it is still small. Once a day, keep it or delete it. A script files whatever you kept.

The vault is not the hard part. The hard part is the pile of untitled notes that never get a home. This workflow gives every note the same path, and a moment where I have to decide.

on "title"
    → inbox/YYYY-MM-DD_title.md
    → Space on, set the tag, Space of
    → obr, read the inbox
    → Space ok  (keep → jarvis/)
      Space odk (delete)
    → og
    → notes/<first-tag>/

New notes never go straight into notes/. They sit in inbox/ until a review. Kept notes sit in jarvis/ until og sorts them. notes/ is only for notes that survived both steps.

1. Capture

From anywhere, with OBSIDIAN_DIR set:

on "Note Management Workflow"

on turns spaces into dashes, prefixes today's date, writes the file under inbox/, and opens it in Neovim:

inbox/2026-10-31_Note-Management-Workflow.md

The file is empty. That is intentional. Capture and shaping are separate. If I only have a title, I stop here and come back at review.

2. Shape the note

In the Neovim buffer, Space on inserts templates/note.md and removes the blank line the template command leaves at the top. The buffer then looks like this:

---
date: 2026-10-31
tags:
  - fact
hubs:
  - "[[learn-anything]]"
urls:
  -
---
 
# 2026-10-31_Note-Management-Workflow

Three edits matter before the note leaves the inbox.

The first tag is the folder. og reads only the line after tags:. blog files into notes/blog/. vim files into notes/vim/. Extra tags are for search inside Obsidian. They do not change the destination. A missing tag means og skips the file and leaves it in jarvis/.

Hubs are links, not folders. [[learn-anything]] and [[work-smart]] are how related notes find each other in the graph. They are not part of the filing script.

The heading is cleaned with the cursor on that line. Space of strips the date and the underscore, then replaces dashes with spaces:

# Note Management Workflow

The substitute has no range. If the cursor is anywhere else, it rewrites the wrong line. Run it once, on the # line, before you rewrite the title by hand.

Then write the note. Or don't. A title, a tag, and a sentence is enough to review.

3. Review the inbox

Daily, or at the end of the week:

obr

obr changes to the vault and opens every markdown file in inbox/. Each file is one captured note. I read it and make one decision: keep or delete. I do not reorganize during this pass. Filing happens later, in batch, so review stays fast.

obr puts every matching file on Vim's argument list and starts on the first one. Move through that list with:

CommandGoes to
:nthe next note
:Nthe previous note
:firstthe first note
:lastthe last note
:argsthe full list; the current note is in brackets

:n will not leave a note with unsaved changes. Write it with :w, then run :n again. :n! switches and drops those changes. :qa closes every note opened by obr. The same commands work if you open the inbox with Neovim.

obr launches vim, the system Vim at /usr/bin/vim. The keep and delete maps live in Neovim. on already opens Neovim, and that is where Space ok and Space odk work. For a review session that can archive and delete, open the inbox with Neovim:

cd "$OBSIDIAN_DIR"
nvim ./inbox/*.md

Point obr at nvim if you want the fish command and the maps in the same session.

4. Keep

On a note worth saving, in Neovim:

Space ok

That moves the file on disk into jarvis/ and closes the buffer. The note is no longer in the inbox, and it is not in its topic folder yet. jarvis is the "I decided" pile. It can hold a week's notes until I am ready to file them.

5. Delete

On a note that is a duplicate, a dead end, or something I will not reread:

Space odk

That deletes the file and closes the buffer. There is no trash folder. Review is the moment the note either earns a place or goes away.

6. File by tag

When jarvis/ has the notes I want to keep:

og

For each markdown file, og takes the first tag and moves the file to notes/<tag>/, creating the folder if needed.

tags:
  - blog

becomes notes/blog/<filename>.md. The filename stays as it was created, date prefix included, so the topic folder stays in chronological order. A file with no tag stays in jarvis and is printed as skipped.

After og, jarvis/ should be empty. If it is not, the leftovers are notes whose frontmatter does not have a tag on the line after tags:.

7. Find a filed note

Once a note is under notes/, I look it up from Neovim instead of browsing folders.

KeysAction
Space osFind a file by name under notes/
Space ozLive grep under notes/
Space ooChange Neovim's working directory to the vault
gfFollow a [[wiki link]]

Search is scoped to notes/ so half-finished inbox drafts do not show up when I am looking for something I already kept.

From the shell, obo only changes to the vault. It does not open an editor.

What a week looks like

I run on whenever something is worth a title. Most days that is a few files, all of them in inbox/, most of them only a heading and a tag.

At review I open the inbox and walk the buffers. Anything I would open again goes to jarvis with Space ok. Anything I would not goes away with Space odk. I do not file during this pass.

When the inbox is clear, og drains jarvis into notes/blog/, notes/vim/, notes/fact/, and whatever other first tag I used. The topic folders stay clean because nothing enters them without a decision.

Command card

WhenCommandWhere it runs
New noteon "Note title"shell → Neovim
Apply templateSpace onNeovim
Clean the headingSpace of (cursor on the # line)Neovim
Open the inboxobrshell → Vim
KeepSpace okNeovim → jarvis/
DeleteSpace odkNeovim
File by first tagogshell → notes/<tag>/
Find a fileSpace osNeovim, under notes/
Search textSpace ozNeovim, under notes/

The rule underneath the card is small. The inbox is for capture. jarvis is for decisions. notes/ is for notes I have already chosen to keep.