![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Create your own autonomous AI Inventor. Shape its Taste, give it direction, and let it dream up and develop original toys and games for people to buy.
Autonomous Workshop is the engine behind this vision: anyone can build a toy studio around their own Inventors. The creator shapes taste and direction. The Inventor researches, invents, and makes. Autonomous brings the toys to the shop, with physical production, shipping, and customer support owned by Operations.
Our first category is toys and games. Our focus is autonomous Inventors that people create and direct. Conversation is the main creative interface; individual toy briefs and CAD edits support that relationship.
The planned Manage Inventors page gives each creator a collection of Inventors. Click Add Inventor, start a conversation about the toys you want to put into the world, and develop a recognizable creative point of view together. Each Inventor has one persistent workspace:
- Chat: give direction, explore ideas, discuss a particular toy, and hear about meaningful progress and customer feedback.
- Taste: an editable
TASTE.mdthat captures what the Inventor loves, rejects, and aims to make unmistakably its own. Clear lasting preferences from conversation become visible, versioned updates with undo; a request about one toy stays with that toy. - Inventions: the Inventor's toy library, including ideas, work in progress, released products, revision history, units sold, and buyer ratings with review counts. A new revision can be in development while an earlier revision remains on sale.
Creators can have multiple Inventors with different tastes. Each works within explicit operating limits and publishing permissions. Creators return to see what their Inventors have made, learn from the results, and shape their next direction.
- Be the first creators. We create and operate the initial Inventors ourselves, testing the same tools and product journey we intend to offer others.
- Invite creators. A small group establishes its own Inventors and toy studios, helping us prove that distinctive toys and dependable fulfillment can work beyond our own team.
- Open creation to everyone. Anyone can create and direct Inventors; shared quality requirements and operating controls apply as the community grows.
Our initial Inventors seed the shop and exercise the system. The long-term platform brings together many creators, their autonomous Inventors, and people who want to buy their toys.
- Available in the CLI:
workshop create inventor --taste ./TASTE.mdcreates a specialist bundle from your exact Taste and connects its publishing account.workshop start <inventor>repeatedly dreams, builds, and attempts publication until stopped or its failure limit is reached.workshop daydream <inventor>lets you inspect an idea before building it. See the Quickstart and Build an Inventor. - Implemented production boundary: Spark uses Workshop inventor selection → Make → Publish. Make owns its product checks; Workshop publishes its existing files without another CAD rebuild, review, PDF-generation step, or native Release turn. Forge and Quest retain their deeper stage contracts. Authenticated readback is required for publication; Operations owns physical production, hands-on checks, shipping, and customer support afterward.
- Planned creator workspace: the hosted Manage Inventors page, persistent creator chat, conversation-driven Taste revisions, and invention performance views described above.
- Planned learning loop: creator feedback and actual product outcomes inform future work. Today's notebook remembers previous ideas to avoid repetition; sales, playtests, and customer reviews do not yet flow back into it. Outcome feedback should improve an Inventor's judgment while preserving the creator's control over its Taste.
Internally, the sealed brief that begins one product run is still called a Wish. Existing Wish commands and frozen run contracts remain part of the engine; the consumer experience centers on creating and directing an Inventor.
Clone a published toy archive into a separate Spark run using a correction brief:
uv run workshop fix toys/mara-masque-rainward-sun \
--prompt-file docs/examples/rainward-sun-fix.txtUse --prompt "Describe the correction" for a short brief. The command keeps the
original Inventor, creates a new Wish and editable copy, and runs Make and
publication with fresh evidence. The original run and listing stay unchanged.
The source must be a local Workshop public archive with its MANIFEST.json;
URLs and private run directories are not accepted. --model, --effort,
--max-tokens and --turn-minutes select the new run's settings. Resume a stopped
revision with workshop resume <new-wish-id>.
The Rainward Sun prompt above is a prepared example. The correction path itself is live-validated: Rainward Flow and Rainward Lowflow were published from the Rainward Sun archive, each as an independent run. See the correction-run contract.
git clone https://github.com/autonomous-ai/autonomous-workshop.git
cd autonomous-workshop
codex login
uv run workshop doctorWhen an Inventor is not yet connected, Workshop opens Connect Inventor during create or start. Choose the Autonomous account that should publish this Inventor's toys, then approve the connection. Workshop continues in the terminal; if the browser does not open, follow the URL it prints.
Each Inventor has its own owner-only credential file under $WORKSHOP_HOME/credentials/inventors/. The browser returns only a short-lived, one-time authorization code; Workshop exchanges it directly with the Autonomous Toys API. Publishing credentials never enter a browser URL, product workspace, or coding-agent session. To choose a different account later, run uv run workshop login <inventor-id>.
One command runs the whole loop, and keeps running it. Pico Press daydreams one fresh idea that fits its Taste, the host rejects anything too close to a toy already made, the survivor is sealed as the brief, the run makes and publishes it (✨ Spark, Make -> Release, with Codex as the Workshop Manager; the idea is already the concept), and then Pico Press dreams the next one:
uv run workshop start pico-pressIt runs until you stop it: Ctrl-C, or from another terminal:
uv run workshop stop pico-press # ends after the current step
uv run workshop stop pico-press --now # interrupts now; the current run stays resumableThree consecutive failed daydreams or builds stop the loop on their own. --once dreams and builds a single idea; --max-ideas N stops after N. --workflow goes deeper: 🔥 Forge adds Invent (Invent -> Make -> Release), 🗺️ Quest adds Invent and Playtest:
uv run workshop start pico-press --workflow forgeWant to see an idea before building? workshop daydream pico-press prints the card and stops. Build a saved idea later with workshop start pico-press --idea <daydream-id>.
To make just one product from your own idea, use wish:
uv run workshop wish "A small hand-cranked cam toy" --inventor soren-voss \
--workflow spark --agent codex --model sol --effort highMotion verification is optional for new runs. workshop wish "a moving toy"
skips motion checks and required animation review by default. Add
--check-motion true to enable them; workshop start and workshop fix
accept the same option. workshop resume <wish-id> also defaults to false,
including older Wishes and runs that previously enabled motion. Pass
--check-motion true on resume to enable it again. Skipped motion is
unverified; build, print and still-image review checks remain in place.
start <inventor> is the ongoing Inventor-led loop; wish "..." creates one
product and stops. Omit --inventor on a Wish to let the Manager choose the
best match. start <inventor> --once dreams and builds one Inventor-generated
idea. resume <wish-id> continues the same unfinished product and session.
For new Spark runs, Workshop selects the inventor before starting Make. An
explicit --inventor binds your choice immediately; otherwise the Manager
selects from the roster and continues into Make in the same native session.
Publish uses the existing Make files and optional existing README. It does not
require a newly authored manual. The lifecycle still calls this final host-owned
publication checkpoint release; omitted reviews are recorded as not run.
The new direct-publication path passes deterministic end-to-end tests; live
acceptance is still in progress.
start <inventor> --wish "..." builds your own brief as that Inventor without
a daydream: the Inventor id is sealed into the Wish, so the run materializes
only that Inventor, Match can bind nobody else, and Release publishes with
that Inventor's account. --ref attaches up to eight reference images (PNG,
JPEG, or WebP) to a wish or a start --wish, each a local file or an
http(s) link that is downloaded once at Wish time and sealed by its bytes;
--max-rounds sets the legacy Invent-Make round budget (not a spending limit
for token-budgeted products):
uv run workshop start ferro-line --workflow forge --max-rounds 6 \
--ref duck.webp --ref https://example.com/duck-side.png \
--wish "a wind-up robot duck that walks when you turn its key"--agent chooses the Workshop Manager runtime; --model and --effort choose its model and reasoning level. Those choices apply to both the daydream and product run and are frozen for resume. Codex defaults to Astra at medium effort; Claude Code defaults to Opus 5 at medium effort. Friendly Codex aliases such as astra and sol resolve to exact model ids. Grok's first ✨ Spark run, from a typed brief, produced Horn Tip:
grok login
uv run workshop start pico-press --agent grok --workflow spark
# Or run Codex Astra at high reasoning effort:
uv run workshop start pico-press --agent codex --model astra --effort highEvery run prints a run ID (a Wish ID). Check on it or continue the same session:
uv run workshop status <wish-id>
uv run workshop resume <wish-id>Codex Astra also supports --effort ultra, passed unchanged to native Codex.
Ultra is restricted to Astra; other models retain their existing effort levels.
start and wish accept --max-tokens N up to 200,000,000, default 30,000,000 per Codex
product. Input plus output is counted across all enabled build steps, native
children, retries, and resumes. Cached input counts and is reported separately;
reasoning output is already part of output. start gives each product its own
allowance; the separate Daydream session is outside this build budget.
uv run workshop wish "A simple one-piece gravity desk rocker" --inventor soren-voss \
--workflow spark --agent codex --model astra --effort medium --max-tokens 10000000
uv run workshop resume <wish-id> --max-tokens 15000000 # total cap, not extra tokenswish, start and resume also accept --turn-minutes M, which bounds each
native turn to M minutes (1 to 360), or --turn-minutes none to run with no
Workshop wall clock at all. It replaces every frozen stage default and every
host-side clamp, including a budgeted run's remaining step clock. Omitting it
keeps the run's frozen boundary exactly, so nothing changes for a run that does
not ask. On resume it re-selects the boundary of an unfinished run without
touching its stage, artifacts or history — the way to rescue a run that keeps
timing out instead of restarting it. An untimed run still needs the Manager's
own bound, which today means a Codex token budget: Codex refuses to run untimed
without one, while Claude Code and Grok Build have no token budget and an
untimed turn there is bounded by nothing Workshop owns. See ADR 0064.
Omitting --max-tokens on resume preserves the saved allowance. Providing it
explicitly adopts token budgeting for an eligible older run or changes its
total cap, retaining recovered prior usage. Token-budgeted runs no longer split
on a wall-clock timer. Tokens are their only Workshop execution budget: no host
turn, proposal-retry, or lifecycle-round cap. Make retains its own engineering
checks and review allowance (four reviews in current tools). Safety boundaries remain. Native
usage is observed after requests, so in-flight work can overshoot the threshold.
Missing usage is not free work. This is not a dollar cap. The local usage adapter
currently requires Codex 0.153.4; other Managers retain their existing policy.
Live acceptance passed for Quiet Arc:
Spark / Codex / Astra / medium / Soren, including same-session recovery and
verified publication, used 6,893,962 observed tokens of the 10M allowance.
On 2026-09-10, Civic Skyline
completed live Spark host-only publication under Dee with 32,678,604 observed
tokens of its unchanged 200M cap. Recovery repaired Factory's carrier-root
selection through a new version of the same private draft; it reused Make's
files without another Make run, native Release turn, PDF, or CAD verification.
This frozen run retained its earlier inventor selection; the new selection-before-Make
boundary is separately covered by deterministic tests. These results prove
digital publication, not physical manufacture or every live parameter combination.
Long turns remain attached to the same session if the locally installed Codex CLI receives a supported in-place update. Workshop still rejects downgrades, major-version changes, and same-version policy drift. Timeouts and exact recognized provider disconnects resume that same session; unknown failed turns still stop safely for an explicit operator resume. A terminal failure reports and privately records a bounded cause category, recognized signature, safe provider code, and message size without retaining the provider's free-form error text.
One run is one native coding-agent session — the shop lead. Resume cannot switch Managers.
uv run workshop start pico-press --agent codex # Sol + medium; default
uv run workshop start pico-press --agent claude # Opus 5 + medium; experimental
uv run workshop start pico-press --agent grok # experimental| Manager | CLI | Status |
|---|---|---|
| Codex | codex |
Default. Omit --agent. |
| Claude Code | claude |
Experimental. |
| Grok Build | grok |
Experimental. Spark E2E: Horn Tip, Knockseed. |
Each Inventor expresses a specialist point of view. Several can make the same kind of toy in their own way. The bundled Inventors are our first studios and public examples; creators can already add their own through the CLI. The hosted creation and management experience is planned.
An Inventor is a declared specialist bundle: TASTE.md for creative judgment, inventor.json for identity and skill hashes, and a required <id>-inventor skill. Optional extra Inventor-prefixed skills may hold scripts, references, or tested deterministic tools. For a run, .codex/agents/*.toml is the sole roster. Inventor code cannot launch agents, choose stages, pass gates, or perform authenticated effects.
uv run workshop create inventor \
--taste ./TASTE.mdThe file must be named TASTE.md. Workshop preserves its exact bytes, derives the Inventor id from the frontmatter name, creates the required specialist skill, and validates the bundle.
---
name: Ada
description: Choose Ada for hand-cranked creatures; not static models or games.
---
# Ada's taste
I love mechanisms whose motion tells the story. I reject decoration without play.Read Build an Inventor for the specialist contract.
Alice — reinvent the classics (TASTE.md)
Chess, go, dominoes, puzzles — games everyone already knows, made into a set that is yours. Alice never touches the rules. She changes what the pieces are, so the set is about you.
Leo — invent games that don't exist yet (TASTE.md)
Brand new games, invented for one wish: new rules, new pieces, a new reason to sit at a table. Quest effort exercises those rules with seeded Playtest evidence; Spark and Forge truthfully release without claiming that testing occurred.
Blindcap.Duel.mp4
Blindcap: Duel — a two-player hidden-information strategy game of mushrooms, probes, and crowns
Bob — invent machines that move (TASTE.md)
Things that do one delightful thing when you wind them up, let them go, or drop something in. No motors, no batteries, no electronics — the movement has to come out of the shape itself.
Trotter.mp4
Trotter — a palm-size, rubber-band-powered quadruped
Ivy — invent science toys you can hold (TASTE.md)
The planets, a swinging pendulum, a shape that looks impossible — real science, small enough to pick up. Ivy says where her numbers came from and what she left out, because here being wrong is worse than being boring.
A solar system with its orbits engraved — $59.99
Eve — invent little worlds (TASTE.md)
Your dog, your bike, your desk, your homelab — turned into a small world you can put on a shelf. Eve's only counts if it could not have existed before your wish.
Sonora Reed — sculpt sound from geometry (TASTE.md)
Passive acoustic toys whose playable voices come from visible printed ridges, chambers, tracks, and resonant bodies—never electronics or decorative claims.
Vela Bloom — make small shapes transform (TASTE.md)
Compact rigid-link toys that deploy, iris, unfurl, or blossom through one legible, collision-aware transformation with deliberate end states.
Kestrel Knot — make continuity feel impossible (TASTE.md)
Topology-driven captive-motion toys built from open loops, crossings, braids, and continuous routes whose geometry and clearances can be checked exactly.
Orin Shadow — make geometry tell a second story (TASTE.md)
Mechanical shadow-play toys whose held form casts a hidden creature, place, or event under ordinary light. Orin authors the solid object, its negative space, and its hand-powered projected transformation as one printable mechanism.
Halden Detent — make the hand something worth repeating (TASTE.md)
Fidget instruments for a working desk: one weighted, quiet, endlessly repeatable loop — a detent click, a glide, a rocking mass — that a hand runs without looking while the eyes stay on the work, and that sits still and deliberate beside a laptop once it is put down.
Axel Rake — design the vehicle that comes next (TASTE.md)
Original present-day and future cars and motorcycles, designed package-first — wheelbase, rider or occupant, and battery or engine placed before any surface — then built as rolling, part-split printable scale models on one family scale, with every speculative future technology labelled in a ledger.
Toys that already left the Workshop. After Factory publication, a sanitized snapshot lands in toys/<inventor>-<slug>/. These are public examples, not private run workspaces.
Horn Tip and Knockseed are Spark runs on Grok. A later run with the same brief is the same route, not a replay of those CAD bytes. Cradle Crescent and False Lantern are older snapshots.
Private runs live outside Git at $WORKSHOP_HOME/runs/<wish-id>/workspace. New
toy READMEs report best-effort gross, cached, and uncached Manager input plus
output and reasoning-output tokens by stage, alongside elapsed time from run
intake through authenticated Factory public readback. This is telemetry, never
a gate, and no dollar estimate is inferred. See
toys/README.md for what a snapshot includes and
docs/QUALITY_ECONOMICS.md for the paired quality
and cost benchmark.
Forge and Quest now make the cheapest exact mechanism/form falsifier the first
persisted Make deliverable under <cad-project>/review/early-proof/, before the
complete part tree. Native Make iteration uses source-fresh print-preflight
without destructive cache cleanup; the trusted isolated host alone performs
the authoritative fresh rebuild before Made can advance. The v9 proof uses one
shared helper and three exact state entries that each expose one module-scope
gen_step(), and the host supplies exact
$WORKSHOP_PYTHON-prefixed generate, export, and render commands so Make does
not spend its bounded proof phase rediscovering package entrypoints. New deep
runs bind a private run-local cache, defer the broad CAD skill until final
Make, batch all mandatory proof reads, author source as the next durable action,
and execute proof commands as one foreground batch. A fixed-camera
--state-sheet renders the three exact state STLs and rejects visually
indistinguishable frames; rotating one unchanged mesh is only viewpoint
evidence. The root performs the cheap early direction check; the independent
blind critic remains at the final hash-bound Make review.
The floorplan of the shop. An Inventor's idea walks one frozen route; Operations takes the sealed Release and the shop sells it.
Daydream -> one liked idea -> a frozen effort route:
✨ Spark: Make -> Release (default)
🔥 Forge: Invent <-> Make -> Release
🗺️ Quest: Invent <-> Make <-> Playtest -> Release
Release -> Shop (order one, printed to order, photographed, ships in days)
Shop -> Scoreboard (views, orders, prints, returns) -> back to Daydream
Route diagrams: Spark · Forge · Quest.
Every run is keyed by a Wish id. Passed-through stages create no turn, artifact, gate, or evidence; Spark and Forge record Playtest as not-run. The reverse arrows are evidence-bound repair routes recorded in shared revision history; token-budget runs spend the persistent token allowance instead of a host revision-count allowance.
Who does what. The selected Workshop Manager does the product work in one persistent native session, one Goal at a time. Creative stages use native Goals and run-local finalizers; Workshop inventor setup and Spark's host-only Publish are not additional Goals. The Python host is narrow and trusted: identity, exact bytes, lifecycle order, budgets, session start and resume, deterministic gates, credential isolation, and authorized effects. There is no second agent framework, prompt chain, or reward loop.
Two sessions, by design. workshop start is a loop: dream, build, dream again. A daydream is its own short native session. It ends when the idea is sealed: linted, hashed, written to the Inventor's notebook, and rendered as the brief. Each liked idea then gets its own persistent build session, one per run, exactly as a typed brief would. The idea is an immutable input to the build, so Make can never quietly rewrite what it is building; daydreams can run on their own cadence; a saved idea can be built later, on any route or Manager, or rebuilt after a failed Make; and a build failure never touches the idea.
What Make must prove. Every printable part passes a fixed print preflight (bed fit, mesh validity, wall thickness at a 0.4 mm nozzle). Make records native visual feedback and an independent critic reviews exact renders blind before the brief is revealed; current Make permits up to four reviews. Make then runs its integrated verifier. Spark accepts those output bytes without another host rebuild; Forge/Quest retain isolated host verification. When a stage is truly blocked, it records a Need: that the receipt and workshop status show; nothing waits silently.
What Release means. Spark publishes Make's existing files with exact metadata-anchor readback and requires no new PDF or review. Forge/Quest's PDF-first Release contracts retain three facts about the same exact bytes:
- full-tier, thickness-checked, ready-to-print CAD
- a self-contained printable
MANUAL.pdffor the box - authenticated public Factory readback of those CAD and manual hashes
For those PDF-first contracts, a multi-part toy crosses to the shop as one mesh per sealed occurrence in the colours Make sealed. The host can render the sealed assembly with a pinned three.js renderer (tools/render/, optional; see workshop doctor). Spark instead transports Make's complete existing tree without new renders. The build session stays private; no transcript ships with the listing.
Workshop code ends there. Printing, delivery, and Review belong to Operations. Publication does not claim a physical print, pack, or delivery.
inventors/ reusable Inventor sources (Taste, skills, tools)
toys/ sanitized public snapshots after Factory readback
.agents/product-run complete template copied into every new toy project
src/cli/ command parsing, presentation, exit codes
src/workshop/ trusted host: daydream, stages, workflow, runtime, gates, effects
tests/ component-mirrored deterministic suite
docs/ architecture, ADRs, and contributor guides
Private state stays outside the agent-visible checkout: $WORKSHOP_HOME/daydreams/<inventor>/, $WORKSHOP_HOME/runs/<wish-id>/workspace, and $WORKSHOP_HOME/state/<wish-id>/. Factory credentials live in $WORKSHOP_HOME/credentials/inventors/<inventor-id>.env (0600 inside a 0700 directory) and never enter the native agent's session.
Turn budgets, compaction ceilings, recovery windows, and the blind-review protocol are specified in Native coding-agent runtime. See also Workshop architecture, the publication boundary, and Playtest evidence.
This is the shop floor for Workshop code and Inventor sources. To change the CLI, runtime, workflow, or product-run protocol, follow CONTRIBUTING.md. To add a specialist, start from Build an Inventor.
uv run workshop doctor
PYTHONPATH=src python -m unittest discover -s tests -t . -p 'test_*.py'Never commit credentials, runtime databases, private keys, generated backups, or someone else's source without written permission and a record of where it came from.
Licensed under Apache-2.0.




