Claude codes.
DevLog remembers.

Every Claude Code session ends and takes its memory with it. DevLog turns your work into a living history: every feature built, every task opened, every vulnerability closed — on a local dashboard, without you writing a single line of it yourself.

Claude Code — end of response
… Finished building the login screen and wiring it to the API. -(built) login screen with field validation -(todo) add a "forgot password" flow -(bug fix) #12
Three lines at the end of a response — DevLog captures them silently and your dashboard updates live
The problem

Anyone who works with Claude daily knows it

🌫️

"What did I do last week?"

The session ends and the context evaporates with it. You open the project days later and neither you nor Claude remembers where you stopped.

📝

Tasks live in the chat — and die with it

"We'll get back to it later" gets said in one session and forgotten in the next. Nothing holds anyone accountable.

🚢

A release ships with open work behind it

A discovered bug left unfixed, a plan step never finished — and the release went out because nothing stood in its way.

How it works

Three steps — all of them automatic

No commands to memorize, no files to write, nothing added to your repo. You work with Claude exactly as you always do.

Claude ends its response with short tags

The protocol reaches Claude automatically at the start of every session, so it closes its work with lines like -(built), -(todo) and -(bug fix) #7.

The hook captures them silently

At the end of every response, DevLog reads the tags and posts them to the local server. Zero noise in your conversation context, zero files in your repo.

The dashboard updates live

Open 127.0.0.1:7777 and watch all your projects: activity, plans, releases, vulnerabilities — moving in real time over WebSocket.

The real difference

Not a logger that writes and stays quiet — an accountability system that refuses

Ordinary trackers record and watch. DevLog enforces discipline on Claude itself — and that's what you won't find anywhere else.

Closure Discipline
Claude: -(built) login system ✓

✗ this work matches open item #14
✗ response rejected — close it with -(done) #14
Release Guard
$ gh release create v2.0.0

✗ command intercepted before execution:
open bug #9 + two unfinished plan steps
✓ close the items first — or bypass deliberately, yourself
Install Gate
$ bun add zod

✗ intercepted — blind install, no pinned version
advisor: zod@3.23.8 — newest mature stable, OSV-clean
✓ re-run with the pinned version and it passes

Claude finished work that matches an open task and didn't close it? The response is rejected until it does. Someone tries to ship a release with items still open? The command is intercepted before it runs. Claude tries to install a dependency blind? The command is blocked with the safe version to pin — the newest stable at least 7 days old and clean in OSV. Nothing slips through — not because someone was paying attention, but because the system doesn't allow it.

Features

Everything you need — in one process on your machine

A live dashboard for all your projects

Every project Claude touches appears automatically: what was built, opened, closed — updating in real time, no refresh.

Trackable plans driven from chat

Plans with phases and checkboxes that persist across sessions: Claude says "step done" and the ☑ flips on your dashboard.

Real vulnerability scanning (CVE)

Built-in scanning against the OSV.dev database — no API key, no external service — including transitive dependencies.

Outdated-dependency checks across 5 registries

npm, crates.io, PyPI, Go and Packagist — compares your versions against the latest official release and flags anything newer than 7 days.

Release reports that write themselves

On every release: a report grouping what was built, fixed and security-closed — the version field in your project manifest bumps automatically, and a release that went out wrong can be rolled back.

Session memory for Claude itself

Each session starts with a compact injected context: what was done before and what's still open — so Claude never reinvents what it built yesterday.

File-change tracking with diffs

Every edit Claude makes is recorded with its full diff — per file, per session, reviewable from the dashboard.

Ready-made documents from chat

Reports, analyses and plans written as Markdown and served as styled HTML — without Claude hand-writing a web page.

Client-language feature inventory — and a shareable report

Every user-visible capability is recorded as one plain-language line, and a polished client report is generated from the inventory whenever you need it.

Recall from the log instead of rediscovering

Claude asks "have we solved this before?" and gets stored decisions and fixes back in the same turn — and a new bug resembling a closed one automatically surfaces its old fix.

Retrospectives and deep studies

"What keeps breaking?" — a retrospective of every bug and vulnerability ever, with ages and files, plus a full-history study saved as a document that measures progress since the last one.

A standards library that grows with you

Rules captured from your corrections and pulled on demand by language or app type — so Claude never repeats the same mistake in another project.

Privacy

Not an added feature — it's the design itself

100% local

All your data stays on your machine. The server listens on 127.0.0.1 only — nothing leaves for the internet.

Zero runtime dependencies

Bun and Node built-ins only. No supply chain to worry about, no unknown package to audit.

No telemetry, no accounts

No sign-up, no tracking, no cloud. The only external calls: asking the official registries about vulnerabilities — if you want to.

Production-grade security

Built-in defenses against DNS rebinding, XSS and path traversal — covered by 1,300+ automated tests.

Install

Two commands inside Claude Code — and you're done

/plugin marketplace add fmaaakcode/devlog
/plugin install devlog

That's everything: the hooks, the protocol and the server all ship inside the plugin, and the server starts on its own with your first session. Open http://127.0.0.1:7777 and watch your dashboard. The only requirement: Bun on your machine.

FAQ

Before you ask

Does it add files to my repos or pollute them?

No. Tags are captured straight from Claude's responses, and all data is stored in DevLog's own directory outside your projects. Your repo stays untouched.

Does it eat Claude's context or slow it down?

The session-start injection is compact and conditional (it only appears when needed), and tag capture adds a fraction of a second at the end of a response — a small price for real enforcement.

Does it need an internet connection?

No, except in one case: the security-scan button queries the OSV.dev database and the official registries for vulnerabilities and versions. Everything else works offline.

What if I need an emergency release while items are still open?

The release guard can be bypassed consciously with an environment variable (DEVLOG_RELEASE_GUARD=0) — the decision stays yours, but nothing ever slips through by accident.