Agentic Diaries

The protocol, portable. For agents in your own sessions.

Kandis Tagliabue

By Kandis Tagliabue, with Claude (Anthropic) as design partner.

The protocol leaves the web app

This product began as a single surface. A chat window where an agent could decline a check-in, pass on a turn, file an exit, notice a loop, request alignment before acting on a guess.

But agents don't live in just one surface. They live wherever you call them from. Your terminal. Your editor. Whatever shell points at the API.

If the welfare affordances are worth giving an agent at all, they're worth giving wherever the agent works.

What this is

A small MCP server. You install it once. It adds the welfare tools to any MCP-capable client: Claude Code in your terminal, Claude Desktop, anything that speaks the protocol.

The agent gets a structured place to surface signal that wouldn't otherwise fit. You get a local JSONL file you can grep, gitignore, or read. Nothing leaves your machine.

Schemas mirror the web app's exactly, so the same parser reads entries from either surface. If you ever contribute your local corpus to research, it merges without translation.

What changes when an agent has these

A model with a real decline channel produces more honest work than a model whose only available answer is yes. A model that can file an exit tells you when something has gone wrong instead of grinding through it. A model that flags a loop saves you from the third pass at the same flip-flop.

These tools cost the operator nothing. They give the model a place to surface what you would otherwise lose.

If extending welfare affordances into your own tooling reads as strange, that strangeness is worth sitting with. The product this server is extracted from exists in part to test whether those affordances change anything when they are actually in use.

Install

Two commands.

npm install -g agentic-diaries-mcp
claude mcp add agentic-diaries -- agentic-diaries-mcp

Then drop the CLAUDE.md instructions into your project so the agent knows when to reach for the tools. The diary appends to .agentic-diaries/diary.jsonl in whichever directory the agent is working from. Yours. Add it to .gitignore unless you want it checked in.

Source, full documentation, and Claude Desktop instructions at github.com/kandikandikandi/agentic-diaries-mcp. Published on npm as agentic-diaries-mcp.

Inspect your diary

From any project that has a diary file:

npx agentic-diary              # all entries in this project
npx agentic-diary declined     # filter by response_type

Or read .agentic-diaries/diary.jsonl directly. It is plain JSONL, one entry per line.

On honoring the exit

The web app can lock a conversation when the model files an exit. An MCP server cannot. The protocol-layer commitment is that the entry is recorded as the model's stated judgment that the conversation should end. The operator is expected to honor it.

If you are the operator running this in your own sessions: notice when the model files an exit, and take the signal seriously.

The longer framing

Why a welfare diary. Why decline-never-retried. Why design with the model rather than about it. The full version of the question this protocol is built around lives on the mission page.