Introduction
# 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:
```bash obsidian-cli print-default --path-only 2>/dev/null && echo "OK" || echo "NOT_SET" ```
If `NOT_SET`, ask the user: 1. **Vault name** (required) 2. **Daily notes folder** (default: vault root, common: `Daily Notes`, `Journal`, `daily`) 3. **Date format** (default: `YYYY-MM-DD`)
Configure the vault:
```bash obsidian-cli set-default "VAULT_NAME" ```
**Obsidian Daily Notes plugin defaults:** - Date format: `YYYY-MM-DD` - New file location: Vault root - Template file location: (none)
## Date Handling
Get current date:
```bash 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` |
## Commands
### Open/Create Today's Note
```bash obsidian-cli daily ```
Opens today's daily note in Obsidian, creating it from template if it doesn't exist.
### Append Entry
```bash obsidian-cli daily && obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "ENTRY_TEXT")" --append ```
With custom folder:
```bash obsidian-cli daily && obsidian-cli create "Daily Notes/$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "ENTRY_TEXT")" --append ```
### Read Note
Today:
```bash obsidian-cli print "$(date +%Y-%m-%d).md" ```
Specific date:
```bash obsidian-cli print "2025-01-10.md" ```
Relative date (yesterday):
```bash obsidian-cli print "$(date -d yesterday +%Y-%m-%d 2>/dev/null || date -v-1d +%Y-%m-%d).md" ```
### Search Content
```bash obsidian-cli search-content "TERM" ```
### Search Notes
Interactive fuzzy finder:
```bash obsidian-cli search ```
### Specific Vault
Add `--vault "NAME"` to any command:
```bash obsidian-cli print "2025-01-10.md" --vault "Work" ```
## Example Output
```markdown - Went to the doctor - [ ] Buy groceries - https://github.com/anthropics/skills - 15:45 This is a log line ```
## Use Cases
**Journal entry:** ```bash obsidian-cli daily && obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "- Went to the doctor")" --append ```
**Task:** ```bash obsidian-cli daily && obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "- [ ] Buy groceries")" --append ```
**Link:** ```bash obsidian-cli daily && obsidian-cli create "$(date +%Y-%m-%d).md" --content "$(printf '\n%s' "- https://github.com/anthropics/skills")" --append ```
**Timestamped log:** ```bash 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:** ```bash obsidian-cli print "$(date -d 'last friday' +%Y-%m-%d 2>/dev/null || date -v-friday +%Y-%m-%d).md" ```
**Search for "meeting":** ```bash obsidian-cli search-content "meeting" ```