BANTAM FACTORY

Your model is the worker.
Give it a factory.

See it work
One chicken struggles to draw a person. In BANTAM FACTORY, a line of chickens each adds one simple part, producing complete drawings.
Big jobs. Chicken problems. A whole job becomes a line of small, checked steps.

Same 27B. Less waste.
Faster finishes.

Selected fights. Both completed the job.
NVIDIA RTX 4090 · 24 GB · Same local weights.

≥ means at least: Hermes has one request without token counters. Its saving is measured against the recorded requests alone.

YOUR CODEX ACCOUNT. A BETTER FACTORY.

More from Astra.

Put Codex inside BANTAM FACTORY. Across two paired runs, the same Astra finished sooner with fewer tokens. Every delivered tool passed all five acceptance checks.

See Astra’s work Second paired run ↗More Astra fights ↗
44%less input
25%less output
21%less time

73,472 prefix-cache tokens reused.
Uncached input: Factory 22,760 · CLI 25,860
12% less uncached input.

Job planner · Astra, medium effort · two paired runs.
Prefix-cache tokens are included in input.

Build an app. Fix a stubborn bug. Automate the boring part. BANTAM FACTORY gives your model the tools, context, and checks to finish the job—on your own hardware, or with your Codex account.

git clone https://github.com/BANTAM-ADMIN/bantam-factory.git
cd bantam-factory
npm ci
docker pull alpine:3
npm link
bantamfactory setup

Then open any project, run bantamfactory, and ask for what you want.

Linux / WSL2 · Node.js 20+ · Git · Docker
Setup connects your local model or signed-in Codex CLI.

CODEX ASTRA · INSIDE BANTAM FACTORY

A design becomes
a world you can walk into.

ASHWORTH ST. A subway survival game with a moving train, animated enemies, three weapons, and procedural sound. Built in the factory. Ready to play.

ASHWORTH ST gameplay: a detailed subway platform with fluorescent lighting, tiled walls, and a first-person weapon.ASHWORTH ST LAST STOP · PLAYABLE PREVIEWExplore & play

Give it a job.

Open a folder and ask, the way you'd ask Claude Code or Codex: build me this, fix that, write the script that does the boring part. BANTAM FACTORY builds a factory around your model and hammers out the work to your spec, fast.

Astra inside BANTAM FACTORY. Moonstack in 5m 57s, with 13 passing tests. 78% less input and 12% less time than the saved native Astra build.

Play the latest Astra build ↗

Local 27B, factory Astra, and native Codex. Choose a build ↗

Check. Repair. Check again.

A test result is the factory's instruction, not its report card. When the suite fails, the failing test and its reason go straight back to the worker as the next thing to fix. Reading and reasoning do not count as verification; running does.

Building for the web? Astra can check desktop and phone layouts in one preview action. Each screen size gets its own result, so a working desktop can't hide a broken phone.

Stream framer, a repair job. The starter dropped the last line of a stream that arrived one byte at a time. The failure named the test, the worker made two edits, and the suite passed.

Stations that push back.

Between the model and your files sit stations. They compare an edit against the file before it lands, list every other place a changed symbol is used, and notice when the worker has edited eight times without running anything. Then they say so, in the same feed the model reads.

Each message here was printed during a recorded run. None of them are decoration: a station that refuses an edit refuses it, and a station that runs the tests for the worker reports the result.

Reviewed before it's called done.

A supervisor reads the delivered work against the job and proposes a case it might get wrong. The worker has to run it. A console message is not enough to close the case: the factory keeps an executable assertion as regression cover, then runs your check once more on the final files.

Here the supervisor questioned fractional byte limits. The implementation already rejected them, and the proof stayed in the workspace as a contract check.

Put it in the ring.

A fight card is one job, one starting point, independent checks, and a recorded clock. Same task, same local model, different harness. Bring your own competitor and run the card yourself; the terminal prints a local page with every action and every file each contender delivered.

Context packet: BANTAM FACTORY finished in 58.1 seconds. Hermes, running the same Qwen 27B, took 512.2 seconds. Open the card.

A workshop with walls.

You choose the project the factory can edit. Its file tools refuse paths that escape that workspace, including through symlinks. Shell commands run in Docker by default, with networking off and the container's system files read-only.

Need something from the internet? The interactive session asks you first. Here an edit outside the project is refused, and a declined network request stays blocked. The factory can work on the files inside the project you gave it.

Your hardware. Or your Codex account.

Run a local model through llama.cpp, or point the factory at a signed-in Codex CLI. Setup checks Node, Docker, and the model server, and offers a guided model download for supported NVIDIA GPUs. Vision and MTP acceleration depend on your model and server. Compatible companions are optional; nothing is bundled.

See Astra, Sol and Terra inside the factory ↗

Shell commands from the model run in a Docker sandbox with the network off. An interactive session asks before it turns the network on.

The factory improves the factory.

Every job leaves a record of friction: rejected edits, invalid outputs, runs that overran their turn budget. The self-improvement cycle reads that record, picks a weakness, builds a candidate change in a separate copy, and tests it against the protected baseline before anything is promoted.

You start the cycle. It is experimental, and nothing changes the running code on its own. How a cycle works.

SAME MODEL. SAME JOB. DIFFERENT HARNESS.

Give Codex
a factory.

Put Astra, Sol or Terra to work with the Codex account you already have. The factory keeps the next step focused and checks the result. Here’s the same work in both harnesses.

Astra

