Skip to content

shakedlokits/diffuser

Repository files navigation

██████╗ ██╗███████╗███████╗██╗   ██╗███████╗███████╗██████╗ 
██╔══██╗██║██╔════╝██╔════╝██║   ██║██╔════╝██╔════╝██╔══██╗
██║  ██║██║█████╗  █████╗  ██║   ██║███████╗█████╗  ██████╔╝
██║  ██║██║██╔══╝  ██╔══╝  ██║   ██║╚════██║██╔══╝  ██╔══██╗
██████╔╝██║██║     ██║     ╚██████╔╝███████║███████╗██║  ██║
╚═════╝ ╚═╝╚═╝     ╚═╝      ╚═════╝ ╚══════╝╚══════╝╚═╝  ╚═╝ 

CriticMarkup viewer for the terminal.

Getting Started

Installation

pip install diffuser-cli

Or with uv:

uv tool install diffuser-cli

Quick Example

Given 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.md

Background & Rationale

Writing 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.

Agent Skill

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/diffuser

Development

Setup

git clone https://github.com/shakedlokits/diffuser.git
cd diffuser
uv sync

Running

uv run diffuser view my-document.md

Running Tests

uv run pytest

Releasing

git tag v0.1.0
git push origin v0.1.0

Credits

CriticMarkup was created by Fletcher Penney and Gabe Weatherhead. Full specification at criticmarkup.com.