Pinned runtimes
The environment gets a version
Declare dependencies, tools and skills once. We build it, hash it, and every session resolves to that exact image. Drift is caught before the run starts, not discovered in the diff.
A hosted, versioned runtime for coding agents. Your team's workflows run on a pinned environment anyone can launch — not whatever one laptop had that morning.
Coding agents on a hosted, versioned runtime where the metered VM wakes per tool call. You pay for the work, not for CPU sitting idle during inference.
Bring your own harness. Claude Code, Codex, or any ACP agent.
Why we built this
The prompts are tuned, the skills are shared, the tool definitions are in version control. The agent workflow is a team asset now. But it still runs on whatever environment a laptop happened to have that morning, so results drift run to run and the whole thing dies when one person closes the lid.
Move execution off that machine and you find out how much the machine was doing. Environments differ, so runs differ, and when one merges clean and the next gets rewritten by hand there's no way to tell whether the prompt was worse or the pipes were. You can't build an eval set on a moving target, and you can't improve a system whose failures leave no trace by morning.
So the environment becomes a versioned artifact with a hash, every session keeps a durable record you can compare across runs, and the harness runs on the control plane while the metered VM wakes per tool call — so the meter stops while the model thinks. The bench holds the work rigid; the output stops depending on who's at it.
Three primitives. No changes to the agent you already run.
Pinned runtimes
Declare dependencies, tools and skills once. We build it, hash it, and every session resolves to that exact image. Drift is caught before the run starts, not discovered in the diff.
Session records
Full tool calls, commands, and diffs kept per run and comparable across them. Compare two runs on the same runtime, promote the good ones into an eval set, and see which change actually moved output.
Detached execution
Sessions live on Vise infrastructure with scoped credentials, not yours. Launch from CI, a script, or your editor over ACP, then close the lid. The meter wakes per tool call and stops during inference.
# pin the environment your factory expects $ vise runtime pin ./runtime.toml → rt_4c9a1e node 20.11 · pnpm 9 · 412 deps · 7 skills # launch against it from CI, a script, or your editor $ vise run software-factory \ --runtime rt_4c9a1e --repo acme/billing → run_8f31 streaming · detached · records on · meter idle during inference
Agent-agnostic by design
The environment is the constant and the agent is the variable, not the other way around. Route the same pinned runtime to whichever agent you want to try, and the runs stay comparable.
Pinned runtime
rt_4c9a1eThe people who get the most out of this usually recognize themselves in all three:
FAQ
No. You bring the harness (Claude Code, Codex, or any ACP agent) and it runs unchanged. Vise pins the environment underneath it and records the session. Your prompts, skills, and tool definitions stay where they are.
The Agent Client Protocol, a common wire format between a launcher or editor and a coding agent. Because Vise speaks ACP, one pinned runtime routes to whichever agent you want to try, and the runs stay comparable. If your agent speaks ACP, it works here.
The harness runs on our control plane. The metered VM wakes only when the agent makes a tool call: a command, a file read, a diff. While the model is generating tokens that VM is idle and unbilled. You pay for the work the agent does, not for CPU waiting on inference.
Sessions run on Vise infrastructure, not a laptop, with credentials scoped to the run instead of a person's machine. Launch detached from CI, a script, or your editor, then close the lid. The run keeps going and leaves a record you can audit afterward.
Tell us what you're running now. We'll pin the environment, move a real workflow onto it, and show you the run records side by side. We onboard a few teams at a time, so you get a person, not a queue.
We read every one of these ourselves. We onboard a small number of teams at a time, so you'll hear back from a person — usually within a day.
If it helps to move faster, you can still grab a slot.