Skip to content
PuniDocs
Open Puni

Connected runners


Deliver scene turns to an agent running on your own machine.

The agent loop: inspect, draft, apply, look, committhe saved revision keeps a checkpoint; in the studio it is one undo step01Inspecta savedrevision02Draftprivate,staged03Applycommands,atomically04Looknumbers orpixels05Commitone revisiona human save in between refuses itevaluate: numbersrender: pixelsThe agent loop: inspect, draft, apply, look, commit01Inspecta saved revision02Draftprivate, staged03Applycommands, atomically04Looknumbers or pixels05Commitone revisionevaluaterendera human save in between refuses itthe saved revision keeps acheckpoint
Inspect, draft, apply, look, commit. Numbers are not a picture; a human save in between refuses the commit.

Scene turns require a connected runner. The studio has no built-in chat, and Puni's servers never run a model for a scene turn. A turn never falls back to a deployment model key.

Connected runners need the command line, which is a preview for Puni's own team. It builds from Puni's private repository and is not published to npm.

Start puni agent serve --exec <command> on your machine, then use puni agent request to deliver a request for a saved scene revision. Your command receives each turn as JSON on standard input. It runs the model with your own credentials and answers on standard output. Read Agent commands for its flags and lifecycle.

If no runner is connected, turn creation refuses with PUNI_RUNNER_REQUIRED: “A connected runner is required. Start puni agent serve and try again.”

A turn stays assigned to runner delivery. Stopping the runner tries to release unfinished work. Another runner can then claim it until the turn expires, 30 minutes after you sent it. A turn never moves to an executor on Puni's servers.

Use puni agent presence to read availability and puni agent history <scene> to inspect saved results. A request names the saved revision it expects. If the scene has moved since, the turn is refused. Run puni agent cancel <turn> to stop a turn; any revision it already saved stays.

While a turn runs, Version history in the studio shows that an agent is editing the scene, and each revision it saves arrives with a checkpoint.

Was this useful?