2 paired runs
46%
less input1.2× faster
BANTAM FACTORY80,952
Native CLI150,656
Astra: recorded totals across 2 paired runs
Recorded totalsFactoryCLI
Output tokens4,8265,911
Prefix cache tokens38,272128,512
Wall clock176.2 s215.8 s
Jobs completed2/22/2

Sol

2 paired runs
44%
less input1.8× faster
BANTAM FACTORY154,939
Native CLI277,718
Sol: recorded totals across 2 paired runs
Recorded totalsFactoryCLI
Output tokens6,53412,621
Prefix cache tokens103,168241,152
Wall clock245.7 s445.0 s
Jobs completed2/22/2

Terra

1 paired run
73%
less input2.3× faster
BANTAM FACTORY50,313
Native CLI188,100
Terra: recorded totals across 1 paired runs
Recorded totalsFactoryCLI
Output tokens1,9315,548
Prefix cache tokens35,072168,192
Wall clock52.8 s123.4 s
Jobs completed1/11/1

Context Packet · medium effort · identical starting files and independent checks. Repeats are summed. Prefix cache tokens are included in input tokens.

What about the work itself? Play the two Astra builds ↗
Let Astra run the floor.

Astra found a blind spot in the decoder’s tests. Sol’s revised suite caught a planted bug that the other three suites missed. Open the complete work and compare both models’ tokens.

Context packer · four workflows ↗Stream decoder · four workflows ↗Snapshot checker · four workflows ↗

Give the chicken a better job.

A jig holds the work. A station narrows the task. A check catches the wrong fit. That’s the factory formula: build a process the worker can get right.

A chicken tries to force a square block through a round hole. It builds a sorting station that separates blocks from balls, then easily fits a ball through the hole.
Less wrestling. Better tooling.View full size ↗

SMALL MODEL.
HEAVY HITTER.

Same job. Same model. See what the factory changes.

A copper-feathered bantam rooster with a sweeping dark tail.

11 recorded jobs. The same work order, starting files, and independent checks for each contender. Local contenders use the same Qwen 27B weights; Codex uses GPT-6 Astra through its own CLI. Open any result for the complete record.

Recorded outcomes and wall time by work order and harness
JobBANTAM FACTORYQwen 27B, localHermessame local modelOpenCodesame local modelDeepSeek Harnesssame local modelPisame local modelCodexGPT-6 Astra, cloud
Context packetBUILD58.1 sPass · 5/5 checks512.2 sPass · 5/5 checks600.0 sOutput only · 5/5 checks600.0 sOutput only · 5/5 checks350.7 sPass · 5/5 checks110.6 sPass · 5/5 checks
Patch transactionEXTEND81.8 sPass · 5/5 checks600.0 sTimed out · 5/5 checks559.0 sPass · 5/5 checks600.0 sOutput only · 5/5 checks457.2 sPass · 5/5 checks90.3 sPass · 5/5 checks
Stream framerREPAIR432.7 sPass · 5/5 checks600.0 sTimed out · 0/5 checks600.0 sTimed out · 0/5 checks552.0 sfail · 0/5 checks600.0 sTimed out · 1/5 checks160.7 sPass · 5/5 checks
Receipt reducerBUILD112.5 sPass · 5/5 checks577.6 sPass · 5/5 checks480.1 sPass · 5/5 checks442.7 sPass · 5/5 checks308.1 sPass · 5/5 checks114.1 sPass · 5/5 checks
Snapshot driftEXTEND124.3 sPass · 5/5 checks497.0 sPass · 5/5 checks403.2 sPass · 5/5 checks465.8 sPass · 5/5 checks600.0 sOutput only · 5/5 checks146.2 sPass · 5/5 checks
Job plannerREPAIR193.2 sPass · 5/5 checks600.0 sTimed out · 2/5 checks324.1 sPass · 5/5 checks483.5 sPass · 5/5 checks483.5 sPass · 5/5 checks118.4 sPass · 5/5 checks
Redaction planBUILD133.2 sPass · 5/5 checks600.0 sTimed out · 5/5 checks341.6 sPass · 5/5 checks391.8 sPass · 5/5 checksNot run yet117.0 sPass · 5/5 checks
Retry budgetREPAIR141.7 sPass · 5/5 checks562.0 sPass · 5/5 checks375.4 sPass · 5/5 checks445.8 sPass · 5/5 checksNot run yet137.3 sPass · 5/5 checks
Glob selectBUILD264.1 sPass · 5/5 checks600.0 sTimed out · 0/5 checks600.0 sTimed out · 0/5 checks551.4 sfail · 0/5 checksNot run yet155.8 sPass · 5/5 checks
Path scopeEXTEND75.1 sPass · 5/5 checks275.6 sPass · 5/5 checks424.1 sPass · 5/5 checks313.6 sPass · 5/5 checksNot run yet107.9 sPass · 5/5 checks
Semver rangeREPAIR399.9 sPass · 5/5 checks600.0 sOutput only · 5/5 checks600.0 sTimed out536.4 sPass · 5/5 checksNot run yet136.2 sPass · 5/5 checks

Times are wall clock. “Output only” means the files passed the checks, but the attempt did not complete within the recorded limit. Missing attempts are marked “Not run yet.”

Local rig: NVIDIA RTX 4090 · 24 GB. Recorded BANTAM FACTORY generation speeds: 82.6–105.2 tokens/second; other local harnesses: 60.6–77.8. These ranges use complete saved generation timings. Each card includes the hardware, timing coverage, and model settings.

Open the fight gallery

Before you install.

A few things worth knowing so the first run goes the way you expect.

THE LAB IS OPEN

Talk to the lab.

Questions, ideas, or business inquiries? We’d like to hear from you.

bantamfactory@gmail.com