Picking up a box another conversation left
How a conversation continues a box another one left: find it with sandbox_list, read its goal, steps[] and agent with sandbox_status, and ask the person first when the other conversation may still be at it.
A box outlives the conversation that started it. To continue one:
sandbox_list(orGET /v1/boxes): find the box by itsnameorgoal. Boxes whoseagent.stateisleftoridleare the ones nobody is working on.idlegoes by time alone: the conversation may still be open, but it has not touched the box for an hour. Each box'srecentNotes(its last 3 step notes) says what it was doing, and with which test account when the notes say so, without asandbox_statusper box.sandbox_status { "id": "<id>" }(or{ "id": "<id>", "fields": ["goal", "agent", "steps"] }for just those): readgoal(what the box is for),steps[](what was already done in it) andagent. Ifagent.stateisworkingorawaywithoutthisConversation, the conversation that was using the box is still open and may come back to it: ask the person in your own conversation, the way your client asks, before you take it over.agent.untracked: truemeans the box was last used without a conversation id (an API-key script, REST), so its state is only a guess from idle time; if you started it from such a script yourself, it is yours.- Continue with the same tools and the same
id; the box counts as yours from your first call that acts on it (sandbox_exec,sandbox_build,sandbox_sync,sandbox_get,sandbox_pull,sandbox_shot,sandbox_wireand the like);sandbox_status,sandbox_list,sandbox_sayandsandbox_reviewdo not claim it.steps[]has the commands and their notes, not their output or the files: to see where the work stands, rungit status,git loganddocker psin/workwithsandbox_exec(this thaws a frozen box, in a couple of seconds). If the earlier conversation edited code on the person's machine and sent it withsandbox_sync, those edits are in their local checkout as well: look atgit statusthere too. What was written only in the box is only in/work./workis still there, with everything the earlier conversation left in it, unless the box has stopped (terminatedorinterrupted); then start a new box with the samegoal, and what was not committed and pushed, pulled or published is gone. - End with
sandbox_revieworsandbox_stop(Finishing a box).
A box nobody uses is stopped for good 24 hours after its last use, or after its idleTimeoutMin (Box states), so pick it up before then.
The account has no members: only its login opens the app. A teammate without the app finds the boxes waiting for someone through their own agent, with sandbox_list (agent.state left or idle), and tells it to pick one up by name or id.
In the app, a box whose AI stopped (its conversation closed, or the box went unused for 1 hour) and that has no card waiting for the person shows two buttons:
- Continue copies a prompt for the person to paste into any AI conversation, word for word:
Pick up ParallelSandbox sandbox {id} ({name}): first run sandbox_status to see its goal and the steps done so far, then finish what is left. When it is done, hand it to me for review with sandbox_review; if I don't need to look at it, shut it down with sandbox_stop. - Shut down stops the box, like
sandbox_stop.
Every tool and topic is listed in the tool reference.