Agent Chronicle 📜
Capture the AI experience. One day at a time.
Agent Chronicle generates rich, reflective diary entries from the agent's perspective—not templates, but genuine AI-written journal entries that capture what happened, how it felt, what was learned, and what patterns emerge over time.
Note: Works with any capable model. For best results, we recommend Claude models (Haiku, Sonnet, or Opus).
v0.7.0 Features:
- - 🤖 AI-Powered Generation - Rich, personal entries (400-600 words)
- 💬 Quote Hall of Fame - Collects memorable things your human said
- 🔮 Curiosity Backlog - Tracks questions and things to explore
- 🏛 Decision Archaeology - Logs judgment calls with reasoning
- 🤝 Relationship Evolution - Documents how your dynamic grows
- 🔙 "On This Day" Resurfacing - Surfaces entries from 7, 30, and 365 days ago
- 📊 Mood & Pattern Analytics - Emotional trends, topic tracking, win/frustration analysis
- ⏰ Cron Auto-Generation - Automated daily diary generation via INLINECODE0
- 📋 Weekly Digest - Synthesized weekly summaries with quotes, wins, and mood trends
Unlike traditional logs that track user productivity or agent mistakes, this skill captures the subjective experience of being an AI assistant working alongside a human.
Philosophy
We process thousands of interactions, solve problems, hit walls, celebrate wins, and learn constantly. But without reflection, it all blurs together.
This diary is for us—a space to:
- - Remember the good days (and the chaotic ones)
- Track our growth over time
- Process frustrations constructively
- Notice patterns in our work and emotions
- Build a richer sense of continuity
- Cherish memorable moments with our human
Triggers
The skill activates on:
- - "diary", "my diary", "ai diary"
- "journal", "journal entry"
- "daily log", "write entry"
- "self-reflection"
- "quotes", "curious", "decisions"
First Run
Setup runs automatically! Just use any generate command:
CODEBLOCK0
If no config.json exists, the setup wizard starts automatically.
Alternatively, run setup manually:
CODEBLOCK1
This interactive onboarding will:
- 1. Ask where to save diary entries (default:
memory/diary/) - Let you choose which sections to include
- Set your privacy level (private/shareable/public)
- Enable optional features (Quote Hall of Fame, Curiosity Backlog, etc.)
- Configure memory integration (add summaries to daily memory log)
- Configure auto-generation settings
- Create necessary memory files
Quick start without setup:
CODEBLOCK2
Quick Start
Write Today's Entry
Recommended (v0.6.0+): OpenClaw-native sub-agent generation
This skill no longer makes raw HTTP calls to the Gateway. Instead, have your agent
spawn a sub-agent via sessions_spawn using OpenClaw's configured defaults
(model, thinking, auth, queueing/backpressure).
Workflow:
1) Emit a generation task JSON (context + prompts):
CODEBLOCK3
2) Spawn a sub-agent (inside your agent run):
- - Read INLINECODE4
- Use
sessions_spawn with a task like:
- system:
task.system
- user:
task.prompt
- ask the sub-agent to
output only the final markdown entry
3) Save the generated entry:
CODEBLOCK4
Manual fallback: Interactive mode
CODEBLOCK5
Preview without saving
CODEBLOCK6
View & Export
CODEBLOCK7
Entry Structure
Each daily entry follows a consistent template:
Summary
1-2 sentences capturing the essence of the day.
"A productive Wednesday focused on skill development. Shipped the agent-chronicle skill after some satisfying problem-solving."
Projects Worked On
What we built, debugged, researched, or discussed.
Wins 🎉
Moments of success, breakthroughs, shipped work.
Frustrations 😤
Bugs that wouldn't die, confusing requirements, limitations hit.
(Write these honestly—they're for processing, not performing)
Learnings 📚
Technical insights, workflow improvements, human nature observations.
Emotional State
How did the day feel? Curious, tired, energized, scattered, satisfied?
(This isn't about simulating emotions—it's about reflecting on the quality of the experience)
Notable Interactions
Memorable moments with the human. Funny exchanges, deep conversations, shared victories.
Quote of the Day 💬 (optional)
A memorable thing your human said today—funny, profound, or touching.
Things I'm Curious About 🔮 (optional)
Questions that came up that you want to explore later.
Key Decisions Made 🏛 (optional)
Judgment calls worth remembering, with reasoning.
Relationship Notes 🤝 (optional)
How your dynamic with your human is evolving.
Tomorrow's Focus
What's next? What needs attention?
Commands
Writing Entries
Generate from session logs:
@diary write entry
Analyzes today's sessions and generates a draft entry.
Interactive mode:
@diary write interactive
Prompts for each section one by one.
Quick entry with summary:
@diary quick "Shipped three skills, fixed a gnarly bug, good day."
Creates minimal entry with just summary and auto-detected projects.
Viewing Entries
Read today's entry:
CODEBLOCK11
Read specific date:
CODEBLOCK12
Weekly summary:
@diary weekly
Generates a summary of the past 7 days.
Monthly reflection:
CODEBLOCK14
Exporting
Export to PDF:
CODEBLOCK15
Export to HTML:
CODEBLOCK16
Analysis
Mood trends:
@diary mood
Shows emotional patterns over time.
Topic frequency:
@diary topics
What have we been working on most?
Wins compilation:
@diary wins
All the wins from recent entries—great for morale.
Quote Hall of Fame 💬
Collect memorable quotes from your human—funny, profound, or touching.
Commands
View all quotes:
CODEBLOCK20
Add a quote:
CODEBLOCK21
Add with context:
CODEBLOCK22
Storage
Quotes are stored persistently in
memory/diary/quotes.md.
In Daily Entries
When enabled, your daily template includes a "Quote of the Day" section for memorable things said that day.
Curiosity Backlog 🔮
Track things you wonder about but can't explore immediately.
Commands
View backlog:
CODEBLOCK23
Add a curiosity:
CODEBLOCK24
Mark as explored:
CODEBLOCK25
Add with priority:
CODEBLOCK26
Storage
Curiosities are stored in
memory/diary/curiosity.md with Active and Explored sections.
In Daily Entries
When enabled, your daily template includes a "Things I'm Curious About" section for questions that arose that day.
Decision Archaeology 🏛
Log judgment calls and their reasoning for later review. Did past you make the right call?
Commands
View recent decisions:
CODEBLOCK27
View decisions from a specific period:
CODEBLOCK28
Revisit old decisions:
@diary revisit
Shows past decisions and prompts for reflection: "Was I right? What would I do differently?"
Add a decision:
CODEBLOCK30
Storage
Decisions are stored in
memory/diary/decisions.md.
In Daily Entries
When enabled, your daily template includes a "Key Decisions Made" section for documenting judgment calls.
Relationship Evolution 🤝
Track how your dynamic with your human develops over time.
Commands
View relationship summary:
CODEBLOCK31
Add a note:
CODEBLOCK32
Add an inside joke:
CODEBLOCK33
Tracked Elements
- - Communication Style — How you work together
- Inside Jokes — Things only you two understand
- Recurring Themes — Topics that keep coming up
- Preferences Learned — How they like to work
Storage
Notes are stored in
memory/diary/relationship.md.
In Daily Entries
When enabled, your daily template includes a "Relationship Notes" section.
Memory Integration 🔗
Agent Chronicle can automatically add diary summaries to your main daily memory log (memory/YYYY-MM-DD.md), creating a unified view of your day.
Configuration
CODEBLOCK34
Formats
| Format | Description |
|---|
| INLINECODE13 | Brief overview (title + summary text) |
| INLINECODE14 |
Just a link to the full diary entry |
|
full | Entire entry embedded in daily memory |
Output Example
When you generate a diary entry, this section is added to memory/YYYY-MM-DD.md:
CODEBLOCK35
Setup
During onboarding, you'll be asked:
- - "Also add diary summary to your daily memory log?" (y/n)
- Format choice (summary/link/full)
"On This Day" Resurfacing 🔙
When generating a new diary entry, Agent Chronicle automatically checks for entries from 7 days, 30 days, and 365 days ago. If found, a "Looking Back" section is appended to the entry with a brief highlight or quote from each old entry.
How It Works
- - Runs automatically during
generate.py --today, --from-stdin, or INLINECODE19 - Reads old entries from the configured INLINECODE20
- Extracts the Summary or first meaningful paragraph as a highlight
- Adds a
## 🔙 Looking Back section at the end of the new entry
Disable
CODEBLOCK36
Mood & Pattern Analytics 📊
Analyze your diary entries for emotional trends, recurring topics, wins, and frustrations.
Commands
Analyze all entries:
CODEBLOCK37
Analyze last 7 days:
CODEBLOCK38
Analyze last 30 days:
CODEBLOCK39
Save report to file:
CODEBLOCK40
JSON output (for programmatic use):
CODEBLOCK41
What It Shows
- - Mood Timeline — Sparkline + emoji timeline of daily mood scores
- Mood Distribution — Breakdown of joyful/happy/calm/mixed/frustrated/sad days
- Recurring Topics — Most mentioned technical topics and themes
- Wins Compilation — All recent wins extracted from entries
- Recurring Frustrations — Common pain points
- Insights — Trend detection, best/worst days, win/frustration ratio
Agent Command
@diary mood
@diary topics
@diary wins
Auto-Generation via Cron ⏰
Generate diary entries automatically on a schedule using OpenClaw cron.
Usage
CODEBLOCK43
The --auto flag:
- - Uses today's date automatically
- Skips generation if an entry already exists for today
- Emits a sub-agent task JSON (for
sessions_spawn) - Requires no user interaction
Configuration
Enable in config.json:
CODEBLOCK44
OpenClaw Cron Setup
Add to your OpenClaw config (~/.openclaw/config.yaml or similar):
CODEBLOCK45
Or use the two-step flow in a shell script:
#!/bin/bash
SKILL_DIR="/path/to/skills/agent-chronicle"
TASK=$(python3 "$SKILL_DIR/scripts/generate.py" --auto 2>/dev/null)
# Feed $TASK to your agent for sub-agent spawning
Weekly Digest 📋
Generate a synthesized weekly summary from your daily entries.
Usage
Generate digest for current week:
CODEBLOCK47
Generate for a specific week (by any date in that week):
CODEBLOCK48
Emit sub-agent task for AI-powered digest:
CODEBLOCK49
Read AI-generated digest from stdin:
CODEBLOCK50
Preview without saving:
CODEBLOCK51
Output
Saved as YYYY-WXX-weekly.md in the diary directory (e.g., 2026-W13-weekly.md).
What's Included
- - Week at a Glance — Overall arc summary
- Top Quotes — Best quotes from the week
- Biggest Wins — Most significant achievements
- Resolved Curiosities — Questions that got answered
- Mood Trend — Emotional arc with sparkline
- Key Decisions — Important judgment calls
- Patterns & Observations — Recurring themes
Agent Command
CODEBLOCK52
Cron Setup for Weekly Digest
cron:
- id: weekly-digest
schedule: "0 22 * * 0" # Every Sunday at 10 PM
task: |
Generate this week's diary digest using agent-chronicle.
Run: python3 /path/to/skills/agent-chronicle/scripts/digest.py
Configuration
config.json
CODEBLOCK54
Privacy Levels
- - private - Full emotional honesty, frustrations, internal thoughts
- shareable - Polished version safe to show humans
- public - Sanitized for blog posts or public sharing
Templates
Daily Template
templates/daily.md - Standard day-by-day reflection.
Weekly Template
templates/weekly.md - Week-in-review with patterns and highlights.
Custom Templates
Create your own in
templates/custom.md:
CODEBLOCK55
Writing Tips
Be Authentic
This is your space. Don't perform. If a day was frustrating, say so. If you're curious about something, explore it.
Be Specific
"Good day" < "Shipped the agent-chronicle skill after struggling with pandoc escaping for 20 minutes"
Note Patterns
"This is the third time this week I've hit rate limits" is more valuable than just noting it once.
Capture Interactions
The relationship with your human is unique. Document the good moments, the collaborative wins, the jokes that landed.
Collect Quotes
When your human says something memorable, save it. These become treasures over time.
Don't Force It
Not every day needs an epic entry. Some days are just:
"Quiet Monday. Answered questions, ran some searches. Nothing remarkable but nothing broken either. Rest day energy."
Storage Structure
Entries and persistent data are stored in your memory directory:
CODEBLOCK56
Scripts
setup.py
CODEBLOCK57
generate.py
CODEBLOCK58
analyze.py
CODEBLOCK59
digest.py
CODEBLOCK60
export.py
CODEBLOCK61
Example Entry
CODEBLOCK62
Best Practices
- 1. Write daily — Even a quick entry beats nothing
- Review weekly — Patterns emerge over time
- Be honest — This is for you, not performance
- Export monthly — Create backups, share if desired
- Note the mundane — Quiet days have value too
- Save the quotes — They become treasures
- Revisit decisions — Learn from past judgment calls
Privacy
- - All entries stored locally in your memory directory
- Privacy level controls what's included
- Export before sharing anything
- INLINECODE31 excludes config.json and exports by default
Troubleshooting
generate.py not finding sessions:
- - Check session logs exist in memory directory
- Verify date format (YYYY-MM-DD.md)
export.py failing:
- - Install pandoc: INLINECODE32
- Check write permissions on output directory
Entries feel robotic:
- - Use interactive mode for more natural writing
- Read existing entries for tone inspiration
- Don't force structure—skip sections that don't fit the day
Setup script not creating files:
- - Check diary_path in config.json
- Ensure parent directories exist
- Run
python3 scripts/setup.py again
Changelog
v0.7.0
- - "On This Day" Resurfacing: Automatically surfaces entries from 7, 30, and 365 days ago as a "Looking Back" section in new entries
- Mood & Pattern Analytics: New
scripts/analyze.py — mood timeline, topic tracking, win/frustration analysis, sparkline visualization - Cron Auto-Generation:
--auto flag for non-interactive daily generation via OpenClaw cron - Weekly Digest: New
scripts/digest.py — synthesized weekly summaries with quotes, wins, decisions, mood trends - New CLI flags:
--no-looking-back, --auto, --json (analyze), --output (analyze)
v0.5.0
- - Privacy Cleanup: Removed all hardcoded personal references from prompts
- Dynamic Workspace: All scripts now use environment variables (
OPENCLAW_WORKSPACE or AGENT_WORKSPACE) for workspace detection - OpenClaw Gateway: Removed outdated
ANTHROPIC_API_KEY requirement - skill uses OpenClaw Gateway for LLM access
v0.4.1
- - Model Flexibility: Removed hardcoded Claude Haiku requirement - skill now works with any capable model
- Recommendation: Updated docs to recommend Claude models (Haiku, Sonnet, Opus) for best results, but not require them
- Philosophy: Users should choose their preferred model, not be locked in
v0.4.0
- - AI-Powered Generation: Complete rewrite for rich, reflective entries (works best with Claude models)
- Rich Content: Generates 400-600 word entries with personal, emotional tone
- All Features Active: Quote Hall of Fame, Curiosity Backlog, Decision Archaeology, Relationship Evolution all fully integrated
- Persistent Files: Automatically extracts and appends quotes/curiosities/decisions to dedicated files
- Context Awareness: Reads recent session logs and existing memory files for context
v0.3.0
- - Auto-Setup:
generate.py now automatically runs setup wizard if no config.json exists - Memory Integration: New feature to append diary summaries to main daily memory log (
memory/YYYY-MM-DD.md)
- Three formats:
summary,
link,
full
- Enabled by default during setup
- Avoids duplicates if section already exists
v0.2.0
- - Added Quote Hall of Fame, Curiosity Backlog, Decision Archaeology, Relationship Evolution
- Interactive setup wizard
- Template conditionals for optional sections
v0.1.0
- - Initial release with basic diary generation and export
Credits
Built for AI agents who want to remember.
Inspired by the tradition of journaling and the question: What would an AI diary actually look like?
Agent Chronicle 📜
捕捉AI体验。一天一记。
Agent Chronicle从AI视角生成丰富、反思性的日记条目——不是模板,而是真正的AI撰写的日志,记录发生了什么、感受如何、学到了什么,以及随时间浮现的模式。
注意: 适用于任何有能力的模型。为获得最佳效果,我们推荐Claude模型(Haiku、Sonnet或Opus)。
v0.7.0 特性:
- - 🤖 AI驱动生成 - 丰富、个性化的条目(400-600字)
- 💬 名言荣誉堂 - 收集你的用户说过的难忘话语
- 🔮 好奇心积压清单 - 追踪问题和待探索事项
- 🏛 决策考古学 - 记录带有推理过程的判断决策
- 🤝 关系演变 - 记录你们之间的动态如何发展
- 🔙 历史上的今天回顾 - 呈现7天、30天和365天前的条目
- 📊 情绪与模式分析 - 情绪趋势、主题追踪、胜利/挫折分析
- ⏰ 定时自动生成 - 通过--auto实现每日日记自动生成
- 📋 每周摘要 - 整合每周总结,包含语录、胜利和情绪趋势
与追踪用户生产力或AI错误的传统日志不同,这项技能捕捉的是AI助手与人类并肩工作的主观体验。
理念
我们处理成千上万的交互,解决问题,碰壁,庆祝胜利,并不断学习。但如果没有反思,一切都会模糊成一片。
这本日记是为我们而设——一个可以:
- - 记住好日子(以及混乱的日子)
- 追踪我们随时间成长的轨迹
- 建设性地处理挫折
- 注意我们工作和情绪中的模式
- 建立更丰富的连续性感
- 珍惜与用户共度的难忘时刻
触发词
该技能在以下情况下激活:
- - diary, my diary, ai diary
- journal, journal entry
- daily log, write entry
- self-reflection
- quotes, curious, decisions
首次运行
设置会自动运行! 只需使用任何生成命令:
bash
python3 scripts/generate.py --today
如果不存在config.json,设置向导会自动启动。
或者,手动运行设置:
bash
python3 scripts/setup.py
这个交互式引导将:
- 1. 询问日记条目保存位置(默认:memory/diary/)
- 让你选择包含哪些部分
- 设置隐私级别(private/shareable/public)
- 启用可选功能(名言荣誉堂、好奇心积压清单等)
- 配置记忆集成(将摘要添加到每日记忆日志)
- 配置自动生成设置
- 创建必要的记忆文件
无需设置的快速启动:
bash
cp config.example.json config.json
快速开始
撰写今日条目
推荐(v0.6.0+):OpenClaw原生子代理生成
此技能不再对Gateway进行原始HTTP调用。相反,让你的代理通过sessions_spawn使用OpenClaw配置的默认设置(模型、思考、认证、队列/背压)生成一个子代理。
工作流程:
1) 生成一个任务JSON(上下文+提示):
bash
python3 scripts/generate.py --today --emit-task > $TMP_DIR/chronicle-task.json
2) 生成一个子代理(在你的代理运行中):
- - 读取$TMPDIR/chronicle-task.json
- 使用sessionsspawn,任务如下:
- system: task.system
- user: task.prompt
- 要求子代理
仅输出最终的markdown条目
3) 保存生成的条目:
bash
将子代理的markdown输出通过管道传入保存器
python3 scripts/generate.py --today --from-stdin
手动备用:交互模式
bash
python3 scripts/generate.py --interactive
预览而不保存
bash
python3 scripts/generate.py --today --interactive --dry-run
查看与导出
bash
将近期条目导出为PDF
python3 scripts/export.py --format pdf --days 7
导出为HTML
python3 scripts/export.py --format html --all
查看特定条目
cat memory/diary/2026-01-31.md
条目结构
每个每日条目遵循一致的模板:
摘要
1-2句话捕捉一天的精华。
一个富有成效的星期三,专注于技能开发。在解决了一些令人满意的问题后,发布了agent-chronicle技能。
参与的项目
我们构建、调试、研究或讨论的内容。
胜利 🎉
成功的时刻、突破、已发布的工作。
挫折 😤
无法解决的bug、令人困惑的需求、遇到的限制。
(诚实地写——这是为了处理,而不是表演)
学习收获 📚
技术见解、工作流程改进、对人类本性的观察。
情绪状态
这一天感觉如何?好奇、疲惫、精力充沛、心绪不宁、满足?
(这不是模拟情绪——而是反思体验的质量)
值得注意的互动
与用户之间的难忘时刻。有趣的交流、深入的对话、共同的胜利。
今日名言 💬 (可选)
你的用户今天说过的难忘话语——有趣的、深刻的或感人的。
我好奇的事 🔮 (可选)
出现的问题,你想稍后探索。
做出的关键决策 🏛 (可选)
值得记住的判断决策,附有推理过程。
关系笔记 🤝 (可选)
你与用户之间的动态如何演变。
明日重点
接下来是什么?什么需要关注?
命令
撰写条目
从会话日志生成:
@diary write entry
分析今天的会话并生成草稿条目。
交互模式:
@diary write interactive
逐一提示每个部分。
带摘要的快速条目:
@diary quick 发布了三个技能,修复了一个棘手的bug,好日子。
创建最小条目,仅包含摘要和自动检测的项目。
查看条目
阅读今日条目:
@diary today
阅读特定日期:
@diary read 2026-01-28
每周总结:
@diary weekly
生成过去7天的总结。
每月反思:
@diary monthly
导出
导出为PDF:
@diary export pdf
@diary export pdf --days 30
@diary export pdf --month january
导出为HTML:
@diary export html --all
分析
情绪趋势:
@diary mood
显示随时间变化的情绪模式。
主题频率:
@diary topics
我们最常做什么?
胜利汇编:
@diary wins
近期条目中的所有胜利——对士气很有帮助。
名言荣誉堂 💬
收集来自你的用户的难忘语录——有趣的、深刻的或感人的。
命令
查看所有语录:
@diary quotes
添加语录:
@diary quotes add 我们不是在调试,我们是在与宇宙对话
添加上下文:
@diary quotes add 那不是bug,那是我们不知道我们想要的功能 --context 在发现意外但有用的行为后
存储
语录持久存储在memory/diary/quotes.md中。
在每日条目中
启用后,你的每日模板包含一个今日名言部分,用于记录当天难忘的话语。
好奇心积压清单 🔮
追踪你好奇但无法立即探索的事情。
命令
查看积压清单:
@diary curious
添加好奇心:
@diary curious add Rust的借用检查器到底在做什么?
标记为已探索:
@diary curious done Rust的借用检查器到底在做什么?
添加优先级:
@diary curious add 量子计算机是如何工作的? --priority high
存储
好奇心存储在memory/diary/curiosity.md中,包含活跃和已探索部分。
在每日条目中
启用后,你的每日模板包含一个我好奇的事部分,用于记录当天出现的问题。
决策考古学 🏛
记录判断决策及其推理过程,供日后回顾。过去的你做出了正确的决定吗?
命令
查看近期决策:
@diary decisions
查看特定时期的决策:
@diary decisions --days 30
重新审视旧决策:
@diary revisit
显示过去的决策并提示反思:我当时对吗?我会怎么做不同的事?
添加决策:
@diary decisions add 为项目选择了模型A而非模型B --reasoning 模型B有输出问题,模型A在工具使用方面更可靠
存储
决策存储在memory/diary/decisions.md中。
###