recensa
Recensa is a self-hosted web viewer that indexes Claude Code session transcripts into a local SQLite database, enabling full-text search, replay, and audit of all past agent conversations without uploading data anywhere.
It introduces a rigorous 'loop engineering' pattern where the agent never judges its own work, uses fresh context each round, and can be scheduled on local schedulers or Modal cloud with typed guards and exit codes.
Loop.js is the framework for loop engineering.
You state a goal and what "done" means. The engine runs an agent at it, Round after Round — fresh context every Round, memory read back from disk — until a separate, skeptical judge rules the bar met. Run it from a terminal, schedule it — on your machine or deployed to Modal's cloud — or embed it in a product: same engine, same guarantees.
import { Loop } from "@loop.js/core"
const loop = Loop.define({
goal: "Build a playable 2D platformer",
verify: "It builds clean, `bun test` passes, and the game boots to a controllable character",
limits: { rounds: 20, usd: 10 },
})
const exit = await loop.run().done()
// { settled: true, verdict: { ok: true, reason: "…" } } — the judge said done, not the worker
Loop engineering is designing the system that prompts an agent instead of prompting it turn by turn: a goal, a way to work, a way to verify, a stop discipline — the loop does the iterating. loop.js is that system as a framework: what is loop engineering →
Running an agent in while (true) is one line. Whether that loop ever converges is
everything around it — and that is the part loop.js owns:
| The pain | The machinery |
|---|---|
| The agent says "done" when it isn't | A separate Verify agent — own session, own (cheaper, if you like) model, read-only by default — judges every Round. Only its verdict settles the Loop; the worker never grades its own homework. |
| Long sessions bloat and drift | Every Round starts with fresh context and reads its memory back from disk — the worker's own handoff notes. Round 40 starts as fresh as Round 1. |
| Retries that don't converge | A "not yet" verdict carries a mandatory reason, fed to the next Round. A goal that can never pass settles as an explicit give-up instead of burning the budget. |
| Money runs away | Declared guards: total usd (step-granular ledger), rounds, per-Round timeout — and they default tight ($1, 3 Rounds, 5m). Every ending is a typed Exit with its own process exit code. |
| Crashes, restarts, double triggers | All state lives on disk; loop run is idempotent and resumes from the cursor. The Lock (co |
A loop engineering framework — state a Goal; Rounds run until a skeptical, read-only Verify agent settles it.
Similar projects matched by category, topics, and programming language.
Recensa is a self-hosted web viewer that indexes Claude Code session transcripts into a local SQLite database, enabling full-text search, replay, and audit of all past agent conversations without uploading data anywhere.
OpenClaude is an open-source CLI coding agent that runs on any platform and supports a wide range of LLM providers, offering the same tools and workflows as Claude Code.

A collection of notes on building coding agents, derived from the production development of the desktop agent Reina, with each mechanism simplified into a zero-dependency, single-file Node.js demo.