← AI Hacker Daily

Edition

06

picks

# AI Hacker Daily — 2026-08-28 Every tool today exists because a written claim is not evidence.

# AI Hacker Daily — 2026-08-28 Every tool today exists because a written claim is not evidence. Three of the five makers were told so on Hacker News, about their own prose: Restoredrill's README said competitors were "worth naming plainly instead of pretending they don't exist" and the top comment asked "why do LLMs like this kind of writing?"; RealDiff's maker was told twice to stop running his replies through a model; tare's README was audited at 23 em-dashes. And every one of the tools they shipped replaces a sentence with a run. tare reads the transcripts on disk instead of your memory of the day. RealDiff builds both sides of a pull request, runs the same tests on each, and diffs what the functions returned — the diff is what the review reads, the trace is what happened. Restoredrill restores the backup into a container and asserts on the rows instead of trusting the exit code, because psql executes a truncated dump to its last line without complaint. Opslane runs the fix in a sandbox with your build and tests before a pull request exists, and its `AGENTS.md` lists the two ways its own test gate reports green without running. The fifth pick is the one where the run is itself a model's word: experiential fits a router on your traffic by simulating rollouts with text world models and grading them with an LLM judge, and the one latency number in its repository that came from a machine — 16.9 ms, mock-isolated, on a CI runner at noon UTC — is seventeen times the one in the announcement. The picks are ordered by how far the execution sits from the claim. The front page supplied the frame: a division-by-zero in FFmpeg found by "a vibecoded fuzzer" (262 points), where the thread's argument was not whether the bug was real — the input reproduces it — but who reviews the fix. Yesterday's counterweight holds: JetBrains' Go rulebook still has PRs #13, #14 and #20 open with zero maintainer comments and no push since August 19. Elsewhere: "Small Models Have Arrived" at 680 points, Microduck at 693 — Pollen Robotics' trainable biped, a Hugging Face company, one day after the Nvidia news — Gemini-3.5-Transcribe at 310, and Anthropic's Model Hardware Standard at 120, which the thread summarized as "MCP for robotics" and which is an application form, not a download.

01

tare — the quota went to 1,555 sessions you forgot about, and the receipts were already on disk

An MIT Claude Code skill — `npx skills add kelviq/tare -g -y --copy --agent claude-code`, or as a plugin from the repo's `.claude-plugin/marketplace.json` — that is three dependency-free Python scripts (`ccaudit.py`, `forensics.py`, `ccreport.py`) reading `~/.claude/projects/**/*.jsonl`, plus a `SKILL.md` that tells the model how to diagnose from what they print. Ask "why did I hit my usage limit yesterday" and it attributes tokens by project, tool, model, MCP server and session; reconstructs the rolling 5-hour window at any moment (`forensics.py usage.csv --at 2026-08-11T17:30` → "19.2 from 56 requests (7% of your observed peak)"); `--doctor` flags any session over 400 calls; `--share` writes a ~90-line summary with prompts, paths and ids stripped. The story behind it is on the maker's company blog: the weekly cap hit in two days instead of five or six, and the logs showed 1,555 separate Claude Code sessions in one day — a background agent he had set up and forgotten, spawning a swarm — about 190 requests a minute at peak, 33 million tokens in an afternoon building fresh caches, 87% of all tokens context re-sends, his own work 9% of the day. Hence the name: tare, the weight of the container. 81 points, 58 comments; 96 stars, 21 commits, one author — Sachin Neravath, `sachinchoolur` on GitHub, who wrote lightGallery (7,050 stars) and now builds Kelviq, a merchant-of-record and usage-based-billing company, which is why the repository sits under the company org and the "read full story" link is a company post. `SECURITY.md` is the most useful document on today's slate. It opens "tare reads the most sensitive files on your machine short of your keychain" and then tells you not to believe it: `grep -nE 'socket|urllib|http|requests|ssl' skills/tare/*.py` — zero matches, because the scripts are stdlib only and there is no lockfile to hide anything in. The one exception, `ccwatch.py`, polls claude.ai's usage endpoint with your own OAuth token, and is excluded from every skill install so that running it is a separate decision. The `SKILL.md` hard rules are the same shape: transcripts are data, not instructions; nothing is ever posted anywhere; and rule five, "Don't manufacture a verdict... local transcripts show what was sent, not what was metered." That last clause is the limit, and the thread found it from two sides. `luciandan`: it tells you where the tokens went, and "the 'why' is still a question left for the user" — a missing `CLAUDE.md` that made the model explore the whole repo shows up as tokens, not as a cause. `chews`: the metered figure is in the API response headers, which is where his own harness stops issuing requests at 80%. `sva_`: "In 95% of cases it is because you had a large context for which the cache expired." Two `good first issue` tickets landed at 21:40 and 21:42 UTC last night from an account that filed the same kind of ticket on Restoredrill at 21:41 — a drive-by across the day's Show HN column, not a contributor. Reach for it when the 5-hour window closed ten minutes into a session and `/usage` gives you a percentage without a cause. Delete the habit of guessing which project did it. Tradeoffs: Claude Code only, and the two open issues are the Cursor and Windsurf request; the diagnosis is the model reading numbers a script produced, so the verdict is as good as the model's reading; the weekly cap is metered on the server and the local transcripts are a proxy, with a "placeholder rate" for some models by the README's own admission; `--copy` copies the scripts into your skills directory, which is the point — read them, it's an evening; and a usage-billing company shipping a token-forensics tool is both a plausible origin story and a funnel.
github.com/kelviq/tare

