██████╗ ██╗███████╗███████╗██╗ ██╗███████╗███████╗██████╗
██╔══██╗██║██╔════╝██╔════╝██║ ██║██╔════╝██╔════╝██╔══██╗
██║ ██║██║█████╗ █████╗ ██║ ██║███████╗█████╗ ██████╔╝
██║ ██║██║██╔══╝ ██╔══╝ ██║ ██║╚════██║██╔══╝ ██╔══██╗
██████╔╝██║██║ ██║ ╚██████╔╝███████║███████╗██║ ██║
╚═════╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝
CriticMarkup viewer for the terminal.
pip install diffuser-cliOr with uv:
uv tool install diffuser-cliGiven a markdown file with CriticMarkup annotations:
The system processed the data and {~~returned results to~>delivered results
back to~~} the user.Render it in the terminal with color-coded annotations:
diffuser view my-document.mdWriting blog posts in markdown is straightforward until you start editing. You change a sentence, rewrite a paragraph, cut a section. The next morning, you're not sure what you changed or why. Git solves this for code, but version control for prose is a different problem. You don't want branches and merge conflicts for a blog post. You want to see what changed, right there in the text.
Fletcher Penney saw this clearly. Penney is the creator of
MultiMarkdown. He has spent
years building tools for writers who think in plain text. Together with Gabe
Weatherhead, he created CriticMarkup: five
simple inline annotations that track changes without leaving the document.
{++add this++}, {--remove this--}, {~~old~>new~~}. No external
tooling. No version control. Just the text.
The idea was brilliant. I just needed it in the terminal. That's diffuser.
If you want to use an agent to help you with writing, there's a skill to guide it on how to use CriticMarkup when suggesting changes:
npx skills add shakedlokits/diffusergit clone https://github.com/shakedlokits/diffuser.git
cd diffuser
uv syncuv run diffuser view my-document.mduv run pytestgit tag v0.1.0
git push origin v0.1.0CriticMarkup was created by Fletcher Penney and Gabe Weatherhead. Full specification at criticmarkup.com.