Obsidian Daily Notes
Interact with Obsidian Daily Notes: create notes, append entries, read by date, and search content.
Setup
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 for:
- Vault name (required)
- Daily notes folder (default: vault root, common:
Daily Notes,Journal,daily) - Date format (default:
YYYY-MM-DD)
Configure:
obsidian-cli set-default "VAULT_NAME"
Date Handling
# Today
date +%Y-%m-%d
# Yesterday
date -d yesterday +%Y-%m-%d
# Last Friday
date -d "last friday" +%Y-%m-%d
# 3 days ago
date -d "3 days ago" +%Y-%m-%d
# Next Monday
date -d "next monday" +%Y-%m-%d
Commands
Open/Create Today's Note
obsidian-cli daily
Append Entry
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
Read Note
# Today
obsidian-cli print "$(date +%Y-%m-%d).md"
# Specific date
obsidian-cli print "2026-03-07.md"
# Yesterday
obsidian-cli print "$(date -d yesterday +%Y-%m-%d).md"
Search Content
obsidian-cli search-content "TERM"
Specific Vault
Add --vault "NAME" to any command:
obsidian-cli print "2026-03-07.md" --vault "Work"
Use Cases
Journal entry:
obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "- Went to the doctor")" --append
Task:
obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "- [ ] Buy groceries")" --append
Timestamped log:
obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "- $(date +%H:%M) Deploy completed")" --append