Dev tools

Simon Willison releases commit-rewriter, a local web app to clean up coding agent commit messages before public release

September 13, 2026 at 6:20 PM PT

Screenshot of the commit-rewriter web interface, showing a sidebar of recent commits and a main panel with an editable text area for each commit message and a diff toggle

Image: Simon Willison

Why it mattersTeams that let coding agents write commits still want a clean public history when a private repository ships, and this gives them a single-step way to rewrite the record before pushing without hand-rolling a filter-branch script.

Simon Willison released commit-rewriter 0.1 on 14 September, a local web application that lets a developer batch-edit the commit messages in a Git repository before pushing them anywhere public. The release is signed and available from PyPI under Apache 2.0. Willison wrote it while preparing the Datasette security releases, whose private commit history he described as "full of coding agent cruft and references to issue IDs from our private repository, so they weren't fit for publication".

The problem it names

The workflow it addresses will be familiar to anyone shipping code out of a private repository where an agent wrote the commits. A coding agent produces a commit for every step of a task, and the resulting messages carry template phrasing, references to internal tracker IDs, and boilerplate that only makes sense in the private context. When the change lands in a public release, that history is either published as is, cleaned by hand, or replaced with a squash. Willison's own case was the Datasette security releases, where the commit history is read by downstream maintainers and needed to be legible without leaking the private issue tracker.

commit-rewriter turns that clean-up into a single step. It runs against a local repository and opens a web UI on the developer's own machine at a loopback address, with a sidebar of recent commits and a text area for editing each message. A search box filters by message, author, or hash, and an "edited only" checkbox narrows the view to pending drafts. A View full formatted diff toggle sits on every commit so the editor can see what the change actually did before rewriting the description.

What happens on submit

When the developer clicks Rewrite commit messages, the tool first creates a timestamped branch pointing at the current state of the repository, then rewrites every commit from the earliest edited message through the tip. The backup branch is what makes the operation reversible: if the rewrite is wrong, the developer resets the working branch back to that timestamped ref and starts over. Willison describes this as the mechanism "to allow you to revert if you need to".

The scope of the rewrite is deliberately narrow. It edits messages, not diffs, so nothing about the code content changes. It works on the local repository only, so nothing reaches a remote until the developer pushes. And it defaults to a loopback address, so the web UI is not exposed on the network.

Where it fits

For a team using Claude Code, Codex, or another coding agent that commits after each edit, this sits between "the agent produced 40 commits that pass tests" and "we are ready to publish this history to a public repository or a customer release". The alternatives are interactive rebase, which is slow across a batch that size, and squashing everything into one commit, which throws away the step-by-step record a future reader might want.

At 0.1 this is one developer's tool with 1 star and 18 commits, so nobody should treat it as tested at scale. Willison has a track record of small utilities that stay small and get used: the same author ships shot-scraper, llm, and Datasette itself.

Source

Primary source: commit-rewriter 0.1 release on GitHub. Willison's own post: commit-rewriter 0.1 on simonwillison.net. Repository: simonw/commit-rewriter.

Source: Simon Willison

This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.

More from AI News

Graphify C# gives coding agents compiler-accurate Find Usages for C# projects

Graphify C# is a new MIT-licensed Roslyn indexer that emits a queryable JSON graph of every declaration and reference in a C# solution, so a coding agent can look up the exact overload a caller is bound to instead of guessing from a text match.

Source: Hacker NewsDev tools

Agent-memory hits 52.9% on LongMemEval-S, 17 points ahead of MemCore, with Claude Code and Codex sharing one store

Agent-memory is an open source long-term memory runtime whose store is plain Markdown, whose index is a rebuildable SQLite cache, and whose paired benchmark on LongMemEval-S puts it at 52.9% against MemCore's 35.8%.

Source: GitHubDev tools

A harness plugin measures the tool-call tax and puts one file read at 4.44 ms

ToolRush publishes before-and-after latency for four tool-call paths in the Hermes Agent harness, putting a native file read at 4.44 ms against 255.23 ms on the stock shell path.

Source: GitHubDev tools