Manage Obsidian Daily Notes via obsidian-cli. Create and open daily notes, append entries (journals, logs, tasks, links), read past notes by date, and search vault content. Handles relative dates like "yesterday", "last Friday", "3 days ago". Requires obsidian-cli installed via Homebrew (Mac/Linux) or Scoop (Windows).
Interact with Obsidian Daily Notes: create notes, append entries, read by date, and search content.
Check if a default vault is configured:
obsidian-cli print-default --path-only 2>/dev/null && echo "OK" || echo "NOT_SET"
If NOT_SET, ask the user:
Daily Notes, Journal, daily)YYYY-MM-DD)Configure the vault:
obsidian-cli set-default "VAULT_NAME"
Obsidian Daily Notes plugin defaults:
YYYY-MM-DDGet current date:
date +%Y-%m-%d
Cross-platform relative dates (GNU first, BSD fallback):
| Reference | Command |
|---|---|
| Today | date +%Y-%m-%d |
| Yesterday | date -d yesterday +%Y-%m-%d 2>/dev/null || date -v-1d +%Y-%m-%d |
| Last Friday | date -d "last friday" +%Y-%m-%d 2>/dev/null || date -v-friday +%Y-%m-%d |
| 3 days ago | date -d "3 days ago" +%Y-%m-%d 2>/dev/null || date -v-3d +%Y-%m-%d |
| Next Monday | date -d "next monday" +%Y-%m-%d 2>/dev/null || date -v+monday +%Y-%m-%d |
obsidian-cli daily
Opens today's daily note in Obsidian, creating it from template if it doesn't exist.
obsidian-cli daily && obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "ENTRY_TEXT")" --append
With custom folder:
obsidian-cli daily && obsidian-cli create "Daily Notes/$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "ENTRY_TEXT")" --append
Today:
obsidian-cli print "$(date +%Y-%m-%d).md"
Specific date:
obsidian-cli print "2025-01-10.md"
Relative date (yesterday):
obsidian-cli print "$(date -d yesterday +%Y-%m-%d 2>/dev/null || date -v-1d +%Y-%m-%d).md"
obsidian-cli search-content "TERM"
Interactive fuzzy finder:
obsidian-cli search
Add --vault "NAME" to any command:
obsidian-cli print "2025-01-10.md" --vault "Work"
- Went to the doctor
- [ ] Buy groceries
- https://github.com/anthropics/skills
- 15:45 This is a log line
Journal entry:
obsidian-cli daily && obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "- Went to the doctor")" --append
Task:
obsidian-cli daily && obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "- [ ] Buy groceries")" --append
Link:
obsidian-cli daily && obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "- https://github.com/anthropics/skills")" --append
Timestamped log:
obsidian-cli daily && obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "- $(date +%H:%M) This is a log line")" --append
Read last Friday:
obsidian-cli print "$(date -d 'last friday' +%Y-%m-%d 2>/dev/null || date -v-friday +%Y-%m-%d).md"
Search for "meeting":
obsidian-cli search-content "meeting"