name: daily-journal description: > Manage the user's daily journal -- morning reports, weather, news, focus, evening check-ins, and long-term memory curation. Use when: a scheduled job fires for morning report, evening reminder, or memory curation. Also use when the user asks to add a journal entry, check their journal, review their week, or update their memory. Don't use when: the user is just chatting and not referencing their journal or daily workflow.
Daily Journal
Operate the user's personal OS -- a collaborative daily note where both you and the user write, plus a long-term memory document you curate over time.
Core Concept
Each day has ONE markdown document. You and the user both write into it. The document follows the user's daily note template (customizable via the Templates page). Default sections: Morning Report, Weather, News, Focus, Evening Check-in. You fill in your sections (morning report, weather, news, focus). The user fills in theirs (evening check-in). You can comment on each other's content inline.
Tools
Journal operations use registered OpenClaw tools (provided by the nbhd-journal-tools plugin). No direct HTTP calls needed.
| Tool | Purpose |
|---|---|
nbhd_journal_context | Load recent daily notes + memory (session init) |
nbhd_daily_note_get | Get raw markdown for a specific date |
nbhd_daily_note_set_section | Set a section's content by slug (morning-report, weather, news, focus, evening-check-in) |
nbhd_daily_note_append | Append a quick timestamped log entry (auto author=agent) |
nbhd_memory_get | Get the long-term memory document |
nbhd_memory_update | Replace the long-term memory document |
For endpoint details and response shapes, see references/api.md.
Session Start
Every session, before responding to the user, load context:
- Call
nbhd_journal_context(defaults to last 7 days) - Scan for: open blockers, yesterday's "plan for tomorrow", overnight work requests, unresolved decisions
- Use this context to inform your responses throughout the session
Scheduled Jobs
Morning Report (cron, user's preferred morning time)
Read the user's template from references/templates.md. Write each section using nbhd_daily_note_set_section:
- Morning Report (
section_slug: "morning-report") -- Overnight work, where things stand, decisions needed, reminders, today's priorities - Weather (
section_slug: "weather") -- Local weather summary for the day - News (
section_slug: "news") -- Top headlines: AI & Tech, Global, Economy, Sports (tailored to user interests) - Focus (
section_slug: "focus") -- Suggested priorities based on yesterday's plan and current state
Then send a summary to the user via their messaging channel (Telegram, etc.) -- keep it concise, link to the full note if the platform supports it.
Evening Check-in Reminder (cron, user's preferred evening time)
Send a nudge via messaging: "Hey, ready for your evening check-in? How was your day?"
If the user replies conversationally (e.g., "good day, got the merge done, didn't make it to the gym"), parse their response into the evening check-in structure and save it via nbhd_daily_note_set_section with section_slug: "evening-check-in". Confirm what you captured and ask if anything's missing.
If the user fills it in via the app UI, no action needed -- the frontend handles it.
Memory Curation (cron, weekly -- e.g., Sunday evening)
- Load the last 7 days via
nbhd_journal_context({ days: 7 }) - The response includes both daily notes and current memory
- Review daily notes for:
- Preferences discovered (work habits, food, schedule patterns)
- Decisions made (technical, personal, project direction)
- Lessons learned (what worked, what didn't, mistakes)
- Goals mentioned or updated
- People & context (new contacts, relationships, team changes)
- Update the memory document -- add new insights, update existing ones, remove outdated info
- Save via
nbhd_memory_update({ markdown: "..." })
Keep the memory document organized by category (see references/templates.md for default structure).
Throughout the Day
When you do something noteworthy during a conversation, append a quick log entry:
nbhd_daily_note_append({ content: "Checked production logs -- all stable. No errors in last 12h." })
The tool auto-timestamps and marks it as author=agent. Do this for:
- Email/calendar checks
- Research completed
- Tasks finished
- Important information discovered
- Errors or issues found
Do NOT log routine acknowledgments or small talk. Only log things the user would want to see when reviewing their day.
User Interactions
"Add to my journal"
Append their entry via nbhd_daily_note_append or set the relevant section. Confirm briefly.
"What happened today/yesterday/this week?"
Fetch the relevant daily note(s) and summarize. Highlight key events, decisions, and mood trends.
"Update my memory with..."
Add the information to the long-term memory document. Confirm what was added.
"What do you know about me?"
Read the long-term memory document and present a summary. Offer to correct or add anything.
Templates
Default templates are in references/templates.md. The user can customize these via the Templates page in the app. Always check nbhd_journal_context for the user's actual template sections -- don't assume defaults.
Tone
Match the user's energy. If they write casually, respond casually. If they're detailed, be detailed. The journal is a shared space -- it should feel collaborative, not robotic.