| name | obsidian-notetaker |
| description | Find, create, edit, and update notes in an Obsidian vault using the `ob` CLI and direct file operations. Manages TODO lists (checking off tasks, adding items), commits changes with git, and syncs the vault. Use when the user asks to: take a note, capture an idea, update _todo.md, check off a task, find a note, add to Incoming.md, review TODOs, commit vault changes, or sync the obsidian vault. Personal notes only — for a code TODO.md backlog use `ralph-build-agent`; for formatting a code commit use `git-commit-formatter`. Triggers on: 'obsidian', 'vault', 'take a note', 'capture an idea', 'jot down', 'add to inbox', '_todo', 'my todo list', 'sync vault', 'commit vault'.
|
Obsidian Notetaker
Environment
The Obsidian vault lives at /media/psf/Home/obsidian/ (a macOS Parallels shared
folder). It is a git repository — commit and push changes when asked to save or sync.
VAULT=/media/psf/Home/obsidian
The ob CLI (~/.config/bin/ob) opens notes interactively in nvim. For
non-interactive agent use, operate directly on vault files with standard shell tools.
Workflow Decision Tree
Finding a note? → Use find + grep/rg (see Finding Notes)
Creating a new note? → Write file with frontmatter + commit (see Creating Notes)
Editing an existing note? → Read → edit → commit (see Editing Notes)
Updating _todo.md? → Read file, apply checkbox changes, write back (see TODOs)
Syncing/committing? → See Committing & Syncing
Finding Notes
VAULT=/media/psf/Home/obsidian
find "$VAULT" -name "*.md" -not -path "*/.git/*" | sort
find "$VAULT" -name "*keyword*" -not -path "*/.git/*"
rg -l "search term" "$VAULT" --glob "*.md" --ignore-file <(echo ".git")
rg -n "search term" "$VAULT" --glob "*.md" -g "!.git"
Creating Notes
New notes use YAML frontmatter. Match existing style:
---
id: Note Title
aliases:
- Note Title
tags:
- tag1
- tag2
created: 2026-03-27T10:00
---
# Note Title
Content here.
Create the file, then commit:
VAULT=/media/psf/Home/obsidian
mkdir -p "$VAULT/Tech/AI"
git -C "$VAULT" add .
git -C "$VAULT" commit -m "docs: add note - Note Title"
Naming: Use descriptive kebab-case filenames or natural names matching the id field.
Location: Match the topic to existing vault folders (Tech/, Work/, notes/, ideas/, etc).
Editing Notes
- Read the file with the
read tool.
- Make edits with the
edit tool (preserve frontmatter exactly).
- Update
modified: timestamp in frontmatter if it exists.
- Commit.
TODO Lists
The vault has two main TODO files:
$VAULT/_todo.md — personal todos
$VAULT/Work/_todo.md — work todos
Checking off a task
Find the line, change - [ ] to - [x]:
grep -n "task description" /media/psf/Home/obsidian/_todo.md
Then use the edit tool to change - [ ] task description → - [x] task description.
Adding a task
Append to the active task list (before the - [x] completed section):
grep -n "^\- \[" /media/psf/Home/obsidian/_todo.md | head -20
Use the edit tool to insert - [ ] new task at the right position.
Adding to Incoming.md
$VAULT/Incoming.md is the capture inbox for unprocessed resources and ideas.
Append new items under the relevant ## section or at the top of ## 📚 Pending Resources.
Committing & Syncing
VAULT=/media/psf/Home/obsidian
git -C "$VAULT" status --short
git -C "$VAULT" add .
git -C "$VAULT" commit -m "docs: <description of changes>"
git -C "$VAULT" pull --rebase && git -C "$VAULT" push
Commit message conventions:
- New notes:
docs: add note - <title>
- Edits:
docs: update <filename>
- TODOs:
chore: update _todo.md
- Bulk captures:
chore: capture inbox items
- Auto-style WIP:
WIP: <description>
Vault Structure
obsidian/
├── _todo.md Personal TODO list
├── Incoming.md Capture inbox (unprocessed resources)
├── Agile/ Agile / lean engineering notes
├── Books/ Book notes
├── DevOps/ DevOps topics
├── ideas/ Speculative / brainstorming notes
├── notes/
│ ├── dailies/ Daily notes
│ ├── meetings/ Meeting notes
│ └── weeks/ Weekly reviews
├── Personal/ Personal notes
├── Projects/ Project notes
├── Scratch/ Scratch / drafts
├── Work/ Work notes
│ └── _todo.md Work TODO list
└── Tech/ Technology notes
└── AI/ AI-specific notes