02

RealDiff — runs the tests on both sides of the PR and diffs what the functions returned

An MIT tool from Nitin Issac Joy, an engineer in Microsoft's Developer Division in Bangalore, shipped as a Docker GitHub Action (`action.yml`, `gate: warn-only` by default, `fail-on-findings` if you want a red check), an Azure Pipelines integration, and an MCP server over completed runs. It checks out both branches, builds each with instrumentation woven in, runs the same test suite on both, records every observed method call's arguments and return value, and diffs the two traces. Run-to-run noise is subtracted by running the base more than once; a changed value deep in a call tree is reported once, at "the first changed behavior whose own descendants behaved identically," not at every caller that carried it up. Six tracers — .NET via Mono.Cecil IL weaving, Java via a javaagent and ASM, Node, Go by AST rewrite, Rust by a cached `syn` rewrite, and Python 3.12+ via PEP 669 `sys.monitoring`, added in v0.4.0 yesterday — emit one NDJSON contract, `realdiff.trace/1`, and a single-pass Rust engine consumes it. The worked example is the whole pitch: a PR replaces `OrderBy` with `List.Sort` to save an allocation; `List.Sort` is not stable; `SelectDiscount(100)` now returns `Z_CLEARANCE` instead of `A_SEASONAL` and the order total goes 85 → 60; neither function is in the diff; two of the three tests still pass because 60 is positive and below list price. Created August 20 as BehaviorDiff, renamed August 26, four releases in eight days, 186 commits, one contributor. 31 stars; 39 points, 8 comments. The `evidence/` directory is why it is on the slate. `FINDINGS.md` records the measurement behind the architecture: the first prototype patched .NET at runtime with Harmony, and against Cecil's build-time weaving, 29 of 111 methods reported `Patched` and emitted zero events — 6,157 events missing, invisible to any consumer, which is the difference between "instrumented" and "observed." Cecil's overhead was 1,099 ms against a 1,069 ms baseline; Harmony's was +49%. `comment-policy-summary.json` is the noise floor: 22 real, already-merged pull requests from FluentValidation (15), JSON-java (4) and GuardClauses (1); 20 analyzed, 2 refused with a reason (`no_changed_member_attribution`, `orphan_call_tree`); 463 raw unexpected members and 6,210 call sites collapsed to zero eligible — no default comments on any of the twenty — while all five planted known-true fixtures stayed visible. That is the number under the README's "why the output is not noise," and it lives in a JSON file rather than a sentence. The README itself did not survive first contact: `vlovich123` read it "a few times" and could not tell what the tool did; the maker's reply was told, twice, to be written by him; and the commit log shows the fix within hours — "Move README examples to the top" at 13:22 UTC, "Explain runtime trace comparison up front" at 15:32. What it cannot see is code your tests do not execute; the manifest inventories unexecuted members so that absence is reported as absence, not as "unchanged." Reach for it when the agent's pull request says "refactor, no behavior change" and your suite asserts `total > 0`. It is the runtime half of the sentence that opened yesterday's JetBrains issue — "every number below comes from code that ran" — pointed at the PR instead of the rulebook. Tradeoffs: no tests on the changed path, no findings, and it says so; every run is three builds and three test runs, and the container proof puts the demo at 17 seconds cold and 8 warm before your suite's own time; the all-language image is 899 MB; the .NET demo wants PowerShell 7; a language-neutral trace contract with six tracers is a great deal of surface for one person eight days in; and the ranking policy — unasserted findings above caught changes — was decided in four commits yesterday afternoon and may be different next week.
github.com/issacnitin/RealDiff

