daily-dose
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@daily-doseadd a todo to follow up on the client meeting"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🗞 Daily Dose of Claude Code
A local newspaper-style memory system for everything you do with Claude Code. Nothing leaves your machine.
Persistent SQLite database of every Claude Code session, prompt, tool call, and file edit — across every repo
Newspaper UI at
http://localhost:3000with light/dark warm theme, date navigation, timeline, TODO desk, stats, and searchFirst-class TODOs, editable in the UI and manipulable by Claude via a local MCP server
Global Claude Code hooks (SessionStart, UserPromptSubmit, PostToolUse, Stop, PreCompact, SessionEnd), additively merged into your existing
~/.claude/settings.json(never overwritten, always backed up)Redaction of common secret formats before any write
No cloud, no API keys, no external LLM calls
Installation
Requirements: git, node ≥ 18 (which bundles npm), and Claude Code. Docker is not required — it's only an optional way to run the UI in a container instead of via npm run dev.
Option 1 — One-line installer (recommended)
curl -fsSL https://raw.githubusercontent.com/iamdevnitesh/daily-dose-of-claude-code/main/install.sh | bashOr, if you've already cloned this repo:
./install.shIt clones to ~/daily-dose-of-claude-code, installs deps, builds the hooks/MCP,
merges into ~/.claude/settings.json (backing up first), adds a small managed
section to ~/.claude/CLAUDE.md, and runs the doctor.
About Docker: it's optional. If you're on macOS and Docker isn't installed,
the installer asks whether to install Docker Desktop via Homebrew (brew install --cask docker-desktop). Skip it with --no-docker, auto-accept with --yes:
# Skip the Docker question entirely
curl -fsSL https://raw.githubusercontent.com/iamdevnitesh/daily-dose-of-claude-code/main/install.sh | bash -s -- --no-docker
# Or auto-install Docker Desktop when missing (macOS + Homebrew only)
curl -fsSL https://raw.githubusercontent.com/iamdevnitesh/daily-dose-of-claude-code/main/install.sh | bash -s -- --yesIf Homebrew isn't installed, the installer tells you how to get it and moves on — Daily Dose still installs fine.
Option 2 — npm
Once published, anyone can install globally:
npm install -g daily-dose-of-claude-code
daily-dose install
daily-dose dev # UI on http://localhost:3000Or run without installing:
npx daily-dose-of-claude-code installOption 3 — Docker Compose (UI only)
The hooks and MCP server must run on the host — Claude Code spawns them as subprocesses and can't reach into a container. Docker is useful for the newspaper UI only, which reads/writes the shared SQLite database via a volume mount.
# 1. Install hooks + MCP on the host first (any of the options above)
npx daily-dose-of-claude-code install
# 2. Run the UI in Docker
docker compose up -d
# → http://localhost:3000The compose file mounts ~/.daily-dose-claude (or $DAILY_DOSE_HOME) into the
container at /data, so the UI shares the exact same database the host-side
hooks and MCP server are writing to. Kill the container any time — capture keeps
running because it lives on the host.
Option 4 — Manual (developer / hackable)
git clone <repo> && cd daily-dose-of-claude-code
npm install
npm run build:node # compile hooks + MCP
npm run install:daily-dose # merge into ~/.claude/settings.json (backup first)
npm run doctor
npm run dev # http://localhost:3000Related MCP server: Longhand
The daily-dose CLI
Once installed globally (or via npx), the daily-dose command dispatches to
everything:
Command | What it does |
| Merge hooks + MCP into |
| Remove hooks/MCP; keep data unless |
| Verify everything is wired up |
| Start the newspaper UI in dev mode |
| Start the UI in production mode |
| Compile hooks/MCP + build the Next.js UI |
| Add demo activity for today |
| Empty the DB (backup first; schema preserved) |
| Snapshot the DB into |
| Print schema state |
Where things live
Path | Purpose |
| SQLite database (WAL, FTS5) |
| JSON-line hook log |
| Capture toggles + theme |
| Timestamped DB backups |
| Hooks + MCP registration (backed up before every write) |
| Contains a small |
Architecture
Claude Code
│
├─ Hooks (host-side Node): SessionStart, UserPromptSubmit,
│ PostToolUse, Stop, PreCompact, SessionEnd
│ → write to SQLite
│
└─ MCP server (host-side stdio, daily-dose)
→ same SQLite DB
Next.js UI (host or Docker, localhost:3000)
→ same SQLite DBThe UI does not need to be running for activity capture — hooks talk
directly to SQLite. You can kill Docker, kill next dev, uninstall the UI —
Claude activity will keep landing in your local database.
MCP tools
daily_dose_add_tododaily_dose_list_todosdaily_dose_update_tododaily_dose_complete_todo(acceptstitle_queryorid)daily_dose_delete_tododaily_dose_search_memory(FTS5 over activities + TODOs)daily_dose_get_daydaily_dose_get_recent_activitydaily_dose_remember
Testing
npm testTests run against a temporary DAILY_DOSE_HOME — your real database and Claude
configuration are never touched.
Notes and non-goals
No external AI calls — titles/summaries are deterministic
Full tool outputs (like giant
Readpayloads) are never persisted; only concise metadataRedaction runs on all writes; still, don't intentionally paste secrets
Hooks are fail-open — Daily Dose failures never block Claude Code
Docker is UI-only by design; hooks must live on host for Claude Code to spawn them
This server cannot be deployed
Maintenance
Related MCP Connectors
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides comprehensive session management for Claude Code with automatic initialization/cleanup, quality checkpoints, and local conversation memory with semantic search for capturing learnings across coding sessions.6336 PyPI2BSD 3-Clause
- AlicenseAqualityAmaintenancePersistent local memory for Claude Code that indexes every session's JSONL file verbatim into SQLite + ChromaDB. Exposes 17 MCP tools for semantic recall, deterministic file replay, and fuzzy "do you remember when..." queries across your entire session history — no API calls, nothing leaves the machine.17234 PyPI14MIT
- AlicenseAqualityDmaintenanceGives Claude Code, Claude Desktop, Cursor, VS Code Copilot, and other MCP-compatible tools persistent memory.1844 npm1MIT
- FlicenseNot gradedqualityDmaintenanceProvides persistent semantic memory for Claude Code via local embeddings and six MCP tools, enabling context storage and retrieval across sessions without cloud dependencies.-