Your first real project¶
The Quickstart used a fake model and a local repository. A real project needs three things: a model key, a repository Ballet can push to, and an agent with the project’s toolchain.
1. Run Ballet without the fake model¶
make run
For a team or a server, install it with containers instead (Install Ballet on one host) and enable sign-in (Configure OIDC Authentication).
2. Add a model key¶
On the organization page, under LLM credentials, save your Anthropic API key. Keys are stored encrypted and never shown again. Agent sessions never see the key: they call Ballet’s LLM gateway with a short-lived run token, and the gateway adds the key, meters every token and enforces budgets (LLM Gateway). A project can override the organization’s key in its settings.
3. Connect the repository¶
In the project’s Settings:
- Repository URL
The HTTPS clone URL, e.g.
https://github.com/acme/web.git.- Default branch
The branch tickets start from and merge into, e.g.
mainordevelop.- Branch template
How ticket branches are named, e.g.
feature/{ticket}_{slug}(defaultballet/{ticket}-{slug}).- Forge
Automatic uses the GitHub adapter for
github.com: Ballet opens pull requests, follows their review and CI state and — when the ticket’s policy allows — merges them. Other hosts use Plain git: Ballet pushes branches and notices merges.- Git token
A token that can push branches and, on GitHub, open and merge pull requests. A fine-grained GitHub token needs Contents and Pull requests (read and write), and Checks and Commit statuses (read).
4. Give the agents the project’s toolchain¶
Agents verify their work by building and testing it, so sessions need the project’s compilers, package managers and services.
With
make run, sessions run on your machine: whatever is installed there is what they have. Use Setup commands in the settings for per-workspace preparation (npm ci,go mod download, …).For anything beyond a laptop, build an agent pool from the project’s devcontainer: the
ballet-agentdevcontainer Feature adds the agent to the image, and every container of it serves the project’s runs (Build an agent pool from a devcontainer). Set the pool’s name as Agent pool in the settings.
5. Set limits¶
Before leaving agents alone, set budgets (organization page and project settings): tokens per ticket and per day. Work over budget waits instead of spending (Budgets). Each ticket’s policy says whether a human must also approve the pull request and whether Ballet merges or a human does; the default is fully autonomous (Review agent · Merge auto).
6. Plan and run¶
Open Planner and describe what you want — a feature, a fix, a milestone. The planner reads the project’s tickets and knowledge, asks what it needs, and proposes a changeset of epics, tickets with acceptance criteria, and dependencies. Approve it, move the tickets you want done to Ready, and follow them on the board.
Tickets should be small and independently testable; the planner is instructed to cut them that way, and you can edit any ticket before it runs. Continue with Planning with the planner.