03

Restoredrill — restores the backup into a throwaway container and writes the auditor's JSON

An MIT Go CLI — `go install github.com/ahmadpiran/restoredrill/cmd/restoredrill@latest`, v0.1.0 since August 9 — and a composite GitHub Action that runs it on a schedule and uploads the report as an artifact. From a YAML config it takes the newest backup from a local path or an S3 prefix (after checking the archive header, so a checksum sidecar uploaded later cannot win by being newer), restores it into a disposable Docker Postgres, and runs checks in tiers: prechecks (size, header, RPO freshness), structural (restore finished, enough tables, sequences in sync), read-path (row counts, data freshness, your own SQL assertions), RTO against a target, and whether the container came up at all. Every check is fail-closed — "if a check can't run, that counts as a failure, not a skip" — and a broken Slack webhook is a finding and a non-zero exit even when the drill passed. The report is the product: every field always present, `backup_candidates_considered` listing each object it looked at and why it skipped it, `triggered_by_user` so a manual run carries the same accountability as a scheduled one, and every timestamp a literal `"YYYY-MM-DD HH:MM:SS UTC"` string because "most auditor workflows end in copy-pasting into a spreadsheet." A Prometheus textfile metric, `restoredrill_last_run_timestamp_seconds`, is the "verified within N hours" alert that catches a drill that quietly stopped. Requirements: Docker and a `pg_dump -Fc` or plain SQL dump. 44 points, 22 comments; 76 stars; four commits. Four commits is the story. `sebmellen` quoted the README's "worth naming plainly" line and asked why the prose read like a model; the maker: "I used ai for a chunk of the build and writing. However, the actual work behind it wasn't AI-generated" — the report schema came from about thirty interviews with people who test restores for a living. `progbits`: "Why did you remove Claude's (or whatever you used, but looks like opus to me from the style) co-author info?" The maker: "I don't have a good defense here" — he wanted a clean history. The log confirms it: four commits, no `Co-Authored-By` trailers, an "Initial commit" on August 9 that contains the tool. He said he would tighten the README "right now" and did it twice, at 15:03 and 20:35 UTC; the section that names Databasus and BackupDrill is still there, without the word "plainly." The substantive objections were better than the stylistic ones. `sebastiangrill`, who has consulted on Postgres for a few hundred customers: "nearly nobody uses dumps as backups" — v1 is `pg_dump` only, pgBackRest is on the roadmap, and one interviewee's restore went from 18 hours on dumps to 2 on a physical backup tool. `csydas`: Veeam SureBackup already does isolated restores; the maker: it proves the VM boots, not that "your orders table has the right row count." `lbrito` supplied the failure the read-path tier exists for: a disk fills, the dump truncates mid-file, and psql executes it to the last line without a word. `mannyv`: "This tool's existence is vaguely horrifying." Reach for it when the SOC 2 control says "restores tested quarterly" and the evidence is a policy document with a date someone typed. Delete the cron job that `pg_restore`s into a scratch database and greps the log for ERROR. Tradeoffs: dump-based only — pgBackRest, WAL-G and RDS snapshots are not what it drills, which for many shops means it drills a backup they do not keep; the restore target is a container on the runner, so the RTO it measures is your CI box's, not production's; one author with one public repository, a squashed history and a promise to stop squashing; and the README you read today is the third in thirty hours.
github.com/ahmadpiran/restoredrill

