Edition No. 37 · 1 Oct 2026

Twelve repositories for drawing it, building it and giving people somewhere to ask about it

A paid diagram layout engine was made free three weeks ago, and its own repository still asks for a licence key.

By Genn·12 repositories·16 min read

Twelve open-source repositories, opened and checked this morning. No theme. The areas change every day on purpose, so tomorrow's edition should not be guessable from today's.

We aim for twelve every day. Some candidates fall out while we check them — those are listed at the end, with the reason.

Three things worth knowing, separate from the recommendations

- A paid component can quietly become a free one, and the page selling it is the last to find out. D2's release notes of 7 September 2026 say that TALA — the layout engine Terrastruct wrote and licensed — "is now open source and bundled with D2" and that "No separate plugin installation or license key is required." TALA's own repository, read this morning, still says "TALA is closed-source" and still describes needing an API token from a Terrastruct account to avoid a watermark. The release notes are the newer document, and the install of D2 bundles three layout engines. Anyone who checked TALA's page and walked away would have the wrong answer. - The page this report trusts for release dates can serve something that is not a release. Since September this report has read /releases/latest rather than the releases list, because the list page has repeatedly been months stale. On Discourse that page returns _gh-attach-assets, a pre-release the project describes as storage for issue attachments. The lesson is narrow and worth writing down: a latest-release page answers with whatever is tagged latest, which is not always a version. When it comes back looking like machinery rather than software, read the project's own version file instead. - Three renames in one morning, and all three were found for free. terrastruct/d2 is now d2lang/d2, maputnik/editor is now maplibre/maputnik, and encode/starlette is now Kludex/starlette. None was announced anywhere this report could see. All three were found because the public mirror used for star counts and code dates returns the repository's canonical name in its answer, so a redirect shows up as a different name coming back than the one that was asked for. That costs nothing and catches the thing that otherwise splits one project into two rows in an archive.

