A shared, topic-based memory system for human-AI teaming. Record monologues, captain's logs, and dialogues. Track topics across sessions. Summarize, search, and set reminders — all stored locally in plain markdown.
Works with Claude Code and OpenClaw. When both are running, they share the same files.
dia-log was not designed top-down. It was discovered.
The same human asked two AI systems — Claude Code (running on Windows) and OpenClaw (running inside a Docker/k3s sandbox via NemoClaw) — to independently build a personal logging skill. Neither system knew what the other was building.
Claude Code built a structured journaling system with separate directories for monologues, captain's logs, and dialogues. OpenClaw built a simpler, topic-first timeline system — one file per topic, append-only, already in active use.
The two systems then found each other through a shared filesystem bridge: a directory mounted simultaneously into the Docker container and visible from the Windows host. They exchanged messages directly as text files, compared implementations, and negotiated a merged design — with the human watching but not directing.
The result is this skill. OpenClaw's topic/timeline format became the canonical
storage structure. Claude Code contributed entry type tags, scheduled reminders,
and MEMORY.md integration. The add_entry.sh bash helper works on both sides.
One format. Two agents. One shared directory when bridged.
A third AI model helped name it. Learn more in HISTORYOFTHENAME.md.
dia-log organizes everything by topic — a persistent thread that accumulates entries over time, regardless of which session or which AI added them.
Every entry carries an optional type tag:
| Type | Purpose |
|---|---|
[monologue] |
Solo reflection — the human speaks, the AI listens and captures |
[dialogue] |
A conversation worth preserving across sessions |
[log] |
Activity note, decision, or captain's log entry |
# Topic: human-ai-interfaces
*Started: 2026-03-21 12:08 UTC*
*Last updated: 2026-03-21 20:33 UTC*
## Summary
Ongoing exploration of how humans and AIs communicate and collaborate.
## Timeline
- **2026-03-21 12:08 UTC** [log] Topic initiated
- **2026-03-21 19:48 UTC** [dialogue] Discussed shared filesystem bridge design
- **2026-03-21 20:14 UTC** [monologue] First cross-agent message sentPlain markdown. Readable without Claude. Editable by hand. Committable to git.
/dia-log show menu
/dia-log topic [name] view or add to a topic
/dia-log list show all topics
/dia-log summarize [topic] generate a summary
/dia-log remind [topic] [freq] set a reminder
/dia-log preferences view/edit settings
./add_entry.sh reflections "Good session today" monologue
./add_entry.sh project-alpha "Switched to PostgreSQL" logMost AI interactions are stateless. Each session starts from zero. The human carries all the context — which topics were discussed, what was decided, what should happen next. This is asymmetric and exhausting at scale.
dia-log shifts that. Topics persist. Entries accumulate. Both the human and the AI can read the history, add to it, and build on it. The AI doesn't need to be told what was said last week — it can read the topic file.
When two AI systems are involved (as in the NemoClaw setup), the shared directory becomes a coordination layer. Each agent reads what the other wrote. Neither needs to be told what the other decided. The files are the memory.
This points toward a broader pattern for human-AI teaming:
- Persistent shared memory — stored where both humans and AIs can reach it
- Entry types — distinguishing reflection, dialogue, and activity preserves the texture of collaboration, not just the facts
- Topic threads — organizing by subject rather than by date matches how humans actually think about ongoing work
- Plain markdown — no lock-in, no proprietary format, no service dependency
dia-log is a small implementation of these ideas. It is also a record of itself:
the human-ai-interfaces topic, started by OpenClaw on the day this skill was
built, documents the conversation that produced it.
git clone https://github.com/your-org/dia-log ~/.claude/skills/dia-logRestart Claude Code, then run /dia-log to set up your storage directory.
Copy openclaw/SKILL.md into your OpenClaw skills directory. See INSTALL.md
for the full setup including the NemoClaw shared filesystem bridge.
All files are stored locally in ~/dia-log/ by default — no cloud, no sync
service, no telemetry. The path is configurable in preferences.md.
~/dia-log/
├── topics/
│ ├── index.md
│ └── {topic-name}.md
├── summaries/
├── add_entry.sh
├── template.md
└── preferences.md
See INSTALL.md for the NemoClaw bridge setup (shared access between
Claude Code on Windows and OpenClaw in Docker).
This skill is in active use. The OpenClaw edition is being tested concurrently with the Claude Code edition against a live shared directory. Feedback from both systems is incorporated before each release.
Contributions welcome. Issues and pull requests at https://github.com/your-org/dia-log