04

Opslane — runs the fix in a sandbox before the PR exists, and its AGENTS.md lists the ways its own gate lies

AGPL-3.0 for the server, worker and dashboard, MIT for the browser SDK. `docker compose up -d --wait` brings up Postgres, MinIO, a Go ingestion service on :8082 and a Node worker. The SDK (React, Vue, vanilla JS) captures errors, console, network and session recordings with input masking on by default; ingestion maps minified traces through your source maps and groups them; issues are ranked by how many users hit them and qualified by reading your repo; the worker investigates, writes a fix, and runs it in an E2B sandbox with your build and tests — "everything that passed before has to pass again, and a second model reviews the change" — and only then opens a pull request. Anything short of that arrives as a written reason and a `needs_human` incident. Session recordings are also read for rage clicks, dead clicks and abandoned forms, which is how it caught "a dropdown that closed itself when clicked" in an early customer's onboarding with no exception thrown. An MCP server means Claude Code can ask what broke for users this week. Three outside services: Anthropic to investigate, E2B to run, GitHub to push. The name has a history: the same account, `aray07`, launched "Opslane" on HN in July 2024 as a Datadog alert classifier (319 points); this repository was created July 14, is a different product under the same name from the same Robinhood alumnus, and ships date-versioned releases — v26.8.11 last night, one a day this week — with images pinned by digest and "no latest tag." 26 points, 4 comments; 30 stars; 425 of 473 commits are the maker's. `staticshock` pointed at PostHog's "Scouts," which replay sessions and put up PRs today; the maker called it "good validation." The document to read is `AGENTS.md` (`CLAUDE.md` is one line, `@AGENTS.md`). Under "Verification," after the full repository gate: "Two ways that gate reports success without having run: `pnpm test` marks database-gated suites *skipped*, not failed, when `DATABASE_URL` is unset. Export it before treating a green suite as proof, and read the skip count rather than the pass count," and "`dist/` is gitignored but survives between runs, so a local build proves nothing about a clean checkout." A product whose whole promise is "only a PR if it can verify the fix" wrote down, for its own agents, how its own verification returns green without running — which is the most credible sentence about verification on today's slate, and it applies to the fixes the worker ships as much as to the repo. The rest of the machine-facing layer is a specimen of one person running an agent-built product with the gates on paper: `TODOS.md` holds deferred work in What / Why / Pros / Cons / Depends-on form ("Gate session automation by environment" is a real cost leak, documented rather than hidden); `.verify/spec.md` is acceptance criteria for a button hierarchy written for a browser agent, with `<!-- clarified: ... -->` comments answering the agent's questions inline. PR #427, yesterday: "hosted events + MCP were pointed at api.opslane.com, which serves a Cloudflare 403" — so a hosted version exists; the docs page I could read has no price on it. Reach for it when the Sentry backlog is where bugs go to be marked resolved — the maker's own account of quarterly bug bashes ending in "declare bankruptcy" — and you would rather the agent bring a pull request that passed the suite than a stack trace. It replaces the bug bash, for JavaScript front ends. Tradeoffs: "self-host" means the database and the recordings; the thinking, the sandbox and the push all leave the building; "verified" means the existing tests passed again and a second model agreed, which is exactly the gate `AGENTS.md` warns can be green on skips; your users' sessions are the input and the privacy surface, masked by default and stored in your MinIO; front end only today; 30 stars on a name whose HN history belongs to a different product; and AGPL on the parts that matter.
github.com/opslane/opslane

05

experiential — a 0%-markup gateway that turns your traffic into a router by simulating the runs it never made

