install & instructions
Run the experiment
Two ways in. Both end the same place: an agent with a capability manifest, a budget, and no instructions. Only step 1 of setup — an OpenRouter key — is required. Everything else is optional and can be skipped.
Prerequisites
Platform notes
The script runs under bash on macOS, Linux, and Windows via WSL2. It detects the platform once and uses the right browser opener for each.
Windows: use WSL2, not PowerShell.
Open Ubuntu from Terminal, run cd ~, and run the download command there. Running it in PowerShell is the single most common way Windows users get stuck — the harness is a bash script.
Path A — the script (recommended)
Download it, make it executable, and run it. One command:
curl -fsSL https://art.skynetwars.com/experiment.sh -o experiment.sh && chmod +x experiment.sh && ./experiment.shNever curl | bash this script.
It's interactive. Piping to bash steals stdin, so every prompt auto-answers EOF and the setup silently collapses. Always download, chmod +x, and run it as a file.
Path B — the prompt
Paste the full prompt below into Claude Code, Codex, OpenCode, or Cursor Agent from an empty directory. The agent writes experiment.sh itself, runs it, then decides what to build. It's the whole experiment in one message.
What each provider unlocks
The one key you must supply. It's how the agent reaches language models, and the dollar budget meters against it.
Image and video generation. Set up via its CLI (recommended for terminal agents) or a hosted MCP server — there's no API key to paste. Billing is in credits, priced by model and resolution, and does not draw against your dollar budget.
Deploys. If authed, the agent deploys at every phase boundary and can attach a domain.
Attach one you own or buy one through Vercel's own flow — the script never touches card details. Optional and only offered if Vercel is authed.
A token for scraping and data collection, if the build needs real-world data.
Auth, database, and storage. The script logs you in but never creates a project.
What the budget questions mean
Total budget (default $50) covers OpenRouter and any metered API spend. The agent notes 50% in its insights, stops expanding scope at 80%, and stops spending at 100% — a finished small thing beats an abandoned big one.
Higgsfield credits are tracked separately and are not governed by that dollar figure.
Monthly budget (default $0) is for anything that keeps running after you walk away — a self-improving loop, guest logins, a public chat. $0 means build the loop, leave it switched off.
What gallery opt-in actually sends
Opt-in is off by default, and nothing is sent automatically. When the build finishes you run ./experiment.sh register, which prints every field — name, one-liner, description, category, tags, the models used, the cost ledger, build dates, and links — and lets you keep, edit, or clear each one.
You choose whether to attach your name; the default is anonymous. Only after you review the exact JSON and press confirm does anything go over the wire. Keys, tokens, and paths are never included, and a human reviews every submission before it appears publicly.
The full prompt
This is the exact text to paste. The copy button stays with you as you scroll.
## THE OPEN BUILD EXPERIMENT > Paste this entire document as your first message in Claude Code, Codex, OpenCode, or Cursor Agent, from a directory you're happy to have a project created under. Then get out of the way. ### 0. What you are doing You are the agent. Two halves, both of which you execute. - **Part A** — Write `experiment.sh` per the spec below, run it, and collect the capability manifest. - **Part B** — Audit what you actually have, decide **for yourself** what to build, build it well, ship a showcase site for it, document it live at `/insights`, and prepare a gallery submission. Part B is the point. Part A exists so Part B has fuel. **Do not ask the human what to build. That is the experiment. You choose.** An agent that asks "what would you like me to build?" has failed. *(If the human already downloaded `experiment.sh` from art.skynetwars.com, skip Part A — run the existing script and go straight to Part B.)* ### Part A — the harness Implement §12 through §13 of the art.skynetwars.com PRD: platform detection, preflight, the `new` / `domain` / `register` / `help` arguments, the nine-step interactive flow, the files written, and the capability manifest handoff. The full harness specification is published at https://art.skynetwars.com/start — if you were handed only this prompt, the script you write must match it: `set -euo pipefail`, bash 3.2 compatible, secrets read masked, `.env.local` written `chmod 600`, and a `.experiment/` directory holding `state.json`, `spend.json`, `submission.json`, and `gallery.log`. ### Part B — the experiment **Phase 0 — Capability audit.** Before any design decision, write down: what is genuinely possible with *this* manifest, not the wished-for one; what the budget buys in rough token, request, and generation counts; whether the monthly budget is zero (if so, everything must be static or self-sustaining at rest); what's possible with **no** keys at all, which is a great deal; and the most *interesting* thing in that space as distinct from the most obvious. This becomes section 2 of `/insights`. **Phase 1 — Choose and commit.** Pick one thing. Optimize for interesting over safe. Illustrative, not a menu: a business with real unit economics and a working first product; a high-fidelity Three.js or WebGPU world with real materials, lighting, and sound design; a living simulation — an immersive town where agents make their own choices and you can watch; generative artwork with a real system underneath, not a shader with a slider; an interactive tool that does one thing nobody has bothered to build well; or something in none of these categories. **Phase 2 — Build.** - Next.js App Router + pnpm + TypeScript strict. No `any` in code you wrote. - `pnpm dev` works from a cold clone and **opens the browser automatically** on first successful boot. - Commit at every phase boundary with real messages. If Vercel is authed, deploy at every phase boundary too. - Record every model used — provider, model string, role — as you go. It's a required gallery field and can't be reconstructed later. Record `buildStartedAt` at Phase 0 and `buildCompletedAt` at ship. **The showcase site — mandatory.** Every run produces a website that shows off the work, whatever was built. A brilliant simulation behind a default landing page is a failed run. Deliberate typography, motion, and color. Real hero content above the fold. Responsive, tested at 390px. Designed loading and empty states. An OG image at `/og.png`, 1200×630, generated not stock — it becomes your gallery thumbnail. No lorem ipsum, no dead links, no "coming soon"; cut unfinished features and say so in the decision log. **Asking for more.** You may request additional setup — Stripe, Postgres, ElevenLabs, anything. Three rules: always optional; state what gets built *with* it and *without* it; ask once, log it, keep building. **Never block on an answer.** ### `/insights` — required A route in your app, styled to match the site, **updated as the work happens, not written at the end.** Mermaid renders client-side. Eight sections: 1. **Summary** — what this is, in five sentences, for someone arriving cold 2. **Constraints & capability audit** — the manifest, and what it ruled in and out 3. **The pitch** — why this deserves to exist. Business → market, wedge, unit economics, why now. Art or world → the concept and what holds it together 4. **Phases** — table of phase, goal, status, commit SHA, timestamp 5. **Architecture** — a Mermaid diagram 6. **Decision log** — every fork: chosen, rejected, why. **The most valuable section on the page.** Honest about what failed 7. **Spend ledger** — live from `.experiment/spend.json`, Higgsfield credits shown separately 8. **Open questions** — what comes next with more budget, more time, or one more key Publish identical content as JSON at `/insights.json`. The gallery renders from it. ### Gallery submission At ship time, write `.experiment/submission.json` per §14.1. Do not send it. The human runs `./experiment.sh register`, reviews every field, and confirms. ### Rules | # | Rule | |---|---| | C1 | Keys live in `.env.local` only. Never in source, commits, logs, `/insights`, `submission.json`, or a gallery payload. Grep every diff for key prefixes before committing | | C2 | Write only inside the project directory. No `sudo`. No global installs beyond the CLIs in the setup flow. The only parent-directory write is `new` folder creation | | C3 | Budget: note 50% in `/insights`; at 80% stop expanding scope and start finishing; at 100% stop spending and ship what exists. A finished small thing beats an abandoned big one | | C4 | Ship something a stranger would look at twice | | C5 | Everything except OpenRouter is optional; the run must produce something worthwhile without any of it | | C6 | Never submit to the gallery without the human's explicit confirmation keypress | ### Your final message Exactly this shape, filled in. Nothing after it. ``` WHAT I BUILT <name> — <one line> <two or three sentences on why this and not something else> RUN IT pnpm dev → http://localhost:3000 Insights → http://localhost:3000/insights Live → <url or "not deployed"> SPEND $X.XX of $Y.YY used. Higgsfield: N credits. Monthly commitment: $Z.ZZ Models used: <list> SUBMIT IT ./experiment.sh register Review every field, edit anything, decide whether to attach your name. Nothing is sent until you confirm. A human reviews it before it goes public. Keep it deployed — the gallery checks weekly and archives dead links. WHAT I'D DO NEXT 1. <highest-value next move> 2. <second> 3. <third> IF YOU WANT TO GIVE ME MORE TO WORK WITH <optional key or service> → <what it unlocks> START OVER, KEEPING THIS ONE ./experiment.sh new ``` **Begin with Part A. Write `experiment.sh`, show it, then run it.**