obsidian-daily-driver
Obsidian Daily Driver
When To Activate
Do NOT trigger for:
- Vaults without daily notes
- When user explicitly doesn't want daily logging
- Trivial interactions (single questions, typo fixes)
Instructions
Step 1: Find Today's Daily Note
<find_daily> Daily notes follow a date-based naming convention:
TODAY=$(date +%Y-%m-%d)
# Check common locations
DAILY="$VAULT_PATH/Daily/$TODAY.md"
[ -f "$DAILY" ] || DAILY="$VAULT_PATH/Journal/$TODAY.md"
[ -f "$DAILY" ] || DAILY="$VAULT_PATH/daily/$TODAY.md"
# Or use CLI
obsidian daily:read 2>/dev/null
obsidian-cli daily 2>/dev/null
# Check CLAUDE.md for daily note path convention
grep -i "daily" "$VAULT_PATH/CLAUDE.md" 2>/dev/null
If today's note doesn't exist, create it from the daily template:
# Find the daily template
TEMPLATE=$(find "$VAULT_PATH/Templates" -iname "*daily*" | head -1)
Create with proper frontmatter:
---
type: daily
date: YYYY-MM-DD
tags:
- daily
---
# YYYY-MM-DD
## Tasks
- [ ]
## Log
## Links
</find_daily>
Step 2: Read Existing Content
<read_daily> Before appending, read what's already there:
cat "$DAILY"
Understand the structure so you append to the RIGHT section:
- Tasks go under
## Tasks - Logs go under
## Log - Links go under
## Links
Don't duplicate entries that already exist. </read_daily>
Step 3: Append Content
Adding a task:
# Using CLI
obsidian daily:append content="- [ ] Task description"
# Direct file: find ## Tasks section and append after it
Append under ## Tasks:
- [ ] Task description
Logging work done:
Append under ## Log:
- Worked on [[project-name]]: brief description of what was done
- Fixed: [[bug-or-issue]] — what was wrong and how it was fixed
- Created: [[new-note]] — why it was created
Adding links to created artifacts:
Append under ## Links:
- [[note-created-today]] — context for why
- [[meeting-note]] — key takeaways
Session summary (end of session):
Append under ## Log:
### Claude Session — HH:MM
**Worked on:** brief description
**Created:**
- [[note-1]]
- [[note-2]]
**Decisions:**
- Decision made and why
**Next:**
- [ ] Follow-up task
Step 4: Handle CLI vs Direct Write
<write_method> Official CLI (preferred — respects plugins/templates):
obsidian daily:append content="- [ ] New task"
obsidian daily:append content="- Completed: task description"
Yakitrak CLI:
obsidian-cli create "$TODAY" --append --content "- [ ] New task"
Direct file append:
# Careful: append to the right SECTION, not just end of file
# Read the file, find the section, insert content, write back
When using direct file write, you MUST:
- Read the file first
- Find the target section (## Tasks, ## Log, etc.)
- Insert content after the section heading (or after existing items)
- Write the whole file back
Do NOT just append to the end of the file — it breaks the structure. </write_method>
Step 5: Cross-Link
- Link from daily to the related note:
[[related-note]] - Also add a backlink FROM the related note TO today's daily note (only if the related note doesn't already link back)
# In today's daily note:
- Continued work on [[project-x-api-design]]
# In project-x-api-design.md, add:
## Activity
- [[2026-02-12]] — added rate limiting approach
This creates bidirectional links that show up in Obsidian's backlinks panel and graph view.
Log Entry Formats
Task added:
- [ ] Brief task description
Task completed:
- [x] Completed task description
Work log:
- Worked on [[note]]: one sentence of what was done
Decision made:
- Decided: decision summary (see [[decision-note]] for detail)
Discovery:
- Found: discovery summary — [[related-note]]
Session summary:
### Claude Session — HH:MM
**Worked on:** [topic]
**Outcome:** [result]
**Next:** [what's left]
Output Format
When appending:
Added to daily note (YYYY-MM-DD):
- [what was added and to which section]
When creating daily note:
Created daily note: [[YYYY-MM-DD]]
Path: Daily/YYYY-MM-DD.md
Added: [initial content]
When reading:
Today's note (YYYY-MM-DD):
- Tasks: X open, Y completed
- Log: [summary of entries]
NEVER
- Overwrite the daily note (append only)
- Append to the end of the file without finding the right section
- Duplicate entries that already exist
- Create verbose log entries (keep them to one line)
- Skip reading the existing note before appending
- Log trivial interactions (single questions, typo fixes)
ALWAYS
- Read the daily note before appending to it
- Append to the correct section (Tasks/Log/Links)
- Use wikilinks when referencing other notes
- Create the daily note from template if it doesn't exist
- Include timestamps on session summaries
- Check for the daily note path in CLAUDE.md first
Example
End of session where user built a new API endpoint:
Session ending. Logging to today's daily note...
Reading Daily/2026-02-12.md...
Appended to ## Log:
- Worked on [[project-api]]: built rate limiting endpoint, added tests
- Created: [[api-rate-limiting]] — design doc for rate limit approach
Appended to ## Tasks:
- [ ] Deploy rate limiting to staging
- [x] Write rate limiting tests
Appended to ## Links:
- [[api-rate-limiting]]
Daily note updated.
User says "add a task to my daily":
Reading Daily/2026-02-12.md...
What task should I add?
[User: Review the PR from Sarah]
Appended to ## Tasks:
- [ ] Review the PR from Sarah
Daily note updated.