Missions
Missions are in beta. They are available on Paid workspaces, and Hyrax support turns them on for your workspace on request — email support@hyrax.dev. A workspace also needs on-demand spending turned on in Settings → Billing before it can start one. Until missions are on, nothing about them appears in the app.
A mission takes one directive you write for one repository — for example, "Add retry with backoff to the payment client and cover it with a test" — and works it to a pull request.
Hyrax plans the work first and decides how many steps it needs. It then runs the steps one after another on a single Hyrax branch, and every step adds to one pull request. Until the last planned step, Hyrax keeps the pull request as a draft, if your repository supports drafts. After that step, Hyrax marks it ready so your CI runs, then checks the whole branch, and it may still push fixes. If the mission pauses, Hyrax may switch the pull request to draft. A pull request that is out of draft is not necessarily verified: only a mission that shows Converged has passed its checks. Hyrax never merges it — you review and merge, as you would any teammate's pull request.
Where a fix acts on one finding, a mission acts on whatever you ask for.
Start a mission
You start a mission from Activity — at the workspace, or inside an Area, Space or Project — with Start ▾ → Mission. That opens the New mission dialog. Missions you have started show up in the same Activity list; filter it to Missions to see only them.
You can also start one from Claude Code or another AI tool connected to the MCP server.
The dialog asks for:
| Field | What to enter |
|---|---|
| Repository | The repository the mission works on. A mission works on one repository and its base branch. |
| Directive | What you want done, in plain words — up to 6,000 characters. Say what "done" looks like; the plan is built from it. |
| When the plan is ready | Start right away, or Let me approve the plan first. See Approving the plan. |
| Budget (USD) | Between $10 and $500, $25 by default, and no more than your workspace's on-demand spending limit. We stop your mission as soon as spend crosses your budget. You will never be charged more than 5% over it. Planning is charged separately. |
| Linked issue (optional), under Advanced | An issue ref such as ISS-123, for an issue past Needs triage that isn't closed or already claimed. The issue is claimed for this mission, and the mission belongs to that issue's project. |
Then select Create mission.
Who can start one
Starting a mission is an admin action by default — see Members & roles. Anyone who can't start one doesn't see Mission in the Start menu.
Only the person who started a mission, or an admin, can pause, resume or cancel it.
Approving the plan
Hyrax plans every mission before it starts work. While it does, the mission shows Planning.
- Let me approve the plan first. The mission waits as Needs approval. Review the plan — its steps and the budget they run under — and select Approve plan to start step 1.
- Start right away. Hyrax plans the work, then starts it. If the plan has several steps and the repository already has as many missions under way as it allows, it waits for approval instead.
If you don't choose, your workspace's setting applies. An admin sets it in Settings → Agents → Missions, under Starting missions. A workspace that never set it starts missions right away.
If the planner can't work out what you meant, the mission pauses and asks for clarification. Resubmit it with the answers in the directive.
Many missions on one repository
A repository can run many missions at once. Hyrax support can limit how many missions each of your repositories runs at a time — email support@hyrax.dev to set or change it. When a repository is at its limit, a new multi-step plan waits for approval, and approving it is refused until a slot frees up. A plan of a single step never counts toward the limit, so it always starts.
How a mission runs
- Steps. Each step is a coding job that makes its part of the change and commits it to the mission branch. Hyrax opens the pull request once the branch has work on it, as a draft if more steps remain and your repository supports drafts.
- Final check. After the last work step, Hyrax checks the whole branch. While it does, the mission shows Converging.
- CI. The mission waits for your repository's CI on the pull request before it finishes.
- Converged. When the checks pass, the mission is Converged: the pull request is ready for your review.
If you close the pull request yourself, Hyrax leaves it closed.
When CI or the final check doesn't pass
A mission never marks work as verified when it can't confirm the change works. It pauses and tells you what to check instead:
| Pause | What it means | What to do |
|---|---|---|
| CI is failing | CI on the pull request was still failing when Hyrax checked it. | Fix the failing check on the branch, then Finalize mission to have Hyrax check again. Resuming doesn't clear this pause. |
| Merge conflicts | GitHub reported merge conflicts between the pull request and its base branch, so Hyrax did not treat its checks as a pass. | Resolve the conflicts on the branch, then Finalize mission to have Hyrax check again. Resuming doesn't clear this pause. |
| Final check found problems | The build, the tests or a security check failed on the whole branch. | Review what failed, then decide what happens next. |
| Final check couldn't confirm the changes | The tests didn't finish, couldn't run, or none were found. | If the test command needs changing, change it in the repository's settings, then Finalize mission. |
| Ready for your review | There is no CI result Hyrax can verify. | Review the pull request and run your own checks before merging. |
A repository with no CI can let missions finish on Hyrax's own passing test run instead. In the repository's Settings, the Missions section shows how missions check their work; you change the test command and the no-CI choice in the Fixes section.
Statuses
| Status | Meaning |
|---|---|
| Planning | Hyrax is planning the work. |
| Needs approval | Review the plan and approve it to start work. |
| Running | A step is in flight. |
| Converging | Work is done — Hyrax is verifying the branch. |
| Paused | Stopped and waiting on you. The mission page says why, and what to do. |
| Cancelling | Stopping the running step. |
| Converged | Finished — the pull request is ready for review. A mission can also converge without opening a pull request. |
| Partly converged | Finished with some steps skipped or unfinished. |
| Failed | Stopped without finishing the directive. |
| Cancelled | Ended before it finished. A person cancelled it, or Hyrax ended it, for example after someone merged its pull request. |
Common reasons a mission pauses: it reached its budget (Out of budget), it hit its 72-hour time limit (Ran out of time — resuming restarts the clock), the next step would pass your workspace's on-demand spending limit (Overage limit reached), or a check didn't pass (above).
Controls
| Control | Where | What it does |
|---|---|---|
| Approve plan | Mission page, while it needs approval | Starts the first step. |
| Pause | Mission page, while it runs | The running step finishes, then Hyrax stops. |
| Resume mission | Mission page, while paused | Picks up where it stopped. |
| Raise budget | More actions | Gives the steps more room to spend. |
| Skip a step | The pause card, when a step is holding the mission up | Drops that step. Resume the mission when you're ready. |
| Finalize mission | Mission page, after a check pause | Runs the final check again. |
| Cancel mission | More actions | Stops the running step and starts no other. If the mission pushed a branch or opened a pull request, cancelling keeps it. |
| Resubmit | A failed or cancelled mission | Opens New mission filled in from the original, so you can adjust it and start again. The original is not changed. |
Missions and projects
A mission started with a linked issue belongs to that issue's project, and the issue is attached to the mission's pull request — so when the pull request merges, the issue is marked done. A resubmitted mission normally keeps the original's project.
Otherwise, a mission belongs to no project, even when you start it from inside one: Hyrax never guesses a project from the repository. A project's Activity still lists the missions on its repositories. See Organizing work and Issues.
What a mission costs
A mission is charged as usage, like every other job — see Plans & pricing.
- Steps spend against the mission's budget. When they reach it, the mission pauses; Raise budget lets it continue. Steps are never charged more than 5% over the budget.
- Planning is charged separately and doesn't count against the budget. The mission page shows it on its own line, and Settings → Billing shows it as Mission planning.
Repositories missions can work on
A mission needs the Hyrax GitHub App, because it pushes a branch and opens a pull request. A public repository added by URL without the App can't run missions — see Public & private repositories.
API and MCP
Over the MCP server, an AI tool can start, resubmit, list, read and pause missions. Approving a plan, raising a budget and cancelling are on the mission's page in the web app.