gitwtfhub

wtf is readme-check?

wasserpuncher/readme-check — explained in plain English

Analysis updated 2026-05-18

1PythonAudience · developerComplexity · 2/5Setup · easy

TL;DR

A tool that runs the example commands shown in your README and fails your build if the real output no longer matches what you promised.

Mindmap

mindmap
  root((readme-check))
    What it does
      Runs README console blocks
      Compares promised vs real output
      Flags broken claims
    Tech stack
      Python
      CI pipelines
    Use cases
      Keep README numbers accurate
      Catch documentation drift
      Audit example commands
    Audience
      Open source maintainers
      Developers
      Documentation writers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Run in CI to catch README claims that no longer match your code's real output.

REASON 2

Automatically update stale numbers in a README with the --update flag.

REASON 3

Mark timing benchmarks with a tilde so natural machine variance is not flagged as broken.

REASON 4

Verify numeric claims written in plain sentences, not just in code blocks.

What's in the stack?

Python

How it stacks up

wasserpuncher/readme-check0xustaz/streamgatea-bissell/unleash-lite
Stars111
LanguagePythonPythonPython
Setup difficultyeasyhardhard
Complexity2/54/54/5
Audiencedeveloperdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 30min

Requires Python and a README with fenced console blocks to check against real command output.

No license information is stated in the text provided.

Wtf does this do

readme-check is a Python tool that checks whether the console output shown in a README actually matches what the code produces today. The author's motivation came from personally auditing eight of their own repositories by hand and finding that six had a wrong number somewhere, with four of those wrong from the moment they were written. The tool scans a README for fenced console blocks, the kind that show a command and its printed output, actually runs those commands, and confirms that every line the README promised still appears in the real output, in the same order. Extra output beyond what was shown is fine, since a README is allowed to abbreviate, but a promised line that goes missing is flagged as broken. It handles a few special cases sensibly. A number written with a tilde, like about 19 milliseconds, is treated as an approximate claim that tolerates some variation between runs, rather than an exact one. A line of three dots skips output that is genuinely unpredictable, such as a timestamp or random address. Blocks that need special setup, like root access or a network connection, can be marked to be skipped entirely with a comment. The tool can even check numbers written in ordinary prose sentences, not just in code blocks, by pointing at a hidden comment that names the command which measures that number. When a number in the README goes stale, an update flag will rerun the checks and rewrite only the specific digits that changed, leaving timing figures, tilde estimates, and skipped blocks untouched, since rewriting those would just introduce a different kind of inaccuracy. The project is intended to run as part of continuous integration, checking a project's own README on every change so documentation claims are tested the same way code is.

Yoink these prompts

Prompt 1
Show me how to add readme-check to my GitHub Actions CI pipeline.
Prompt 2
Explain how to mark a console block in my README that should be skipped by readme-check.
Prompt 3
Help me write a tilde-based timing claim in my README that readme-check will accept as approximate.
Prompt 4
How do I check a number written in prose, not a code block, using readme-check's comment syntax?

Frequently asked questions

wtf is readme-check?

A tool that runs the example commands shown in your README and fails your build if the real output no longer matches what you promised.

What language is readme-check written in?

Mainly Python. The stack also includes Python.

What license does readme-check use?

No license information is stated in the text provided.

How hard is readme-check to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is readme-check for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.