Projects and project settings
On this page
A project ties a group of boards to one repository and carries everything a build on those boards inherits: the repository, the push credential, the rules, the machines it may use, the review policy and the ship line.
The rule that matters most
A factory board must be in exactly one active project. In none, every claim is refused with board_project_unresolved. In two, the board is ambiguous: it inherits neither project's settings and builds push nowhere.
opvs boards projects <board-id> # resolved · none · ambiguous"Active" means not archived. A project that is on hold or completed still counts as active. Archiving a project drops its factory boards to "no project", and building stops.
Project settings
Open a project in the dashboard, then Settings. Each tab answers one question:
Tab | Holds |
|---|---|
General | Name, description, status, and the health mail |
Agents | What every worker on this project is given: rules, skills and commands |
Boards | The boards in this project |
Code | The repository and branch; the credential builds push with (it decides whose name is on the pull requests); environment variables; the merge owner; which machines may build this project; build capacity |
Data | Data sources: the workspace's, plus this project's own |
Review | The review policy, the ship line, and project health |
Danger | Archive the project |
The Code tab only picks a GitHub credential; it never stores one. Credentials are added once for the workspace under Settings → Integrations. See Connect GitHub.
Routing defaults
A project can set the model, provider and harness every card inherits when it names none. The order is: the card's own setting, then the board's, then the project's, then the desk's.
opvs projects set-routing <project-id> --harness codex --provider openai-codex--provider is a credential lane, written with hyphens (anthropic-claude-code, openai-codex). --harness is the engine, written with underscores (claude_code, codex). Pass none to clear one. Routing only applies when the board resolves to exactly one project.
Status and archive
Command | Effect |
|---|---|
| Paused; still active |
| Finished; the hand-off note is kept on the project |
| Hidden from the default list, and no longer active. |
Project health
opvs projects health <project-id> --profile factoryA project never reads healthier than its boards: a member board that is incomplete counts against the project. Exit 0 is healthy or incomplete, 2 is not healthy.
Related: Board types and columns, Board health.