Body
OpenCode
The app you type into. Free desktop build, free models bundled — no key, no credit card. DeepSeek Harness does the same job for the warm-up, which proves REA isn't tied to one app.
Outskill · full build · 26:44
DeepSeek V4.1 Flash and GLM 5.3 Flash — pointed at Claude Code through REA's 229 read-only tools — reconstructed a coding agent with its own engine, its own window, permissions, saved chats and a terminal panel. No paid API. No subscription. No hand-written code.
A private learning build. Not for sale, not affiliated with Anthropic.
> get my computer ready and install REA
print one line saying what it is and why
✓ rea installed · 229 tools
✓ ghidra 12.1.4 (12.2 rejected by check)
✓ notepad.exe → 853 functions mapped
! error 429 — openrouter daily cap
→ provider switched nvidia / glm-5.3-flash
→ read files + saved versions, carry on
✓ self-check 77/77 → 102/102
→ v1.0 shipped · 0 lines typed by me
01 — The stack
Every AI coding tool has a body and a brain. This build adds a third piece: a detective that reads software instead of copying it.
Body
The app you type into. Free desktop build, free models bundled — no key, no credit card. DeepSeek Harness does the same job for the warm-up, which proves REA isn't tied to one app.
Brain
One of the strongest free models for long terminal jobs. It ran out at 1:00 into part two with a 13-hour reset. GLM 5.3 Flash took over without losing a single finished feature.
Detective kit
229 tools for looking inside software. It doesn't copy code and doesn't write code — it opens an app, studies how it's built, and reports back with proof. MIT licensed.
REA maps the target: bundles, tool list, docs, even live streaming behaviour.
The AI writes spec.md — every feature, one test each, a three-part plan.
One prompt, repeated. Next unfinished item. Commit after every feature.
A robot hand drives the real window. Pass or fail — never "should work now".
02 — The build
Every timestamp links to that exact second of the video. Nothing is hidden — the errors are in here too.
A developer rebuilt Adobe's biggest products with eight paid Claude agents. So the bar moves: free models, harder target — the coding tool itself.
OpenCode + a free brain + REA. The installer asks exactly one question, then picks its own engines: a JavaScript analyzer for web-tech apps, Ghidra and Java 25 for native binaries.
REA only works with Ghidra 12.1. The AI had grabbed 12.2, the check flagged it, and it swapped in 12.1.4 alone — then proved it on Notepad: 853 functions mapped, no source code.
Site of the Year. Snowy mountains, floating ice, sound. The 1.5 KB page turns out to hide a 1.5 MB three.js app — three scenes, ~100 files.
The folder held three files. One line back — never say a file is saved unless a folder listing shows it — and the retry produced 105 real files, 17.7 MB.
Not a website. The Claude app is the window; Claude Code is the engine inside it. Both get rebuilt, renamed Kiln, on the same free keys.
Read the files, build the next unfinished item, run the self-check. 29/29, then 77/77 — engine, tools, CLI mode, window. Installed, shortcut created, opens in a quarter second.
Four spec'd features never existed: /compact, helper agents, MCP servers, hooks. The check only tested what the AI chose to build, not what it was told to build.
03 — The code
Six prompts ran the entire build, plus one warm-up. Transcribed from the video's narration and on-screen text. Copy, paste, replace the nouns.
Get my computer ready and install REA from its official GitHub.
Ask me one question: my use case.
Install only the engines I need, and run REA's health check until it passes.
# Two rules at the top of every prompt:
# 1. Do everything yourself. Only ask me what you can't decide alone.
# 2. Before you install or use anything, print one line saying what it is and why.
Set up the project and study Claude Code with REA.
Turn on git, then write agents.md — the rules — and features.md — the brief.
Use REA to study the Claude app and write spec.md:
every feature, one test each, and a three-part build plan.
# agents.md → the handbook the AI reads at the start of every session
# features.md → one page: our own engine, our own window, on free keys
# spec.md → the report: every feature, how it works, a test for each, the plan
Read agents.md, spec.md and our saved versions.
Build the next unfinished part of the plan, one feature at a time,
and test each one with the self-check.
# Same prompt every time. The last four words are the whole trick.
# The AI is not allowed to claim success. The robot hand decides.
Read our files and saved versions.
Check any unsaved changes and carry on where the work stopped.
# Used when a free model dies mid-build (DeepSeek, 13-hour reset).
# Nothing is lost because every finished feature is already in git.
Make the model picker scroll and add a search box.
Then build what's missing: /compact, helper agents, MCP, hooks,
and retry on rate limits. Run the full self-check after each.
# A gap gets a test, not just a patch — so the next build can't break it.
# Rate-limit retry: switch model on daily caps, wait and retry on slow-downs.
At the start of every chat, tell the model which model and provider
it is running on, today's date and the OS, and to answer honestly
when asked. Update it when I switch model.
# Without this, Kiln insisted it was "not powered by any separate
# large language model". It was. It just had no idea which one.
Use REA to study igloo.inc. Print which tool or engine you use before
each step. Save the 3D models, textures and sounds it loads, and explain
every scene in your own words in reverse.md.
# Then, the rebuild:
Read reverse.md and rebuild the site scene by scene in your own code.
Never load the site's own JavaScript. Plain HTML and three.js, checking
each scene in the browser before moving on.
# Then, the receipts:
Take screenshots of the real site and our copy at the same moments, after
loading and through the scroll. Put them on one compare page, real on the
left, ours on the right, and tell me what matches.
# agents.md
1. Do everything yourself. Only ask what you can't decide alone.
You are the developer, not an assistant handing me a to-do list.
2. Before installing or using anything, print one line:
what it is, and why.
3. Study the target, never load or copy its code. Write ours.
4. Never say a feature works until the self-check says pass.
No "I think that's done". Pass or fail.
5. Commit after every finished feature.
A crash must cost nothing.
6. If you find a gap, add the test with the fix.
// drives the real window, not the AI's opinion
await app.launch() // opens Kiln
await ui.click('New chat')
await ui.type('create a file called proof.txt')
await ui.waitForStream() // reply arrives token by token
await ui.acceptPermission() // popup, if one appears
await fs.exists('proof.txt') // the file is really on disk
report('pass') // or fail. nothing else.
The video also builds a spec.md from REA's findings — engine, permissions, saved chats, terminal panel, attachments, helper agents, MCP, hooks — one test per feature, in a three-part plan. That file is the actual source of truth for what "done" means.
04 — The failures
This is the part the highlight reel leaves out — and the only part that transfers to your own project.
01
Reality: three files in the folder.
Never accept a completion claim without a directory listing. The retry produced 105 files, 17.7 MB.
02
The self-check graded the AI's own homework.
Tests must be derived from spec.md, not from what got built. Otherwise the checklist shrinks to fit the work.
03
Free DeepSeek hit its daily cap one minute into part two.
Swap the brain, then hand over: read the files, check unsaved work, continue. Git makes the handover free.
04
The agent denied having a brain, because nobody told it which one.
Inject model name, provider, date and OS into every session. Real Claude Code does exactly this.
Done is a claim. Check the receipt.
05 — The verdict
Two empty folders, one prompt: build a todo app as a single todo.html — add, remove, delete, live count, persistence across refresh, clean and modern. Enter on both.
Left
Paid, subscription, the real thing.
Right
Free model, free key, built in a week.
Both results are on screen in the video. The honest read: a free model can reconstruct a known tool when it is handed a spec — because the hard part, knowing what the app must do, was solved by REA and by public docs. What actually got built is verification, not generation.
REA is for studying software you own or are permitted to examine. Don't copy anyone's code into a product, don't use their name or logo, read the terms first. This one stayed a private build — renamed, re-iconed, not for sale, not for release.
Free tiers cap hard and providers log what you send. No passwords, no client code through a free cloud model, and always keep a second free model ready.
Write the rules once in agents.md. Save every version. Make "done" something a script can prove. The stack will change; those three won't.
One free app. One free brain. A detective kit. 102 checks, zero lines typed.