Edition No. 25 · 19 Sep 2026
Twelve repositories for reading the web, checking your work and drawing your ideas
A markup language from the author of pandoc, three ways to turn web pages into clean text, and the whiteboard with 131,000 stars.
Saturday, 19 September 2026 · The author of pandoc has written a replacement for Markdown
The web version carries the English / Русский switch. The Russian text is in the file radar-2026-09-19-ru.md, delivered into the chat on the day. This archive stays English only.
Markdown is the plain way of writing that almost every tool now understands. Pandoc is the program that converts one document format into another, and this radar published it in Edition 14. Both come from the same person. Entry #11 is his answer to the parts of Markdown he thinks were a mistake, and he has been working on it since 2022. It has 2,000 stars, which for a piece of work of that weight is very quiet.
There is no theme. Twelve repositories, picked on how good they are, across eight of the sixteen areas. Three of them have fewer than three thousand stars.
Two things worth knowing
One person wrote pandoc, helped write the rulebook for Markdown, and has now designed something to replace it. The GitHub account jgm publishes pandoc, which has 46,200 stars and converts almost any document format into almost any other. The same account publishes djot, which has 2,000 stars. Djot's own site says it is derived from CommonMark, the strict definition of Markdown that most tools follow. The reason it exists is stated plainly in its documentation: some of Markdown's rules make a document slow to read and sometimes ambiguous, and those rules cannot be changed now without breaking every document ever written. So this is a second attempt at the same idea, by someone who knows exactly where the first one hurts. It will probably never replace Markdown. It is still one of the most interesting small repositories we have opened, and a reader who writes a lot will recognise every complaint in it.
The three web-reading tools here all carry permissive licences, and the best-known one does not. Crawlee (#3) is Apache-2.0. Crawl4AI (#4) is Apache-2.0. Defuddle (#5) is MIT. All three let you build a product on top of them and sell it with no conditions worth worrying about. Firecrawl, published in Edition 9 and now at 166,200 stars, is AGPL-3.0, which means that if you run a modified version as a service, you have to offer your changes to your users. That is fine for research and it is a real decision for a product. It is worth knowing before you pick, because all four do a similar job and the licence is the part nobody reads until late.
If you only do three things
- schemathesis/schemathesis (#6) — twenty minutes, and it works against an API you already have. It reads your API's own description and then sends it thousands of awkward requests, looking for answers that break the rules your API itself promised. Most people test the two or three cases they thought of. This tests the ones they did not. Grasppy's backend is FastAPI, which publishes that description without being asked, so there is nothing to write first.
- kepano/defuddle (#5) — five minutes, one command. It takes any web page and gives you back the article, as clean text, with the menus and the adverts and the cookie box removed. It is the small piece that three bigger tools on this page each contain a version of, and you can use it on its own.
- zizmorcore/zizmor (#8) — ten minutes, on files you already have. It reads the automation files in your project, the ones that run tests and deploys when you push code, and reports the security mistakes that are easy to make there and almost impossible to see. It is one command and it changes nothing.
Every link in one place
| # | Repository | Official site or docs | Stars | Licence | Latest |
|---|---|---|---|---|---|
| 1 | excalidraw/excalidraw | excalidraw.com | 131.1k | MIT | v0.18.1 (21 Apr 2026) |
| 2 | upscayl/upscayl | upscayl.org | 46.6k | AGPL-3.0 | v2.15.0 (25 Dec 2025) |
| 3 | apify/crawlee | crawlee.dev | 25.2k | Apache-2.0 | v3.18.1 (12 Aug 2026) |
| 4 | unclecode/crawl4ai | crawl4ai.com | 80.9k | Apache-2.0 | v0.9.3 (31 Aug 2026) |
| 5 | kepano/defuddle | defuddle.md | 9.4k | MIT | 0.19.4 (17 Sep 2026) |
| 6 | schemathesis/schemathesis | schemathesis.readthedocs.io | 3.6k | MIT | v4.27.4 (18 Sep 2026) |
| 7 | samuelcolvin/watchfiles 💎 | watchfiles.helpmanual.io | 2.5k | MIT | 1.2.0 on PyPI (18 May 2026) |
| 8 | zizmorcore/zizmor | docs.zizmor.sh | 6.5k | MIT | v1.30.1 (9 Sep 2026) |
| 9 | unum-cloud/usearch | unum-cloud.github.io/usearch | 4.3k | Apache-2.0 | v2.26.2 (31 Aug 2026) |
| 10 | noborus/ov 💎 | noborus.github.io/ov | 2.0k | MIT | v0.54.0 (12 Jul 2026) |
| 11 | jgm/djot 💎 | djot.net | 2.0k | MIT | 0.2.0 (3 Jan 2026), 91 commits since |
| 12 | Aider-AI/aider | aider.chat | 49.0k | Apache-2.0 | v0.86.0 (9 Aug 2026) |
The author of pandoc has written a replacement for Markdown
Twelve repositories, checked and reviewed. Every version verified against the GitHub API and dated.
131.4k stars · MIT · v0.18.1 (2026-04-21) · Track this in Scout
Hand-drawn-style diagramming for tutorial visuals and blog illustrations; the free counterpart to tldraw.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A drawing tool that runs entirely in the browser. It has a small set of shapes, a library of ready-made icons, live editing with other people, and export to PNG and SVG. The drawings you keep are stored in your own browser unless you deliberately share them, and a shared room is encrypted so the server cannot read it.What it is good for. Anyone who has to explain a shape to somebody else: how a system fits together, where a user gets stuck, what the three boxes on a slide are. The problem it removes is the hour lost to a proper design tool when you only wanted an arrow between two rectangles. A short line about Grasppy: its whole idea is a picture of a conversation, and this is the fastest way to draw what a new screen should look like before anybody builds it.
- Nothing to install and no account. You open the page and start.
- The hand-drawn look keeps a sketch looking like a sketch, which matters while a decision is still open.
- MIT licence, so the drawing component can be put inside your own product without a fee.
- Your drawings live in one browser on one machine unless you export them or share a link. It is easy to lose work by clearing your browser data.
- The official releases are not frequent. The newest tag for the embeddable package is v0.18.1, shown as "21 Apr" with no year, which by GitHub's habit means 21 April 2026.
- It is for sketches. For a precise diagram with lanes, layers and a fixed grid, draw.io is the better answer.
- tldraw/tldraw
An infinite canvas kit for React with a more polished set of tools, and its own licence, which needs a paid key in production.
Track this in Scout
jgraph/drawioPublished in Edition 22, it draws precise diagrams with proper connectors and layers, and it is much denser to learn.
Track this in Scout
GraphiteEditor/GraphitePublished in Edition 22, a full vector and raster editor where every step stays editable, which is a different job from a sketch.
Track this in Scout
# Nothing to install. Open https://excalidraw.com and draw. # To put the canvas inside your own React app: npm install react react-dom @excalidraw/excalidraw # To run the whole thing yourself: git clone https://github.com/excalidraw/excalidraw.git cd excalidraw yarn yarn start
46.6k stars · AGPL-3.0 · v2.15.0, read from /releases/latest, shown as '25 Dec' — a date that has not yet happened in 2026, so it is 25 December 2025 · Track this in Scout
A desktop program that enlarges a picture and invents the missing detail, entirely on your own machine.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A desktop application for Linux, macOS and Windows. It wraps several image models, including Real-ESRGAN, behind a simple window with a before-and-after slider. It can work through a whole folder at once, and it runs on your own graphics card rather than on a service.What it is good for. Anyone with an old photograph, a small logo, or a picture from a customer that is not big enough for the page it has to go on. The problem it removes is the paid website that charges per image and keeps a copy. A short line about the YouTube channel: an old thumbnail or a screenshot taken at the wrong size can be brought back up to a usable resolution without paying anybody.
- Everything happens on your machine, so the pictures never leave it.
- Several different models are included, and a photograph and a drawing want different ones.
- It will process a whole folder without you sitting there.
- AGPL-3.0 licence. Using it is free. Putting its code inside a product of your own brings real conditions.
- It is much faster with a graphics card. On a laptop without one, a large picture takes minutes.
- It invents detail. That is the whole point, and it means the result is not evidence of anything. Never use it on a photograph that has to be accurate.
- xinntao/Real-ESRGAN
One of the models Upscayl uses, run from the command line with no window at all.
Track this in Scout - chaiNNer-org/chaiNNer
You build an image pipeline by joining boxes together, which is far more powerful and much slower to learn.
Track this in Scout
# Download the installer for your machine from # https://github.com/upscayl/upscayl/releases/latest # There is a .AppImage for Linux, a .dmg for macOS and an .exe for Windows. # On Linux: chmod +x Upscayl-*.AppImage ./Upscayl-*.AppImage # Or from Flathub: flatpak install flathub org.upscayl.Upscayl
25.2k stars · Apache-2.0 · v3.18.1 (2026-08-12), read from /releases/latest · Track this in Scout
A crawling framework for JavaScript that keeps the queue, the retries and the rate limits so you only write the part that reads the page.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A library for Node.js, in JavaScript and TypeScript. It gives you a queue of addresses, storage for what you collected, automatic retries with backing off, rotating proxies, and a choice between plain HTTP requests and a real browser driven by Playwright or Puppeteer. Switching between the two is a change of one class name.What it is good for. Anyone who has written a scraping script and watched it die on page four hundred. The problem it removes is all the bookkeeping around the part you actually care about. A short line about ScalpingMate and the channel: collecting a competitor's published pages, or a calendar of releases, is exactly this shape of job.
- The same code can run with plain requests or with a full browser, so a site that needs JavaScript is a small change rather than a rewrite.
- It handles blocking behaviour for you: proxy rotation, realistic browser fingerprints, and sensible rates.
- Apache-2.0 licence, and a Python version exists as well if Node.js is not your language.
- It is a framework, not a command. For ten pages this is more machinery than you need.
- Running real browsers costs memory. Each one wants several hundred megabytes, so a server has a hard limit on how many run at once.
- Scraping a site can breach its terms of service. Read them, and keep the rate low enough to be polite.
- scrapy/scrapy
The long-established Python equivalent, with more extensions and a much older design that handles browsers less naturally.
Track this in Scout - microsoft/playwright
It drives a browser and nothing else, so it is the layer Crawlee sits on rather than a competitor.
Track this in Scout
# Start a project from the template: npx crawlee create my-crawler cd my-crawler npm start # Or add it to something you already have: npm install crawlee playwright npx playwright install chromium
81.9k stars · Apache-2.0 · v0.9.3 (2026-08-31) · Track this in Scout
LLM-friendly crawler — renders JS pages and returns clean markdown. Competitor research plus a 'paste a URL' front door for Grasppy.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A Python library and a command-line tool. It drives a real browser, strips a page down to its content, and returns Markdown — the plain text format this report itself is written in. It can also take a description of the fields you want and return structured data instead, and it caches what it has fetched so a second run is fast.What it is good for. Anyone building something that reads the web and then asks a model about it. The problem it removes is the cost and the noise of sending a whole raw page to a model. A short line about Grasppy: it maps long text into subtopics, and this is a clean way to get long text out of a set of pages in the first place.
- The output is already clean, so the next step costs less and gives better answers.
- It runs a real browser, so pages that build themselves with JavaScript still work.
- Apache-2.0 licence, a very large and active project at 80,900 stars, and there is a Docker image so you do not have to install a browser by hand.
- It is still before version 1.0, at v0.9.3, and things move. Pin the version.
- Asking it to extract fields with a model costs money on every page. The plain text path costs nothing.
- Browsers are heavy. Give it a gigabyte or more, and do not run twenty at once on a small server.
firecrawl/firecrawlPublished in Edition 9, it does the same job as a hosted service with a generous library, and its main code is AGPL-3.0 rather than Apache-2.0.
Track this in Scout- ScrapeGraphAI/Scrapegraph-ai
It builds the whole extraction as a graph of model calls, which is more automatic and costs a model call at every step.
Track this in Scout
microsoft/markitdownPublished in Edition 14, it converts files on your disk into Markdown rather than fetching anything.
Track this in Scout
python3 -m venv venv
source venv/bin/activate
pip install -U crawl4ai
crawl4ai-setup # installs the browser it needs
# Check it works:
crwl https://grasppy.com/radar/ -o markdown
# Or from Python:
# import asyncio
# from crawl4ai import AsyncWebCrawler
# async def main():
# async with AsyncWebCrawler() as c:
# r = await c.arun("https://example.com")
# print(r.markdown)
# asyncio.run(main())9.4k stars · MIT · 0.19.4 (2026-09-17), read from /releases/latest and confirmed on npm — two days before the edition · Track this in Scout
It extracts the main article from a web page and returns it as Markdown.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A small JavaScript library, also usable as a command from the terminal. It reads a page, works out which part of it is the actual content, cleans away the rest, and converts what is left into Markdown. It was built for the Obsidian Web Clipper, so it is tested against a very large number of real sites.What it is good for. Anyone saving articles to read or to search later, and anyone feeding pages into anything else. The problem it removes is the page furniture, which is most of the bytes and none of the meaning. A short line about Grasppy: a pasted article is a common way people bring text in, and this is the cheapest way to make that text clean before anything else touches it.
- It does one thing, so there is almost nothing to learn and almost nothing to break.
- It keeps headings, lists, code blocks and footnotes rather than flattening everything into paragraphs.
- MIT licence, and very actively maintained: version 0.19.4 was published on 17 September 2026, two days before this edition.
- It reads the page you give it. It does not fetch pages, follow links or wait for JavaScript, so a page that builds itself in the browser needs something else in front.
- It is JavaScript. A Python project has to shell out to it or pick a different tool.
- Content extraction is guesswork by nature. On an unusual layout it will occasionally take too much or too little.
- mozilla/readability
The code behind Firefox's Reader View, and the thing Defuddle was written to improve on.
Track this in Scout
adbar/trafilaturaPublished in Edition 6, the Python answer to the same problem, and it also downloads and crawls.
Track this in Scout
microlinkhq/metascraperPublished in Edition 20, it reads a page's title, description and image rather than its body text.
Track this in Scout
# As a command:
npm install -g defuddle-cli
defuddle parse https://example.com/article --md -o article.md
# As a library in your own project:
npm install defuddle
# In Node.js:
# import { Defuddle } from 'defuddle/node'
# const result = await Defuddle(html, url, { markdown: true })
# console.log(result.content)3.6k stars · MIT · v4.27.4, read from /releases/latest, shown as '18 Sep' with no year and therefore 18 September 2026 — the day before the edition · Track this in Scout
It reads your API's own OpenAPI or GraphQL description and attacks it with thousands of generated requests, reporting every answer that breaks the rules the description promised.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A command-line tool and a Python library. It takes an OpenAPI or GraphQL schema — the machine-readable document that says what each address accepts and returns — and builds test cases from it using property-based testing, where the computer invents the inputs instead of you. Every failure it finds is reduced to the smallest request that still fails.What it is good for. Anyone with a public or internal API and no confidence in the edge cases. The problem it removes is writing hundreds of tests by hand for inputs you would never have imagined. A short line about Grasppy: its backend is FastAPI, which publishes an OpenAPI description automatically, so there is genuinely nothing to prepare. Point it at the address and read the report.
- No test writing at all to begin with. The description you already publish is the input.
- When it finds a failure it shrinks it to the smallest request that still breaks, so you get a one-line reproduction rather than a wall of noise.
- MIT licence, and it is moving fast: v4.27.4 was published on 18 September 2026, the day before this edition.
- It is only as good as your description. If your schema is loose, the tests are loose.
- It sends real requests, so never point it at a live database with real customers in it. Use a copy.
- A full run against a large API takes a long time and will find the same class of problem many times before you fix the first one.
- HypothesisWorks/hypothesis
The property-based testing library for Python that Schemathesis is built on, where you write the rules yourself rather than reading them from a schema.
Track this in Scout - stoplightio/spectral
It checks the schema document itself against a style guide and never sends a request, so the two catch opposite problems.
Track this in Scout
usebruno/brunoPublished in Edition 17, the hand-driven API client where you write the requests yourself and keep them in git.
Track this in Scout
python3 -m venv venv source venv/bin/activate pip install schemathesis # Against a running FastAPI service: schemathesis run http://127.0.0.1:8000/openapi.json --url http://127.0.0.1:8000 # Keep the run short while you learn what it reports: schemathesis run http://127.0.0.1:8000/openapi.json \ --url http://127.0.0.1:8000 --max-examples 50
2.5k stars · MIT · 1.2.0 on PyPI (2026-05-18); for a Python tool the registry is believed over GitHub · Track this in Scout
It watches files and restarts your Python program the moment one of them changes, using the operating system's own notifications rather than polling.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A Python library with a small command-line tool, written in Rust for speed. It uses the notification service the operating system already provides rather than repeatedly asking. It gives you a plain loop over changes, an asynchronous version, and a watchfiles command that restarts any command you give it.What it is good for. Any Python developer, and anyone whose project needs to react when a file lands in a folder. The problem it removes is the manual restart, and the battery cost of the naive way of avoiding it. A short line about Grasppy and ScalpingMate: both are Python, and the --reload option people already use in development is this library underneath.
- Almost no cost while nothing is happening, because it waits for the operating system to speak rather than asking it.
- It is already proven at scale: it is what several widely used development servers rely on.
- MIT licence, by the author of pydantic, and the published version is 1.2.0 of 18 May 2026 on PyPI.
- Watching files across a shared folder or a network drive does not work reliably. That is the operating system's limit, not this library's.
- On a very large folder tree the first scan is slow, so point it at the directory you care about rather than the whole project.
- It restarts a process. It does not swap code inside a running one, so anything held in memory is lost on each change.
- gorakhargosh/watchdog
The older and much broader Python file-watching library, with more features and noticeably more overhead.
Track this in Scout - watchexec/watchexec
A standalone command that runs anything when files change, with no Python involved at all.
Track this in Scout
source venv/bin/activate
pip install watchfiles
# Restart a command whenever anything in ./app changes:
watchfiles 'python -m myapp' app
# Or from inside Python:
# from watchfiles import watch
# for changes in watch('./app'):
# print(changes)6.5k stars · MIT · v1.30.1, read from /releases/latest, shown as '09 Sep' with no year and therefore 9 September 2026 · Track this in Scout
It reads the GitHub Actions files in your project and reports the security mistakes in them, without running or changing anything.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A command-line tool written in Rust. It examines the workflow files in .github/workflows/ without running them and checks them against a growing set of known dangerous patterns: text from an untrusted source used where it becomes a command, permissions wider than the job needs, third-party actions pinned to a moving name instead of a fixed commit, and secrets available to jobs that should not see them.What it is good for. Anyone whose project runs anything automatically on GitHub, which today is almost everyone. The problem it removes is a class of mistake nobody can see by reading, and which only becomes visible when it is used. A short line about Grasppy and ScalpingMate: both are private, and the risk there is smaller, but the same files usually hold the deploy keys for the server.
- One command against files you already have, and it changes nothing.
- The explanations say why a line is dangerous, so it teaches rather than just complaining.
- MIT licence, backed by Trail of Bits, and a release most weeks: v1.30.1 on 9 September 2026.
- It only covers GitHub Actions. A project that builds elsewhere gets nothing from it.
- Some of its findings are cautious and will not apply to you. Read them rather than turning them all off.
- It reports the mistake. Fixing it is still yours, and some fixes mean changing how a job is triggered.
- rhysd/actionlint
It checks the same files for syntax and type mistakes rather than for security, so the two are a pair and not a choice.
Track this in Scout - aquasecurity/trivy
It scans containers, dependencies and configuration for known problems, which is a much wider net and not aimed at this one file type.
Track this in Scout
mongodb/kingfisherPublished in Edition 16, it finds keys that have already leaked into your code, which is the problem after this one fails to be prevented.
Track this in Scout
```bash
4.3k stars · Apache-2.0 · v2.26.2, read from /releases/latest, shown as '31 Aug' with no year and therefore 31 August 2026 · Track this in Scout
A single-header similarity search and clustering engine for vectors, usable from ten languages and embedded inside ClickHouse and DuckDB.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A similarity search and clustering engine written in C++, distributed as a single header file. An embedding is the list of numbers a model produces to represent a piece of text or an image, and nearest-neighbour search is the job of finding the closest ones. USearch does that with an index that can live in memory or on disk, and it has bindings for Python, JavaScript, Rust, Java, Go, Swift, C# and more.What it is good for. Anyone adding meaning-based search to something that does not have a database for it, and anyone whose index has grown too big for a simple list. The problem it removes is running a whole separate search server for something that can live inside your process. A short line about Grasppy: its search over the pieces of a long conversation is exactly this shape, and it does not need a server of its own.
- Very small. One header file, no service to run, and the index can be memory-mapped from disk so it does not all have to fit in memory.
- The same index works from many languages, which matters when the model runs in Python and the product runs in something else.
- Apache-2.0 licence, and it is embedded inside ClickHouse and DuckDB, which is a strong signal that the code holds up.
- It is a library, not a database. There is no query language, no filtering by other fields, and no backup story except copying the file.
- Approximate search trades a little accuracy for a lot of speed, and choosing the settings takes some reading.
- You still have to produce the numbers yourself with a model. This is only the search half.
- facebookresearch/faiss
The standard in this area, with far more algorithms and a much heavier install.
Track this in Scout
MinishLab/vicinityPublished in Edition 8, a thin Python layer that gives several engines one interface, so it is the way to try this one against others.
Track this in Scout- spotify/annoy
The older file-based approach that several processes can share, simpler and slower to update.
Track this in Scout
source venv/bin/activate
pip install usearch
# In Python:
# import numpy as np
# from usearch.index import Index
# index = Index(ndim=256, metric='cos')
# index.add(np.arange(1000), np.random.rand(1000, 256).astype(np.float32))
# matches = index.search(np.random.rand(256).astype(np.float32), 10)
# index.save('grasppy.usearch')
# In Node.js:
npm install usearch2.0k stars · MIT · v0.54.0, read from /releases/latest, shown as '12 Jul' with no year and therefore 12 July 2026 · Track this in Scout
A modern terminal pager with fixed header rows, live following of a growing file, and search across several files at once.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A terminal pager written in Go. A pager is the program that shows you a long file or the long output of a command, one screen at a time. Ov adds column awareness, so a table stays readable; a follow mode for growing files; search that works across several files; and a section mode that lets you jump between parts of a document.What it is good for. Anyone who reads logs, database output or long command output in a terminal, which is anyone with a server. The problem it removes is losing track of which column you are looking at, and running out of features half way through reading a file. A short line about the Hetzner server: this and lnav from Edition 22 answer different halves of the same evening, and this one needs no configuration at all.
- Fixed header rows and column highlighting, which turns unreadable command output into something you can actually follow.
- It follows a growing file and can follow several at once in one window.
- MIT licence, one binary, and it is by the same author as trdsql, published in Edition 24.
- It is another thing to learn. The keys are similar to the old pager but not identical, and the first hour is slower.
- Terminal only. There is nothing to open on a phone and nothing to share.
- Setting it as the default pager for everything can surprise other programs that expect the old one's behaviour.
- sharkdp/bat
It prints a file with syntax colouring and hands the scrolling to a pager, so it sits in front of this rather than replacing it.
Track this in Scout
okbob/pspgPublished in Edition 21, it does the table half better and only the table half, and it is built around psql.
Track this in Scout
tstack/lnavPublished in Edition 22, it understands log formats and answers SQL questions about them, which is a much bigger tool for a narrower job.
Track this in Scout
# With Go installed: go install github.com/noborus/ov@latest # Or on macOS: brew install noborus/tap/ov # Or download a binary from # https://github.com/noborus/ov/releases/latest # Read a log and keep following it as it grows: ov --follow-mode /var/log/nginx/access.log # Use it as the default pager: export PAGER='ov -F'
2.0k stars · MIT · 0.2.0, read from /releases/latest, shown as '03 Jan' with no year and therefore 3 January 2026, with 91 commits on main since · Track this in Scout
A light markup language from the author of pandoc, designed to remove the parts of Markdown that are slow and sometimes ambiguous to parse.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A markup syntax with a reference implementation in Lua, plus versions in JavaScript, Rust and other languages. Its own site describes it as derived from CommonMark, the strict definition that most Markdown tools follow. It adds footnotes, definition lists, tables, mathematics and a general way of attaching attributes to anything, and it removes the rules that make a Markdown document slow and sometimes ambiguous to read.What it is good for. Anyone who writes a lot, and anyone building a tool that has to read what people wrote. The problem it removes is the corner of Markdown where two tools give you two different answers. This one is honest: the case for using it today is strongest inside your own system, where you control both ends. A short line about Grasppy: its subtopic maps are built by reading structure out of text, and a format whose structure is unambiguous is worth knowing about.
- A single, clear definition, so two implementations agree about what a document means.
- Footnotes, tables, mathematics and attributes are part of the language rather than extensions bolted on by each tool.
- MIT licence, by the author of pandoc, which already converts to and from djot, so nothing you write in it is trapped.
- Almost nothing supports it. GitHub does not render it, and neither does anything you are already using.
- The version number is 0.2.0, published on 3 January 2026, with 91 commits since. This is a language still being settled, not a finished standard.
- Writing in it means converting to Markdown or HTML before anybody else sees it, which is one more step in every publishing path.
jgm/pandocPublished in Edition 14, by the same author, and it converts between dozens of formats including this one, so it is the bridge rather than a competitor.
Track this in Scout- commonmark/cmark
The reference implementation of CommonMark, which is the strict Markdown definition djot was designed to improve on.
Track this in Scout - asciidoctor/asciidoctor
The other serious answer to the same complaint, much older and much more widely supported, and considerably heavier to write.
Track this in Scout
# Try it in a browser first, with no install: # https://djot.net/playground/ # The JavaScript version: npm install -g @djot/djot djot mydoc.dj > mydoc.html # Convert to and from it with pandoc: pandoc -f djot -t html mydoc.dj -o mydoc.html pandoc -f markdown -t djot README.md -o README.dj
49.0k stars · Apache-2.0 · v0.86.0, read from /releases/latest, shown as '09 Aug' with no year and therefore 9 August 2026 · Track this in Scout
A coding assistant that works in your terminal on a project you already have and writes every accepted change as its own git commit.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A command-line program written in Python. It builds a map of your project so that it can find the relevant files without being told, sends only what is needed to the model, and writes each accepted change as its own git commit with a written message. It works with models from several providers and with local models, and it can run your tests after a change and try again if they fail.What it is good for. Any developer who wants help inside a project rather than in a chat window in a browser. The problem it removes is the copying and pasting, and the lost history when an assistant changes five files and you cannot tell what it did. A short line about Grasppy and ScalpingMate: they are already built this way with Claude Code, so this is not a replacement. It is the one to know about if you ever want a second opinion, a different model, or a tool that is not tied to a single provider.
- Every change is a git commit, so undoing one is one command and reviewing one is a normal diff.
- It works with many providers, including models you run yourself, so you are not locked to one company's pricing.
- Apache-2.0 licence, 49,000 stars, and a release most weeks: v0.86.0 on 9 August 2026.
- It costs model money on every request, and a long session on a large project is not cheap. Watch the running total it prints.
- It works best on a project that is already in git with a clean working tree. On a messy folder it is much less useful.
- It is a terminal program. There is no window, no preview and no button, and the first hour is spent learning which command does what.
- cline/cline
The same idea inside a code editor rather than a terminal, with a visible plan before it acts.
Track this in Scout - All-Hands-AI/OpenHands
It runs agents in a sandbox you host, which is a much bigger thing to run and aimed at longer unattended tasks.
Track this in Scout
python3 -m venv venv source venv/bin/activate python -m pip install aider-install aider-install # Set the key for whichever model you use, then: cd /path/to/your/project aider # Point it at specific files to keep the cost down: aider app/main.py app/models.py
Checked, and left out
These were opened for this edition and did not make it, with the reason.
rsms/inter - UNVERIFIED, and explicitly NOT called dormant. 19.8k stars, SIL Open Font License 1.1. The Inter typeface, and it would have been a third design-and-interface entry. Its newest release is v4.1 and the release page shows the date '16 Nov' with no year. GitHub hides the year only for the current year, and 16 November 2026 has not happened yet, so the year is lost rather than known. The npm package inter-ui shows 4.1.1 and carries no date at all. Nothing in this sandbox can settle it. New to the ledger, recorded as unverified. Needs a sweep from the Mac.
rsms/inter - UNVERIFIED, and explicitly NOT called dormant. 19.8k stars, SIL Open Font License 1.1. The Inter typeface, and it would have been a third design-and-interface entry. Its newest release is v4.1 and the release page shows the date '16 Nov' with no year. GitHub hides the year only for the current year, and 16 November 2026 has not happened yet, so the year is lost rather than known. The npm package inter-ui shows 4.1.1 and carries no date at all. Nothing in this sandbox can settle it. New to the ledger, recorded as unverified. Needs a sweep from the Mac.
iconify/iconify - ALIVE. 6.2k stars, MIT. One component that draws icons from over 200 icon sets, about 300,000 icons, loaded one at a time rather than as a whole font. It publishes NO GitHub releases at all, which is a determination and not a gap; recency was proved from npm, where @iconify/utils 3.1.7 was published in September 2026. Excalidraw and Upscayl took the two design places, and Lucide
iconify/iconify - ALIVE. 6.2k stars, MIT. One component that draws icons from over 200 icon sets, about 300,000 icons, loaded one at a time rather than as a whole font. It publishes NO GitHub releases at all, which is a determination and not a gap; recency was proved from npm, where @iconify/utils 3.1.7 was published in September 2026. Excalidraw and Upscayl took the two design places, and Lucide (Ed. 12 #2) already covers one icon set well. New to the ledger, queued.
catppuccin/catppuccin - ALIVE. 19.7k stars, MIT. A single pastel colour scheme in four shades, ported by hand into several hundred separate programs. Unusual for GitHub because the work is almost entirely coordination rather than code, and it deserves its own entry rather than a place taken by accident. New to the ledger, queued.
catppuccin/catppuccin - ALIVE. 19.7k stars, MIT. A single pastel colour scheme in four shades, ported by hand into several hundred separate programs. Unusual for GitHub because the work is almost entirely coordination rather than code, and it deserves its own entry rather than a place taken by accident. New to the ledger, queued.
rss-bridge/rss-bridge - ALIVE. 9.2k stars, released into the PUBLIC DOMAIN under the Unlicense, which is the first public-domain licence this radar has met in 25 editions. It builds an RSS feed for a site that removed its own. Its newest release is tagged 2025-08-05 and dated 5 August 2025, thirteen months ago, and being PHP it has no package registry that could settle how recent its code is. That is a fact about its releases and not about its health, and it is explicitly not called dormant. New to the ledger, queued.
rss-bridge/rss-bridge - ALIVE. 9.2k stars, released into the PUBLIC DOMAIN under the Unlicense, which is the first public-domain licence this radar has met in 25 editions. It builds an RSS feed for a site that removed its own. Its newest release is tagged 2025-08-05 and dated 5 August 2025, thirteen months ago, and being PHP it has no package registry that could settle how recent its code is. That is a fact about its releases and not about its health, and it is explicitly not called dormant. New to the ledger, queued.
Coming tomorrow

























