Built to outgrow itself.

$ npx loopy init
cycle 11cycle 12cycle 13cycle 140.20.61.0dev scorekept · 0.76
48 experiments · 8 kept · best 0.76example data

the mark

Two laps, one line.

The loop is two o's drawn as one pen line: a small one, then a bigger one, crossing over and under in the middle. It reads as "oo" inside the name and as a loop on its own, and it says the whole idea in one stroke: every lap ends a little ahead of the last.

lap nlap n+1

Each lap a little bigger

The second o is larger than the first, both sitting on the baseline. The next lap always comes out ahead of the last.

Over, then under

At the crossing the new lap passes over the old one, the way a pen line does. It's what makes the loop drawn rather than set.

Amber means kept

The loop is the only amber in the logo, the same amber that marks a kept result on every chart.

wordmark

The loop is the oo.

The letters are plotter strokes: one pen, one weight, round ends, every letter on the same monospaced grid. All of it is vector, so the wordmark renders anywhere without a font, a GitHub README included.

strokeOne pen weight, round caps
gridMonospaced: every letter on a 64-unit advance
colourLetters in Ink or Paper; the loop always Amber
clear spaceOne x-height on every side

icon

The loop on its own.

Out of the wordmark, the loop is the icon: amber on an Ink tile for apps and avatars, Ink on paper where colour isn't available.

App icon, avatar and favicon at 96, 48, 28 and 16 px. The stroke thickens as the size drops.

notebook marks

Eight marks run the board.

Each stage of a loop has a mark you could draw with a pen, and a GitHub label colour ready to paste. Boards, the feed and README badges all use the same set.

loopy:signalA new input: request, feedback, paper or releaseD9CFE6
loopy:proposalA proposed change, linked to its signalsB9A6CF
loopy:experimentA tried change, being scored6B5579
loopy:keepPassed every gate: the point turns amberEE9A2E
loopy:revertStruck out: failed a gateD9473B
loopy:needs-humanKept, but waiting for an approverF2C94C
loopy:shippedMerged; the line steps up2B1A33
loopy:source/*Where a signal came fromEFEAF4

colour

Lilac paper, aubergine ink, one amber pen.

The page is graph paper and the ink does the writing. Amber is reserved for the loop and for what got kept. Red appears only when something is struck out.

Paper#EFEAF4Ground
Ink#2B1A33Lines and text
Grid#CFC2DDRules
Pencil#857591Tried, quiet
Amber#EE9A2EThe loop, kept
Red#D9473BReverted

type

A journal, a manual and a log.

Newsreader for headlines, like the title of a paper. IBM Plex Sans for reading. IBM Plex Mono for anything a machine wrote: scores, labels, manifests.

Aa

Newsreader · IBM Plex Sans · IBM Plex Mono

All open-source, all on Google Fonts.

58 / newsKeep what wins
36 / newsCycle 14 kept 3 of 12
19 / sansThe sealed score held, so the change shipped.
15 / sansEvery change links the signal that caused it.
13 / monoloopy:keep · recall@1000 +0.4

in use

Ready for the repo.

The social preview, badges, command-line output and favicons for technodotventures/loopy.

GitHub social preview, 1280 × 640.

loopyL2 governed cycle14 · 3d improving with loopy

README badges: conformance level, the live cycle, and "improving with loopy" for projects that run it.

$ npx loopy init ∞ loopy 0.1.0 cadence every 3d (Australia/Sydney) budget 20M tokens · $150 per cycle evaluators locomo-dev, conformance, locomo-sealed runner gh-aw (claude) ● wrote loopy.yml, .loopy/ and 5 workflows

voice

Lab notes, not hype.

Loopy talks like a good lab notebook: what was tried, what was kept, what it cost. A little wry, always exact.

Try everything. Keep what wins.

Unleash infinite self-improvement.

Kept 3 of 12. Spent $41 of $150.

Your loop crushed it this cycle!

Struck out: dev score up, sealed score down.

Oops, something went wrong.