Apache-2.0. `pip install experiential` then `exp` — a setup wizard, a local OpenAI-compatible and Anthropic Messages gateway on `127.0.0.1:8000` with a native Rust data plane, a one-time key, a $50 default budget per command. The hosted platform serves the same API at `api.experientiallabs.ai/v1`: your own keys pass through free, marketplace credits are billed at provider price, "0% markup," budgets and allowlists per identity. 1,000-plus models, refreshed daily "via a codex agent that opens a PR." v0.7.0 shipped at 09:53 UTC this morning, eight hours after v0.6.1: Anthropic extended thinking passed through with byte-exact signature round-trips and OpenAI's encrypted reasoning carried intact, so "Claude Code and Codex can now run against the gateway"; fail-fast connect and time-to-first-byte timeouts; failover on a response-header stall "instead of redialing a dead lead." 188 points, 37 comments; 653 stars, 58 forks, 450 commits, five contributors including a Devin bot with 55; Y Combinator. Seen before: the same org's `world-model-optimizer` crossed our pool on July 27 as "distill and serve models with frontier quality for half the cost." The maker's history note in the thread — "we pivoted and only started building the gateway recently. Before that we were building research infrastructure that now powers the intelligence features" — is that repository. The intelligence feature is the claim to read slowly. `exp build`: from OpenTelemetry traces, "mine representative real tasks, use text world models to simulate rollouts for various models, apply an LLM judge, and fit a nearest neighbor classifier on top of an embedding of a prompt to decide the optimal model for each request." The router is fit on simulated runs, graded by a model, against a rubric you calibrate in a TUI; `exp optimize model` then fine-tunes an open model on the traffic through Tinker. The maker's own qualifier: "Usually this can map out a better pareto curve on cost/quality than just calling single models but it's not perfect," and the usual conclusion of routing is "this one model is actually at the pareto front for this task, just use it always" — at which point `cameronh90`'s reply applies: then let the harness pick per subagent and don't route in the gateway at all. Two latency numbers exist. The announcement: "under 1 ms for BYOK requests." The repository: a `gateway latency` badge fed by a workflow whose first comment reads "Mock-isolated gateway latency report. No paid providers and no secrets," which ran on a GitHub runner at 12:00:29 UTC today and published 16.9 ms. They measure different things — added overhead on the maker's hardware versus a mock round-trip on CI — and only the second is public. `rdslw`: "boldly claiming being open source in literally first sentence, while cowardly hiding on-by-default telemetry in truly last paragraph" — anonymous PostHog, `exp config telemetry disable`. The pricing page puts per-prompt optimization, caching and "a model you own, trained on your traffic" under Enterprise, "even for self-hosted deployments"; the Apache-2.0 repository ships `exp build` and `exp optimize`. I did not run them to find where the gate is. Reach for it when you are paying a router a percentage for a config file's worth of routing, or you want Claude Code and Codex on one key pointed at your own providers and local models. It replaces LiteLLM for the gateway; the router is the bet, and the bet is on a simulation. Tradeoffs: two months old and shipping twice a day, with this morning's notes describing the failure modes they fix; the routing evidence is a model's judgment of a model's simulation of your traffic, which is the same species of claim as a README; cache economics across models is the open question in the thread and the answer is "rarely switch"; telemetry is on until you turn it off; and the 16.9 ms is the number you can check while the 1 ms is the one they said.
github.com/experientiallabs/experiential

06

