Start one
Open the dashboard, choose a personal or organization workspace, and go to Sandboxes. A workspace owner or admin has to turn cloud sandboxes on first, in Settings for a personal workspace or Organization settings for a shared one. The wallet must be able to cover the run.
In the Start dialog, name the repository, pick the base branch, and describe the task. Midas queues the sandbox and starts it as soon as a runner is free.
Repository owner/name
Base branch main
Task Add pagination to the audit log endpoint, with tests.The repository must be one the MIDAS GitHub App can read. The task is one message. If you need to steer the work, start a local session instead.
What happens
- Midas takes an ephemeral clone of the repository at the base branch.
- The agent works on a new branch. It can read code, edit files, run tests, and commit.
- On exit, Midas pushes the branch and opens a draft pull request against the base branch.
- The dashboard shows the run, its status, the compute time, the cost, and a link to the pull request.
- The checkout is destroyed, so the run leaves nothing behind.
The draft pull request is the handoff. Review it like any other pull request, push changes, or close it. The GitHub review system can review it too.
Lifecycle
queuedThe sandbox is accepted and waiting for a runner.provisioningThe job is being created and the checkout is being prepared.runningThe agent is working in the sandbox and sending heartbeats.stoppedThe run ended and the workspace was torn down.failedThe run ended with an error. The reason is shown in the dashboard.cancelledSomeone stopped the sandbox before it finished.
You can stop a sandbox from the dashboard while it runs. A sandbox that stops sending heartbeats is stopped automatically, and every run has a ceiling set for the workspace.
Isolation
Sandboxes run in a separate namespace on a dedicated node pool that scales to zero when idle. Each run gets its own Kubernetes Job.
- The container runs as a non-root user, with capabilities dropped.
- The workspace is an emptyDir volume, not a persistent disk. It is destroyed with the pod.
- There is no service account token mounted into the pod and no inbound network route.
- The sandbox reaches GitHub to clone and push, and the Midas API for model access and status.
- Model access uses a short-lived token bound to that sandbox. GitHub access uses a repository-scoped installation token. Both are revoked at teardown.
Billing
Compute is billed per second, with a sixty-second minimum, and is separate from model inference. The dashboard shows the two charges in separate columns so you can see what the machine cost and what the model cost. The compute rate is set for the workspace by an administrator, and the rate is snapshotted when the sandbox is created.
The same settings page sets the session limit, in minutes. When the limit is reached the sandbox is stopped, and the run still reports whatever it finished.
Current limits
- Start, list, and stop live in the dashboard. CLI support is not available yet.
- There is no interactive terminal into a sandbox. It runs one task to completion.
- There is no merge from the dashboard. Review and merge the draft pull request on GitHub.
- Midas does not track whether the pull request was merged or closed as a sandbox outcome yet.
Next steps
- Reviews covers the pull request review that can run on the draft.
- Workspaces covers the wallet, the session limit, and organization roles.