Tools and experiments

Go, Python, Rhai, JavaScript

cairntwitch-vod-pipelinestar-loopFive commands for CItwitch-message-creator

cairn

Go · MIT · source of cairn

A small OCI registry that keeps blobs on the filesystem and everything it needs to find them in SQL. The scope is deliberately one slice of the OCI distribution spec, version 1.1: blobs, manifests, tags and referrers. The SQLite index exists to answer the one query content addressing cannot: “what refers to this?” It is enough for oras push, pull, repo tags, attach and discover to work against it unmodified.

Three stores with different lifetimes: immutable blobs, in-flight uploads that have no digest yet, and an index that holds no bytes. The HTTP layer parses requests and maps errors to the spec’s codes and holds no storage logic. Blob and manifest size ceilings are separate flags because the constraints differ: a blob is streamed to disk, a manifest is held in memory to be hashed and parsed. The tests drive the real HTTP surface over SQLite and the filesystem, and the pinned conformance suite passes 75 of its tests and skips 4.

It is experimental: tag listing is not paginated, nothing is ever reclaimed on delete, there is no authentication, and blob reads through Open are not digest-verified because that would defeat Range. The decisions the spec leaves open are written down in docs/decisions.md.

twitch-vod-pipeline

Python · MIT · PyPI vodpipe · source of twitch-vod-pipeline

Records a Twitch stream live in chunks, or downloads a past VOD through the identical path, and hands an editor everything needed to start cutting: a Premiere-ready master stream-copied from the broadcast so nothing is re-encoded, its proxy named so Premiere’s Attach Proxies finds it, a Static Transcript JSON with per-word timings that turns on text-based editing, SRT captions, a censor list of the terms from your master list that actually occur, and a report of what happened with timestamps, best moments and chat-backed evidence. It records and transcribes; it does not cut, and makes no decisions about what to remove.

Pure standard library, no dependencies to install; ffmpeg and streamlink do the capture and remux, Deepgram does the words, and the report comes from a claude or grok CLI you already have rather than an API key. A dashboard runs locally in the browser; on Windows there is a desktop app whose host is a compiled C# shim, which is why the PyPI wheel carries the pipeline and dashboard but not the app. It can pull any range out of a broadcast while it is still recording, and route everything through a proxy to reach Twitch from a region it has withdrawn from. The README has a section on why a recording can be 720p and another on disk safety, because both bit me first.

star-loop

Rhai · MIT · source of star-loop

An autonomous coding loop for Grok Build, in one Rhai file with no dependencies, since Rhai is Grok’s own scripting language. A read-only recon agent surveys the repository first and finds the project’s real quality gates. Then one fresh agent per iteration implements exactly one unit of work, with no memory except the working tree, the git log and a journal. The part I think matters: every claim of “done” is handed to a different agent with an adversarial brief, which re-runs the gates itself, reads the diff, and looks for the specific ways loops fake success: tests deleted or skipped, assertions loosened, snapshots regenerated instead of bugs fixed, gates that passed because they matched no files. A rejection is fed back verbatim to the next iteration.

Five commands for CI

Go · MIT · go install github.com/MrBeldum/<name>@latest

Each does one thing, reads stdin or a file, writes JSON when asked, and exits 0 for yes, 1 for no and 2 for a usage or file error, so a pipeline can branch on the result without parsing text.

jsonlcut
Keeps the top-level fields you name from JSON Lines. --keep-missing emits null for absent fields; --skip-bad skips invalid lines instead of exiting.
modwhy
An ASCII why-tree for a Go module dependency: runs go mod graph, walks from the main module to the target and prints up to -max distinct paths with versions preserved.
envcheck
Checks that every key in .env.example is set, and with --no-empty that none is empty.
waitready
Waits until one or more URLs return the status you expect, with a timeout and an interval, and optional JSON progress.
envdiff
Added, removed and changed keys between two .env files, or between a file and the live environment.

twitch-message-creator

JavaScript · MIT · open it: twitch-message-creator · source of twitch-message-creator

An offline, ad-free replacement for a popular single-message generator that had started opening an ad tab after every download. Twitch-style message layout, custom name colours and badges, exported as a 2× PNG with the same DOM-to-canvas library the original uses, and a bundled font so previews and downloads match without a network request. It also ships a userscript that blocks the original site’s pop-ups, for people who would rather keep using it.