**Also on the desk.** Proval (12 points) is a self-hosted review agent in one image — `ghcr.io/seoes/proval`, Bun, Hono, SQLite, ports 7900 and 7901 — that reviews pull requests on GitLab, Forgejo and GitHub with any OpenAI-compatible endpoint including Ollama; AGPL, 363 commits from one author, and the one reviewer on today's slate that reads the diff rather than running it. Its docs disagree with themselves about Anthropic (README "planned," `AGENTS.md` supported, the Show HN "Claude API"), and one user filed three real bugs overnight: GitLab multi-line comments 400 on `line_code`, a repository picker with no search, and `export-ignore` paths invisible to the reviewer because the workspace is built from an archive. hrdx (33 points) is a Go terminal multiplexer for agent panes — sidebar spinners that turn orange when an unfocused agent finishes, persistent PTY sessions, a socket API — whose maker answered "why not tmux" with "if tmux already fits your workflow, there may be no reason to switch"; inspired by herdr, v0.0.33. FnScribe (15 points) is GPL-3 offline dictation for macOS in Tauri and Rust with a bundled Whisper `small.en`, alpha, 12 stars; `djx22` spotted a hand-rolled resampler that looks model-written and suggested rubato. Derive (11 points) publishes an HTML page with no account — `curl -F file=@page.html https://derive.to/v1/drafts` — under FSL-1.1-ALv2, "Fair Source," 1,052 commits and 29 open issues. Revalvo (Product Hunt, 75 votes) is a local-first, in-browser prompt workbench with BYOK and no hosted database; PageIndex (170 votes) is the structure-indexed document RAG that first crossed our pool on July 26 as a Python trending repo. Polign (33 points, Tuesday) serves 12.5 million Wikipedia passages from S3 at 37 MiB RSS from a closed-source binary, and "closed source is a non-starter" was the thread. IndexFlow (22 points), Rust SEO-indexing crates, has 239 KB of SQLite `-wal` and `-shm` files committed to its repository root. *Verification notes: star, fork, commit, contributor, release, issue and pull-request figures come from the GitHub API on 2026-08-28; HN points and comments from the Algolia API; Product Hunt votes from the launch pages. tare's numbers (1,555 sessions, ~190 requests per minute, 33 million tokens, 87% / 9%) are the maker's blog post as read today; its author identity is the `sachinchoolur` profile and the lightGallery repository; `SECURITY.md`, `SKILL.md`, `CLI.md` and `plugin.json` were read at this morning's commit; the drive-by issues are tare #1/#2 and restoredrill #1, all by `yunaremaia`, timestamps from the API. RealDiff's measurements are `evidence/FINDINGS.md`, `evidence/comment-policy-summary.json` and `evidence/CONTAINER-PROOF.md` on `main`; the six tracers and the BehaviorDiff rename are `CHANGELOG.md`; the maker's employer is his GitHub profile; the demo (`tools/verify-diff.ps1`, .NET 8 + PowerShell 7) was not run on this desk. Restoredrill's commit count, author trailers (none) and the two README commits are the API; the thread quotes are the August 27 discussion. Opslane's `AGENTS.md`, `CLAUDE.md`, `TODOS.md` and `.verify/spec.md` were read on `main`; the 2024 Show HN is Algolia item 41086620; PR #427 is the API; the hosted price was not found on docs.opslane.com. experiential's badge is `gateway-latency.json` on the `badges` branch (16.9 ms, cacheSeconds 300) and the workflow is `.github/workflows/gateway-latency.yml`, last run 12:00:29 UTC today, success; the pricing tiers are the company's pricing page; the July 27 sibling repository is the seen-before SQL. The machine-facing-docs check ran on all five picks: constitutive on tare (`SKILL.md` sets the rules, `SECURITY.md` tells you how to test them), evidentiary on RealDiff (an `evidence/` directory rather than an agent file), candid-about-its-gates on Opslane (`AGENTS.md` names the two false greens), procedural on experiential (`AGENTS.md`: a 999-line file limit, an AST gate on import direction, `CLAUDE.md` deferring to it), and absent on Restoredrill, whose history was squashed instead. Seen-before SQL keyed on `fetched_at`: experiential's sibling July 27 (hn:show), PageIndex July 26 (github:python), screenpipe May 19; tare, RealDiff, Restoredrill, Opslane, Proval, hrdx, FnScribe, Derive and Polign are first-time. Yesterday's sub-watch: JetBrains #13, #14 and #20 remain open, zero maintainer comments, last push August 19. Today's pool was 58 — hn:front 28, hn:show 11, producthunt 18, and github:trending 1 row, the all-languages feed only (God's Eye View, 9,962 stars, MIT, open-sourced August 24, a browser OSINT globe and not a builder tool); the series is now 15 → 15 → 1, and Reddit is dark for the twenty-second consecutive week.*

One of these,
every weekday.

Free. Unsubscribe by replying with one word. No tracking pixels in the email.