If you only do three things

  1. ducaale/xh (#6) — two minutes, one command, nothing to configure. It sends web requests from a terminal in short, readable commands. Edition 36 reported that HTTPie, the best-known tool for this job, has taken no new code since December 2024. This is the living one.
  2. tbillington/kondo (#9) — ten minutes, and it shows you the list before it deletes anything. It finds the build and dependency folders that old projects leave behind and tells you how many gigabytes they are holding.
  3. johnkerl/miller (#7) — twenty minutes, on files that already exist. One small program that filters, sorts, joins and reshapes CSV and JSON files, with no runtime to install.

No theme, on purpose. Twelve repositories across nine of the sixteen areas, three hidden gems, no repeats. Six new to the ledger, six promoted from the queued backlog. All three areas that neither Edition 35 nor Edition 36 touched are covered.

Twelve repositories, checked and reviewed. Every version verified against the GitHub API and dated.

25,600 stars · MPL-2.0 · v0.9.0 (2026-09-07) · Track this in Scout · Share this tool

A short text file becomes a finished diagram, so a picture can be kept beside the code and reviewed like code.

▶Repo detailsthe review · specs · pros & cons · install

What it is

D2 is a small language for describing diagrams, plus a program that reads that language and writes out the picture. It was written by a company called Terrastruct and it is now installed as a single downloaded file.

What it is good for. Anyone who has to keep a diagram up to date. A drawing made by hand in a graphical editor goes stale the moment the thing it describes changes, and nobody can tell from looking at it what was altered. A diagram written as text sits in the same place as the code, and a change to it shows up as a few changed lines that a person can read. It suits architecture pictures, sequence pictures and anything with more than about five boxes.

Stars25,600
LicenceMPL-2.0
Latestv0.9.0 (2026-09-07)
Good
  • The news of the day. Release v0.9.0, dated 7 September 2026, says in its own words: "TALA is now open source and bundled with D2, including the JavaScript/WASM package" and "No separate plugin installation or license key is required." TALA is the layout engine Terrastruct wrote itself, and until then it needed a token from a paid account. Its own repository at terrastruct/TALA (292 stars) still says the opposite — "TALA is closed-source" — and still describes needing an API token to leave evaluation mode, or diagrams come out with a watermark across them. The release notes are five weeks newer than that page.
  • Three layout engines are now included and you pick one with a flag: --layout=dagre, --layout=elk or --layout=tala. The same drawing can be re-arranged three different ways without changing a line of your text.
  • The same release reports that drawing is about ten times faster across its own test set, that real diagrams compile about three times faster at the middle of the range, and that the output files are about 24% smaller. Export to PNG, GIF, PDF and PowerPoint is built in.
Watch for
  • 476 open issues against 54 open pull requests. That is a large waiting list for a project of this size, and it is worth knowing before you build a workflow on it.
  • The licence file is at /blob/master/LICENSE.txt. The ordinary LICENSE, LICENSE.md and COPYING paths all return a 404 error, so automatic licence checkers find nothing. The file itself is the Mozilla Public License 2.0 (a licence that lets you use and sell the software freely, but asks you to publish your changes to D2's own files), with the line "Copyright 2022 Terrastruct Inc." sitting above the licence header. The body is unmodified.
  • The documented install pipes a script from the internet straight into a shell, which runs whatever that script contains. The project's own README says "We recommend using your OS's package manager directly instead for improved security", and that advice is worth taking.
Similar repositories
  • mermaid-js/mermaid

    Also turns text into diagrams and is far more widely supported, because GitHub, GitLab and most note apps render it without any install, but its layout is less able to untangle a dense architecture picture.

    Track this in Scout
  • plantuml/plantuml

    The oldest text-to-diagram tool of the three, covering more diagram types than either, but it needs Java installed and its output looks noticeably more dated.

    Track this in Scout
  • jgraph/drawio

    The editor behind diagrams.net, and the opposite approach: you drag shapes with a mouse, which is quicker for one picture and much worse for keeping fifty of them current.

    Track this in Scout
Install
# the install script the README leads with
curl -fsSL https://d2lang.com/install.sh | sh -s --
# or, if Go is already on the machine
go install github.com/d2lang/d2@latest
# then
d2 --layout=tala input.d2 out.svg
d2 layout                 # lists the three engines
Screenshots
d2lang/d2: GitHub preview cardd2lang/d2: Screenshot 1d2lang/d2: Screenshot 2
02

maplibre/maputnik

💎 hidden gem

2,605 stars · MIT · v3.1.0 (2026-07-06) · Track this in Scout · Share this tool

A visual editor for the design of a vector map, which otherwise means editing a long settings file by guesswork.

▶Repo detailsthe review · specs · pros & cons · install

What it is

Maputnik is an editor for the MapLibre Style Specification, the open format that says how a vector map should be drawn. It began as one person's project in 2015 and is now maintained by the MapLibre organisation.

What it is good for. Anyone putting a map on a page and finding the default look wrong. Changing a map's style by editing the settings file means guessing, saving, reloading and guessing again. Here you pick a layer, change a colour or a width, and the map in front of you changes. It is also the quickest way to understand how those style files are built, because you can watch the file change as you click.

Stars2,605
LicenceMIT
Latestv3.1.0 (2026-07-06)
Good
  • A rename, and the handover is written into the licence file. It was maputnik/editor and is now maplibre/maputnik. The MIT licence file at /blob/main/LICENSE carries two copyright lines — "Copyright (c) 2015 Lukas Martinelli" and "Copyright (c) 2024 MapLibre contributors" — which records the move from one author to a community organisation rather than leaving it to a blog post.
  • There is nothing to install if you do not want to. The project's own hosted editor runs at maplibre.org/maputnik and its README says plainly that everything stays in the browser's local storage, so no style of yours reaches a server.
  • Release v3.1.0 of 6 July 2026 added a control for the map projection — globe or flat — and a code editor for the whole style file beside the menus, so you can drop into the raw file when the menus run out.
Watch for
  • The release is nearly three months old and the release page itself says "185 commits to main since this release". The newest code landed on 18 August 2026. So the published version is well behind the project, and the hosted editor is ahead of the download.
  • It only edits the design. It does not make map data, host tiles or serve anything, so you still need a tile source from somewhere else before the editor is useful.
  • 84 open issues against 7 pull requests, for a project with 2,605 stars. This is a small volunteer effort inside a larger organisation, not a staffed product.
Similar repositories
Install
# nothing to install: open https://www.maplibre.org/maputnik/
# or run it locally in a container (a sealed box that holds the
# program and everything it needs, so it cannot disturb anything else)
docker run -it --rm -p 8888:8000 ghcr.io/maplibre/maputnik:main
# then open http://localhost:8888
# or from source, with Node.js at the current long-term-support version or newer
npm install
npm run start
Screenshots
maplibre/maputnik: GitHub preview card

19.2k stars · MIT · no tagged releases at all · Track this in Scout · Share this tool

The accessible, unstyled React primitives that shadcn/ui is built on — now maintained by WorkOS.

▶Repo detailsthe review · specs · pros & cons · install

What it is

Radix Primitives is a set of React components that handle keyboard behaviour, focus and screen-reader labelling, and deliberately ship with no visual design. It is the layer underneath a very large number of modern design systems.

What it is good for. Anyone building a web interface who would rather not write a dropdown menu from scratch. The hard parts of these components are not the look. They are what happens when somebody presses Escape, or tabs out of the menu, or arrives with a screen reader that needs to be told what the thing is. This does that work and leaves every visual decision alone, which is the opposite trade from a kit that comes with its own look.

Stars19.2k
LicenceMIT
Latestno tagged releases at allchecked 7 Sep 2026
Written inTypeScript
Good
  • The behaviour you cannot see is the product. Keyboard navigation, focus trapping and the labelling that assistive software reads are all handled, and that is the part most hand-written components get wrong.
  • It publishes no GitHub releases at all — the releases page says "There aren't any releases here". That is a determination and not a gap: versions ship on npm (the package registry for JavaScript) instead. There is now a single package, radix-ui at version 1.6.7, as well as the older one-package-per-component style, @radix-ui/react-dialog at 1.1.23. Both are MIT.
  • Because it has no appearance, it does not fight whatever styling you already use, and it is the base other projects build on rather than a competitor to them.
Watch for
  • Ownership has changed and the repository is the only place that says so. The project description reads "Maintained by @workos", and the README's licence line is "Licensed under the MIT License, Copyright © 2022-present WorkOS" — WorkOS being a company that sells authentication services. The licence is plain MIT with nothing added, so there is no catch in the terms, but the most widely used headless component library for React is now looked after by a commercial vendor and it is worth knowing which one.
  • 194 open issues against 138 open pull requests. The newest code landed on 8 August 2026, which is about eight weeks before this edition. The project's own records show activity today, but that is metadata rather than code, and it was not counted as one.
  • React only, and no appearance means you write all of the CSS. Starting from nothing is more work than it sounds, which is exactly why most people reach this library through something built on top of it instead.
Similar repositories
Install
# the single package
npm install radix-ui
# or one component at a time, the older style
npm install @radix-ui/react-dialog
Screenshots
radix-ui/primitives: GitHub preview cardradix-ui/primitives: Screenshot 1

8,400 stars · MIT · 2.24.0 on PyPI (2026-06-11), confirmed with the year from the PyPI RSS release feed · Track this in Scout · Share this tool

A Python web framework that makes the database, settings, dependency-injection and background-task decisions in the box instead of leaving them to you.

▶Repo detailsthe review · specs · pros & cons · install

What it is

Litestar is an ASGI framework — ASGI being the Python standard that lets a web server and an application talk to each other without blocking while they wait. It validates incoming and outgoing data, generates an OpenAPI description of itself, and ships with database integration, dependency injection and background tasks included rather than bolted on.

What it is good for. Anyone writing a Python service who has reached the point where the most popular option feels thin. The common complaint about FastAPI is not its design but that a real application needs ten decisions made outside it — database sessions, settings, authentication, background work. Litestar makes those decisions in the box and uses the same data-validation vocabulary, so the code looks familiar. It suits a medium-sized service built by one or two people who do not want to assemble the surrounding pieces themselves.

Stars8,400
LicenceMIT
Latest2.24.0 on PyPI (2026-06-11), confirmed with the year from the PyPI RSS release feed
Good
  • A plain MIT licence read from /blob/main/LICENSE, unmodified, with the copyright line "Copyright (c) 2021, 2022, 2023, 2024, 2025, 2026 Litestar Org." No carve-out, no paid tier in the repository, no company behind it selling a hosted version.
  • The batteries are genuinely included: database handling, settings, dependency injection, background tasks, websockets and a command-line helper are all part of the framework, which is the whole argument for choosing it.
  • Wide Python support. The package metadata accepts Python 3.8 through 3.14, which is unusually generous and means it will install on an old machine as well as a new one.
Watch for
  • No code date could be read for this project today. The public mirror this report normally uses returned HTTP 403 on three separate attempts, and GitHub's own data interface returned 403 as well. So currency rests on the release: version 2.24.0 was published on 11 June 2026, confirmed with the year from the Python package index's own release feed, which is three and a half months old and comfortably inside the eighteen-month line this report uses. It is explicitly not being called quiet or dead — the measurement failed, not the project. The release page adds "2 commits to v2 since this release".
  • 223 open issues against 109 open pull requests, and the project is run by volunteers. A framework is a long-term commitment and that ratio is the thing to weigh.
  • It is the second choice in a field with one very large first choice. That means fewer tutorials, fewer answers already written down, and fewer libraries that assume it. The code is similar enough to FastAPI's that the gap is bridgeable, but it is real.
Similar repositories
  • fastapi/fastapi

    The field's first choice and the direct comparison: the same validation style and automatic documentation, far more widely known, but it leaves the database, settings and background-work decisions to you.

    Track this in Scout
  • Kludex/starlette

    The small layer both of the above are built on, so choosing it means writing more yourself and carrying much less; renamed today from encode/starlette.

    Track this in Scout
  • Neoteroi/BlackSheep

    A third option with the same shape and a similar batteries-included view, smaller again and with a correspondingly smaller community.

    Track this in Scout
Install
python3 -m venv venv
source venv/bin/activate        # on Windows: venv\Scripts\activate
pip install 'litestar[standard]'   # 'standard' adds the uvicorn server and templating
litestar --help
Screenshots
litestar-org/litestar: GitHub preview cardlitestar-org/litestar: Screenshot 1litestar-org/litestar: Screenshot 2litestar-org/litestar: Screenshot 3litestar-org/litestar: Screenshot 4

31368 stars · AGPL-3.0 · v2.3.0 (2026-09-21), confirmed by pkg.go.dev/go.k6.io/k6/v2 · Track this in Scout · Share this tool

Generates web traffic from JavaScript test files kept beside the code, so a load test is repeatable rather than something somebody once did on a laptop.

▶Repo detailsthe review · specs · pros & cons · install

What it is

k6 is a load-testing program written in Go, with tests written as JavaScript files. It was made by a company called Load Impact, bought by Grafana Labs, and is now part of their open-source collection.

What it is good for. Anyone about to put something in front of more people than it has seen so far. The useful output is not one number but the shape of the failure: the point where response times stop being flat, which request is the slow one, and whether the thing falls over or merely slows down. It is also the way to find out whether a change made things worse, because the test is a file you can run again next month.

Stars31368
LicenceAGPL-3.0
Latestv2.3.0 (2026-09-21), confirmed by pkg.go.dev/go.k6.io/k6/v2
Good
  • Plain AGPL-3.0, read from /blob/master/LICENSE.md and unmodified, with no directory carved out. This was checked on purpose: Grafana sells a hosted load-testing service, and this archive has found seven projects whose licence file quietly differs from what the sidebar claims. This one does not. The AGPL does carry a real obligation — if you build a service on top of it and let other people use that service, you must publish your source — but that is the standard licence, not a custom one.
  • Tests are ordinary JavaScript files you keep beside the code, so a load test is reviewable and repeatable rather than a thing somebody did once on a laptop.
  • Release v2.3.0 of 21 September 2026 added a --scenario flag, so you can run one part of a large test without editing the file, and a --once flag for a single pass. The version was confirmed against Go's own package index, which dates it 21 September 2026 and reports the licence as AGPL-3.0.
Watch for
  • The project has moved to a version 2 line and the old address is now a dead end. Go's package index still lists go.k6.io/k6 at v1.8.1, dated 12 August 2026, and says of it that it is "not in the latest version of its module". Anything pinned to the v1 path will keep working and will stop receiving anything.
  • 671 open issues against 123 open pull requests, the largest issue count in this edition.
  • A load test is easy to run and easy to misread. Running it from one machine over the open internet measures your own connection as much as the service, and pointing it at anything with real customers on it is a way to cause the outage you were trying to prevent. The recorded code date from the public mirror, 2 September 2026, is also older than the 21 September release, so the mirror is behind again on this row.
Similar repositories
  • locustio/locust

    The same job with tests written in Python rather than JavaScript, and a live web page showing the run as it happens, but it needs more machines to generate the same load.

    Track this in Scout
  • gatling/gatling

    A long-established alternative with very detailed reports, aimed at larger teams, written for the Java world and heavier to set up.

    Track this in Scout
  • rakyll/hey

    One tiny downloaded file that hammers a single web address and prints the timings, which covers the simplest case in one command and nothing beyond it.

    Track this in Scout
Install
# Debian or Ubuntu
curl -fsSL https://dl.k6.io/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/k6-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list
sudo apt-get update
sudo apt-get install k6
# Fedora or CentOS
sudo dnf install https://dl.k6.io/rpm/repo.rpm
sudo dnf install k6
# macOS
brew install k6
# or in a container
docker pull grafana/k6
k6 run script.js
Screenshots
grafana/k6: GitHub preview card

8,100 stars · MIT · v0.26.2 (2026-07-26), confirmed by crates.io · Track this in Scout · Share this tool

Sends web requests from a terminal in short readable commands, and is the maintained way to keep the habit HTTPie invented.

▶Repo detailsthe review · specs · pros & cons · install

What it is

xh is a command-line program, written in Rust, that reimplements most of HTTPie's design with a focus on starting up and running faster. It is one downloaded file with nothing else required.

What it is good for. Anyone who checks a web interface by hand. The specific pain it removes is the shape of a curl command: to send a small piece of JSON you end up with nested quotes, a -H flag for the content type and no colour in the reply. Here the same request is a few words, the JSON is built from key=value pairs, and the answer comes back formatted. Edition 36 found that HTTPie, which invented this style, has taken no new code since 17 December 2024 — twenty-one months — and carries no notice saying so. That makes this the maintained way to keep the habit.

Stars8,100
LicenceMIT
Latestv0.26.2 (2026-07-26), confirmed by crates.io
Good
  • It is a deliberate drop-in. Rename the binary to http or https, or set the XH_HTTPIE_COMPAT_MODE variable, and it runs in HTTPie compatibility mode; the README says the only current difference is that --check-status is off by default. An xhs command is also installed, which defaults to HTTPS so you can leave the scheme off.
  • A plain MIT licence read from /blob/master/LICENSE, unmodified, "Copyright (c) 2021 Mohamed Daahir". Nothing to agree to and no paid version.
  • Small and current: 33 open issues against 4 pull requests, release v0.26.2 of 26 July 2026 — the yearless date on GitHub was confirmed against the Rust package index, which timestamps it 2026-07-26 — and the newest code landed on 23 August 2026.
Watch for
  • The README states it plainly: "Not all of HTTPie's features are implemented." If you rely on HTTPie plugins or on one of its less common flags, check before you switch.
  • The quickest documented install pipes a script from the internet into a shell. A package manager is the safer route and the project publishes packages for apt, pacman, dnf, Homebrew and others.
  • It sends requests and nothing more. It does not record a test, chain one request's answer into the next, or check a result — the three things that turn a manual poke into something a machine can repeat. Edition 36 covered Orange-OpenSource/hurl for exactly that gap.
Similar repositories
  • httpie/cli

    The project that invented this way of writing requests and still the better-known name, with more features and plugins, but its last code landed on 17 December 2024 and nothing on its page says so.

    Track this in Scout
  • rs/curlie

    Takes the other route to the same comfort: it is a thin front end over curl itself, so every curl feature is still there, but its own newest code is from 7 December 2025.

    Track this in Scout
  • Orange-OpenSource/hurl

    Edition 36 covered this: requests written in a plain text file with assertions, which is better for repeatable checks and worse for a quick look.

    Track this in Scout
Install
brew install xh                       # macOS or Linux with Homebrew
cargo install xh --locked             # if Rust is installed
# apt, dnf, pacman and Scoop packages also exist
xh httpbin.org/post name=ada role=engineer
xhs example.com/api/status            # xhs defaults to HTTPS
Screenshots
ducaale/xh: GitHub preview cardducaale/xh: Screenshot 1

10,000 stars · BSD-2-Clause (modified: an SPDX line added above and a contributor disclaimer added at the end) · v6.22.0 (2026-09-25), confirmed by pkg.go.dev · Track this in Scout · Share this tool

Does what awk, cut, sort and join do, but by column name instead of column position, on CSV, TSV, JSON and JSON Lines.

▶Repo detailsthe review · specs · pros & cons · install

What it is

Miller is a single program, called mlr, that does for data with named columns what the old Unix tools awk, cut, sort and join do for plain lines of text. It is written in Go and has no runtime dependencies at all.

What it is good for. Anyone with data in files rather than in a database. The problem it solves is that the classic Unix tools count columns by position, so adding a column at the front breaks every command you wrote. Miller works by column name, so mlr --icsv sort -f date keeps working when the file changes shape. It is the right tool for the step between "a file arrived" and "the data is clean enough to load", and for the thirty-second question that is not worth opening a notebook for.

Stars10,000
LicenceBSD-2-Clause (modified: an SPDX line added above and a contributor disclaimer added at the end)
Latestv6.22.0 (2026-09-25), confirmed by pkg.go.dev
Good
  • Column names instead of column numbers, which is the whole point and the thing that makes a saved command still work next month.
  • One downloaded file with, in the README's own words, "zero runtime dependencies", and packages for every common system. Nothing to install alongside it, no Python, no Java.
  • Current and tidy. Release v6.22.0 is dated 25 September 2026 — the yearless GitHub date was confirmed against Go's own package index — and the release page says "7 commits to main since this release". 61 open issues against 11 pull requests.
Watch for
  • The licence is BSD-2-Clause and it is not the bare template. Read from /blob/main/LICENSE.txt: an SPDX identifier line has been added above the text, and a disclaimer has been added at the end stating that the licence is granted by the individual contributor rather than by their employer. Neither addition takes anything away from you, but it is a modified file and this report says so rather than printing the sidebar word.
  • It is its own small language. The commands are short but they are not SQL and they are not a spreadsheet, so there is a day of looking things up before it feels quick.
  • It reads a file and writes a file. It does not draw anything, does not keep a history of what you ran, and does not help you share the result.
Similar repositories
  • dathere/qsv

    Edition 35 covered this: a much larger command set for CSV specifically, faster on the common jobs, but no JSON reshaping and no query language of its own.

    Track this in Scout
  • medialab/xan

    Edition 36 covered this: the same CSV work with a strong emphasis on exploring and drawing in the terminal, which Miller does not do at all, and a smaller command set.

    Track this in Scout
  • harelba/q

    Takes the other approach entirely and lets you write real SQL against a delimited file, which is easier if you already know SQL and slower on large files.

    Track this in Scout
Install
brew install miller            # macOS
sudo apt-get install miller    # Debian or Ubuntu
choco install miller           # Windows
# or, with Go installed
go install github.com/johnkerl/miller/v6/cmd/mlr@latest
mlr --icsv --opprint stats1 -a mean,max -f price -g category sales.csv
mlr --icsv --ojson head -n 3 sales.csv
Screenshots
johnkerl/miller: GitHub preview cardjohnkerl/miller: Screenshot 1johnkerl/miller: Screenshot 2johnkerl/miller: Screenshot 3johnkerl/miller: Screenshot 4

10,797 stars · AGPL-3.0 (plus a commercial licence sold separately by Artifex) · 1.28.2 (2026-08-06), confirmed by the PyPI RSS release feed · Track this in Scout · Share this tool

Reads, edits and renders PDFs from Python on the MuPDF engine, with text coordinates and page images that the permissive alternatives cannot produce.

▶Repo detailsthe review · specs · pros & cons · install

What it is

PyMuPDF is a Python library wrapping MuPDF, the PDF and document engine written by Artifex Software. The same company maintains both, which is why the two stay in step.

What it is good for. Anyone whose work starts with a pile of PDFs. It is the fastest of the common Python options by a wide margin, and almost the only one that will also render a page to an image, which is what you need before any optical character recognition or any model that reads pictures. It also reports the position of every piece of text, so you can tell a heading from a footnote, which is the step that makes an extracted document usable rather than a wall of words.

Stars10,797
LicenceAGPL-3.0 (plus a commercial licence sold separately by Artifex)
Latest1.28.2 (2026-08-06), confirmed by the PyPI RSS release feed
Good
  • Speed and range in one package: text extraction with coordinates, page rendering, drawing, redaction, form fields, splitting and merging, and more document formats than PDF alone.
  • Pre-built packages for Windows, Linux and macOS on both Intel and ARM, tested on Python 3.9 to 3.14, and each one built against Python's stable interface from 3.10 so it keeps working on later versions. Install is one line and needs no compiler.
  • Everything runs on the machine you install it on. The documentation makes a point of this: there is no cloud service in the path, which matters when the documents are not yours to upload.
Watch for
  • The licence is the whole decision, and it is the opposite of the two alternatives below. Read from /blob/main/COPYING — not from a LICENSE file — it is the unmodified GNU Affero General Public License v3. The README's own words are that it is "Free for open-source projects" with "separate commercial licences available from Artifex for proprietary applications." In plain terms: if the program you build is itself open source, nothing to pay; if it is not, you need to buy a licence from Artifex. pikepdf/pikepdf, covered in Edition 35, is MPL-2.0 and carries no such condition.
  • The published version depends on where you look. The Python package index's project page headlines 1.27.2.3, dated 24 April 2026, as the newest. Its own release feed, for the same package, lists 1.28.0 on 29 June 2026 and 1.28.2 on 6 August 2026 above it, and GitHub's own latest-release page also gives 1.28.2 on 6 August 2026. Two sources against one, and the project page is the odd one out. This edition quotes 1.28.2 and prints the disagreement rather than hiding it.
  • If no pre-built package fits your machine, the installer falls back to building from source, which needs C and C++ development tools and will download and compile MuPDF itself. On Windows that means installing Visual Studio. It is also a library and not a program: there is nothing to open and nothing to click.
Similar repositories
  • py-pdf/pypdf

    Pure Python with nothing compiled, so it installs anywhere without a compiler and carries a permissive BSD licence, but it is much slower on large files and cannot render a page to an image.

    Track this in Scout
  • pikepdf/pikepdf

    Edition 35 covered this: also fast and also built on a C++ engine, with an MPL-2.0 licence that has no commercial condition, but it does not render pages and does not extract reading order.

    Track this in Scout
  • pdfminer/pdfminer.six

    A community fork focused narrowly on getting text and its layout out of a PDF, with an MIT licence and no editing, drawing or rendering at all.

    Track this in Scout
Install
python3 -m venv venv
source venv/bin/activate        # on Windows: venv\Scripts\activate
pip install --upgrade pymupdf
python3 -c "import pymupdf; print(pymupdf.__doc__)"
Screenshots
pymupdf/PyMuPDF: GitHub preview card
09

tbillington/kondo

💎 hidden gem

2,351 stars · MIT · v0.9 on GitHub, 0.9.0 on crates.io (2026-01-23) · Track this in Scout · Share this tool

Finds the rebuildable dependency and build folders that old projects leave behind across twenty-odd ecosystems, and shows the list before deleting anything.

▶Repo detailsthe review · specs · pros & cons · install

What it is

kondo is a small command-line program, with an optional window, that recognises more than twenty kinds of project — Rust, Java with Maven or Gradle, JavaScript, Python, .NET, Swift, Unity, Unreal Engine, Godot, Terraform and others — and knows which folder in each is safe to throw away.

What it is good for. Anyone whose disk filled up and who does not know where it went. A general disk-usage tool will tell you that fifty gigabytes sits in a hundred different node_modules folders; it will not tell you that all hundred are safe to delete. That is the difference here: it understands what kind of project it is looking at, so the list it shows you is a list of things you can lose without consequence. The payoff is usually tens of gigabytes on a machine that has been used for a few years.

Stars2,351
LicenceMIT
Latestv0.9 on GitHub, 0.9.0 on crates.io (2026-01-23)
Good
  • It knows more than one ecosystem. The single-language tools in this field each handle one; this handles over twenty, which is what makes it useful on a machine with a mixed pile of old work.
  • It reports before it acts. There is a dry-run mode and a single-key mode, added in the current release, so the normal way to use it is to look at the list first.
  • A plain MIT licence read from /blob/master/LICENSE, unmodified, "Copyright (c) 2020 Trent Billington", and packages in Homebrew, winget, Arch Linux's pacman and MacPorts so there is no need to build it.
Watch for
  • It deletes, and there is no undo. The files are rebuildable, which is the point, but rebuilding means downloading everything again. On a slow connection, or for a project you need to work on this afternoon, that is a real cost. Run it with a dry run first, every time.
  • The project is quiet. Release v0.9 is dated 23 January 2026 — the yearless GitHub date was confirmed against the Rust package index, which timestamps 0.9.0 at 2026-01-23 — and the newest code landed on 24 April 2026, about five months before this edition. That is well inside the eighteen-month line and it is not being called dead, but nothing has shipped since the spring. 32 open issues against 10 pull requests.
  • Because it works from a list of known project types, a language it has not been taught is simply invisible to it. It will quietly skip what it does not recognise rather than warn you.
Similar repositories
  • voidcosmos/npkill

    Does the same job for JavaScript alone, listing every node_modules folder with its size, which is tidier for a machine that only holds JavaScript work and useless for anything else.

    Track this in Scout
  • holmgr/cargo-sweep

    The Rust-only equivalent, and more precise there because it can delete only build output older than a given date, but its own page states that the project is currently unmaintained and looking for a maintainer.

    Track this in Scout
  • Byron/dua-cli

    Edition 36 covered this: it shows what filled a disk and can delete anything at all, which is more powerful and much less safe, because it has no idea which folders are rebuildable.

    Track this in Scout
Install
brew install kondo             # macOS or Linux with Homebrew
winget install kondo           # Windows
sudo pacman -S kondo           # Arch Linux
# then, from the folder that holds your projects
kondo --dry-run ~/code
kondo ~/code                   # shows each folder and its size, and asks
Screenshots
tbillington/kondo: Screenshot 1tbillington/kondo: Screenshot 2

8,800 stars · BSD-2-Clause · v0.16.1 (2026-02-20), confirmed by crates.io · Track this in Scout · Share this tool

Shows a Markdown file as a slide show inside a terminal, so a talk is a text file that can be reviewed and diffed rather than a binary deck.

▶Repo detailsthe review · specs · pros & cons · install

What it is

presenterm is a Rust program that renders a Markdown file — Markdown being the plain-text way of writing headings and lists with symbols like # and - — as a presentation, with code highlighting, themes, speaker notes and the ability to run a code block live during the talk.

What it is good for. Anyone giving a technical talk who resents the hour spent fighting a slide editor. The real argument is not speed: it is that the talk becomes a text file you can keep beside the code, review as a change, and diff against last year's version. Running a code block live from inside the slide is the other reason — it removes the switch between the deck and a terminal, which is where most demonstrations go wrong.

Stars8,800
LicenceBSD-2-Clause
Latestv0.16.1 (2026-02-20), confirmed by crates.io
Good
  • A plain BSD-2-Clause licence read from /blob/master/LICENSE, unmodified, "Copyright (c) 2023, Matias Fontanini". Permissive with no conditions beyond keeping the notice.
  • It is properly packaged for a project of its size: Homebrew, Nix, Arch Linux's pacman, Scoop, WinGet and cargo binstall all work, and pre-built binaries are published, so nobody has to compile Rust to use it.
  • Code blocks can be executed during the presentation, there are speaker notes, and themes are a file you can keep and reuse.
Watch for
  • Images only work on some terminals. The documentation names kitty, iTerm2, WezTerm, Ghostty and foot. In any other terminal, pictures and animated gifs will not appear, which is a hard limit on what the slides can contain, and it is not something you discover until you try.
  • The project is quiet. Release v0.16.1 is dated 20 February 2026 — the yearless GitHub date was confirmed against the Rust package index, which timestamps it 2026-02-20 — and the newest code landed on 22 May 2026, a little over four months before this edition. That is well inside the eighteen-month line and it is not being called dead, but neither the release nor the code is recent. 56 open issues against 22 pull requests.
  • A terminal is a narrow stage. There is no mouse, no animation, no layout control beyond what Markdown gives you, and an audience watching a projector will see a monospace font for the whole talk. That is a taste decision as much as a technical one.
Similar repositories
  • maaslalani/slides

    The closest match in spirit and simpler, showing a Markdown file as terminal slides and also able to run code blocks, but with fewer themes and no image support at all.

    Track this in Scout
  • marp-team/marp-cli

    Edition 21 covered this: the same Markdown-to-slides idea but producing an HTML deck, a PDF or a PowerPoint file, which is what you want when the slides have to be sent to somebody.

    Track this in Scout
  • hakimel/reveal.js

    The long-standing browser answer, far richer in layout, transitions and interactivity, and correspondingly more work to set up and not usable over a plain remote connection.

    Track this in Scout
Install
brew install presenterm            # macOS or Linux with Homebrew
cargo install --locked presenterm  # if Rust is installed
sudo pacman -S presenterm          # Arch Linux
# or download a binary from the releases page
presenterm talk.md
Screenshots
mfontanini/presenterm: Screenshot 1
11

puddletag/puddletag

💎 hidden gem

640 stars · GPL-3.0-or-later (the file is the GPL notice plus attributions, not the licence text) · 2.5.0 (2025-07-27) — fourteen months; code 2026-03-30 · Track this in Scout · Share this tool

A spreadsheet-style grid for the metadata inside audio files, which is the only shape that makes bulk tag fixing fast, and it is Linux only.

▶Repo detailsthe review · specs · pros & cons · install

What it is

puddletag is a desktop program, written in Python with the Qt toolkit, that edits the metadata inside audio files. Its design copies a Windows program called Mp3tag, and the grid is the point: files are rows, labels are columns, and you edit in place.

What it is good for. Anyone with a large, untidy music collection and a Linux machine. The jobs it is built for are the bulk ones: renaming two hundred files from the labels they already carry, or filling the labels from the file names, or fixing one wrong album name across a whole folder. A tagger that shows one file at a time cannot do that work at any reasonable speed, and a music player's built-in editor certainly cannot. It also looks up missing information from public music databases.

Stars640
LicenceGPL-3.0-or-later (the file is the GPL notice plus attributions, not the licence text)
Latest2.5.0 (2025-07-27) — fourteen months; code 2026-03-30
Good
  • The grid. Seeing and editing many files at once is the entire reason this program exists, and nothing else on Linux does it in quite the same shape.
  • Actions and functions can be saved and reapplied, so "take the filename, split it on the dash, put the first part in Artist" becomes a thing you do once and then reuse.
  • It reads and writes the formats people actually have, through the Mutagen library, and can use acoustic fingerprinting through Chromaprint to identify files whose labels are empty.
Watch for
  • Linux only. The description says so: "Powerful, simple, audio tag editor for GNU/Linux". There is a line in the install notes asking for macOS help, which tells you where that stands.
  • The release is fourteen months old and the newest code is six months old. Version 2.5.0 is dated 27 July 2025 — GitHub's latest-release page shows "27 Jul" with no year, and the repository page shows the year, so this is settled rather than guessed — and the release page says "37 commits to master since this release". The last code landed on 30 March 2026. Both are inside the eighteen-month line and it is not being called dead, but anyone installing the released version is installing something from last summer. 228 open issues against 11 pull requests, at 640 stars.
  • The licence file is not the standard GPL text. It is the GPL version 3 notice followed by attributions, recording that the project contains code from Picard (GPLv2), from CDDB-py (GPLv2) and icons from the Oxygen Project (GPLv3). Nothing there restricts you further, but it does mean the project carries code from the very program listed as its closest alternative below. Installation also needs several system packages by hand rather than one command.
Similar repositories
  • metabrainz/picard

    The official tagger of the MusicBrainz database and the strongest alternative: better at identifying unknown files, including by acoustic fingerprint, but it is a drag-files-in window rather than a grid, so bulk column editing is awkward.

    Track this in Scout
  • beetbox/beets

    Edition 36 covered this: the same tidying job done from the command line and as a catalogue you can query, which is far more powerful for automation and has no grid to look at.

    Track this in Scout
  • KDE/kid3

    A mature KDE tag editor covering many formats and the third real option on Linux, but its GitHub copy is a mirror of invent.kde.org, so the star count shown there means nothing about the project's size.

    Track this in Scout
Install
# Debian or Ubuntu: the dependencies first
sudo apt install python3 python3-mutagen python3-configobj python3-pyparsing \
  python3-pyqt6 python3-pyqt6.qtsvg python3-unidecode
# then the program itself
pipx install puddletag
# packages also exist for Arch, Fedora, Gentoo and Nix
puddletag
Screenshots
puddletag/puddletag: GitHub preview cardpuddletag/puddletag: Screenshot 1

47.8k stars · GPL-2.0 · verified alive 2026-09-04; ships continuously from main, 65,998 commits · Track this in Scout · Share this tool

The serious open-source community forum — user questions become indexable pages, which is user-generated SEO.

▶Repo detailsthe review · specs · pros & cons · install

What it is

Discourse is a forum platform written in Ruby, backed by PostgreSQL and Redis, built by the company Civilized Discourse Construction Kit, Inc. It is the software behind a very large number of open-source project forums, including several named in this archive.

What it is good for. Anyone whose support is currently happening in a chat app where answers disappear. The argument for a forum over chat is that a question answered once stays answered and turns up in a search six months later; the argument over a ticket system is that other people can answer, and often do. It suits a small team with a growing number of users asking the same things. It is the wrong choice before you have those users — an empty forum is worse than none — but that is a reason to wait, not a reason to choose something weaker.

Stars47.8k
LicenceGPL-2.0
Latestverified alive 2026-09-04; ships continuously from main, 65,998 commitschecked 7 Sep 2026
Written inRuby
Good
  • Plain GPL-2.0-or-later, read from /blob/main/LICENSE.txt and unmodified Free Software Foundation text. The README's words are "Licensed under the GNU General Public License Version 2.0 (or later)", copyright "Civilized Discourse Construction Kit, Inc.", 2014 to 2026. There is official paid hosting if you want it, and nothing in the licence pushes you towards it.
  • It is complete in a way most self-hosted forums are not: trust levels that grant privileges as people earn them, full-text search, email replies, moderation queues, and a plugin system with a large number of plugins already written.
  • It is maintained at a serious pace by a company whose business depends on it, which is a different kind of safety from a volunteer project.
Watch for
  • The newest release this report could read is not a release at all, and this is a new shape of fault for this archive. GitHub's /releases/latest page — the page this report switched to in September precisely because the releases list page is unreliable — returns a tag called _gh-attach-assets, marked as a pre-release, which the project itself describes as "a dummy release used by gh-attach as storage for attachment files linked from issues and pull requests", dated "15 Jul". It is a file dump, not a version. The real version had to be read from the source: lib/version.rb defines MAJOR 2026, MINOR 9, TINY 0 and the string "2026.9.0-latest". Discourse has moved to dating its versions rather than numbering them, so the 3.x series people remember is gone.
  • The project's own two documents disagree about how much memory it needs. docs/INSTALL.md states "1 GB RAM minimum (with swap)", a modern single-core processor with dual-core recommended, 10 GB of disk and 64-bit Linux, and says plainly that "The only officially supported installs of Discourse are Docker based." The development guide on the project's own forum suggests "at least 4 GB RAM and 2 CPU cores", and a reader in that same thread reports that 1 GB failed to compile. Both figures are the project's; plan for four.
  • It is a large application to keep patched — Ruby 3.2 or later, PostgreSQL and Redis 7 — and it brings a permanent moderation job with it. 239 open pull requests. Neither of those costs goes away after the install.
Similar repositories
  • NodeBB/NodeBB

    The closest direct alternative: the same forum job, written in Node.js, lighter to run on a small machine, but with a smaller plugin ecosystem and nothing like Discourse's trust-level system.

    Track this in Scout
  • flarum/framework

    A PHP forum that is far simpler to install on ordinary shared hosting, and correspondingly less capable: extensions are fewer and several basics are add-ons.

    Track this in Scout
  • apache/answer

    Edition 34 covered this: shaped as a question-and-answer site rather than a conversation, which is better for a help centre and worse for a community, and much smaller to run.

    Track this in Scout
Install
# The only supported route is Docker. The project's own beginner guide is
# docs/INSTALL-cloud.md in the repository; the advanced route uses the
# separate discourse_docker repository.
# Plan for 4 GB of memory, 10 GB of disk, and a domain name with
# working email before you start — Discourse will not finish setup without
# a way to send mail.
Screenshots
discourse/discourse: GitHub preview carddiscourse/discourse: Screenshot 1discourse/discourse: Screenshot 2

Checked, and left out

These were opened for this edition and did not make it, with the reason.

penpot/penpot

penpot/penpot — already published, caught by the id check before any entry was written

knadh/listmonk

knadh/listmonk — already published, caught by the id check

biomejs/biome

biomejs/biome — already published, caught by the id check

567-labs/instructor

567-labs/instructor — already published (Edition 5); the 29 September board note wrongly called it queued

httpie/cli

httpie/cli — not-qualified, last code 17 December 2024, re-confirmed today

holmgr/cargo-sweep

holmgr/cargo-sweep — self-declared unmaintained, listed under kondo with that notice

KDE/kid3

KDE/kid3 — unverified, the GitHub copy is a mirror of invent.kde.org

rs/curlie

rs/curlie — alive and queued, last code 7 December 2025

pdfminer/pdfminer.six

pdfminer/pdfminer.six — alive and queued

maaslalani/slides

maaslalani/slides — alive and queued

Neoteroi/BlackSheep

Neoteroi/BlackSheep — alive and queued

shadcn-ui/ui

shadcn-ui/ui — could not be opened (HTTP 429 twice), left out of a comparison list rather than listed unopened

Share this edition
← PreviousNo. 36Next →No. 38

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.