There is no single way to use Foundry. What changes from project to project is how you get your task list. After that the loop is the same: Foundry runs each task, checks the result with your tests, and saves its state.
You start from a goal, not from code. Pick whichever fits how you like to work:
sandbox/<project-id>/
You start from code that already works and must keep working. A typical case is redoing the UI of an older project while reusing the components you already have.
test_command
affects_files
For larger work, repeat one short cycle per feature. Your own AI tool helps at the two ends. Foundry owns the middle.
depends_on
Production-Grade includes a planning companion for steps 1 and 2. It takes a rough idea through a few clarifying questions to an outline, and then to a checked, ready-to-run task list that you review before anything starts.
Foundry stays the supervisor. It owns the queue, the worker pool and the checks. Its workers do the coding, and each one can run on a different provider: Claude Code, Cursor, Gemini, Copilot or a local model. Use as many as you like.
On top of that you can put one more AI tool as the manager. It does not do the tasks. It runs the supervisor for you, the way you would yourself, so Foundry gets the work and your tool watches over it. Your tool is the orchestrator and Foundry is what it orchestrates.
Foundry comes with a command-line tool, helper scripts and a local HTTP API behind the dashboard. Anything that can run a shell command can use them, so your manager tool can:
The API needs a sign-in, so keep it on your own machine or network. You can also step in yourself at any time from the dashboard.
Production-Grade adds a second way in. An MCP bridge lets your own tool work as one of the workers, taking the next task on its own branch and asking you first when it is unsure, while Foundry stays the supervisor.
The UI Dashboard is the recommended way to operate Foundry. The CLI does the same for automation and power users.
# Init state npm run cli -- init-state --execution-mode AUTO --goal "Build a simple REST API" # Set goal per project npm run cli -- set-goal \ --description "Your goal description" \ --project-id my-project # Enqueue tasks npm run cli -- enqueue \ --redis-host localhost --redis-port 6499 \ --state-key supervisor:state --queue-name tasks --queue-db 2 \ --task-file tasks/tasks.json # Start loop npm run cli -- start \ --redis-host localhost --redis-port 6499 \ --state-key supervisor:state --queue-name tasks --queue-db 2
npm run cli -- status ...
npm run cli -- metrics ...
npm run cli -- halt ... --reason "Operator intervention"
npm run cli -- resume ...
tail -f sandbox/<project-id>/audit.log.jsonl