dding-marketplace
Claude Code plugin marketplace by CDDing.
Installation
/plugin marketplace add CDDing/dding-marketplace
Plugins
Automatically log your Claude Code prompts and responses, then generate daily summaries organized by workspace.
Every prompt you submit is silently recorded in the background. When the date changes, the accumulated log is either summarized locally using the Claude CLI or forwarded to your own server — your choice.
Quick Start
/plugin install daily-log@dding-marketplace
/daily-log setup
Features
- Two modes: Local (summarize on your machine via Claude CLI) or Server (POST raw logs to your backend)
- Automatic daily summarization: triggered on the first prompt after midnight
- Workspace-aware: logs are split by working directory so each project gets its own section
- Failed send retry queue: server-mode failures are saved locally and can be retried
- Configurable: summary path, Claude model, post-summary behavior (archive or delete), custom HTTP headers
Commands
| Command | Description |
|---|
/daily-log setup | Initial configuration wizard |
/daily-log status | Show current mode, pending count, queue status |
/daily-log show | View pending prompts |
/daily-log summarize | Manually trigger summarization (local mode) |
/daily-log resend | Retry failed sends (server mode) |
Setup Guide
Run /daily-log setup and follow the prompts. The wizard will ask a few questions and write ~/.claude/daily-log/config.json.
Local Mode — Summaries are generated on your machine using the claude CLI. No outbound requests.
| Option | What it does | Default |
|---|
summary_path | Directory where summary markdown files are saved | ~/.claude/daily-log/summaries |
after_summary | What happens to raw logs after summarization: archive or delete | archive |
model | Claude model used for summarization (e.g. haiku, sonnet) | haiku |
Server Mode — Raw logs are POSTed to your server. Summarization logic lives entirely on your side.
| Option | What it does |
|---|
server_url | Full URL to POST logs to (e.g. https://my-server.com/api/daily-log) |
server_headers | Key-value pairs sent as HTTP headers on every request (e.g. Authorization: Bearer <token>) |
How It Works
Recording — Two hooks run automatically with every Claude Code interaction:
UserPromptSubmit: records your prompt text, timestamp, working directory, and session ID
Stop: records the first 200 characters of Claude's response
Both write to ~/.claude/daily-log/prompts.jsonl using a file-lock to prevent race conditions from concurrent sessions.
Summarization trigger — On every prompt submission, the plugin compares today's date to the last recorded date in last_date. If the date has changed, it processes the accumulated log.
Local mode processing:
- The log is split by
cwd (working directory basename)
- For each workspace, a raw text log is built with timestamps
claude -p is called with a summarization prompt, producing a markdown section
- Sections are concatenated and saved as
YYYY/MM/DD.md under summary_path
- The raw
.jsonl is archived or deleted depending on after_summary
Server mode processing:
- The log file is atomically renamed to prevent new entries from being lost
- Entries are batched (up to 500 per request) and POSTed as JSON
- If any batch fails (non-200 response), the entire file is moved to
queue/ with a timestamp filename
- Use
/daily-log resend to retry queued files
Summary Example
# 2026-03-31 Daily Log
### my-project — 09:15~17:42
**Feature implementation** — added authentication middleware and updated route handlers.
<details><summary>Timeline</summary>
`09:15` how do I add JWT middleware to Express?
-> response: Here's how to add JWT middleware...
`10:30` refactor the token validation logic
</details>
Configuration Reference
Local mode (~/.claude/daily-log/config.json):
{
"mode": "local",
"summary_path": "~/.claude/daily-log/summaries",
"after_summary": "archive",
"model": "haiku"
}
| Field | Type | Description |
|---|
mode | string | Must be "local" |
summary_path | string | Path for summary files. Supports ~. Defaults to ~/.claude/daily-log/summaries if omitted |
after_summary | string | "archive" or "delete". What to do with raw logs after summarization |
model | string | Claude model name for summarization. Any model accepted by the claude CLI |
Server mode (~/.claude/daily-log/config.json):