Give your team devboxes
At the end of this guide, every member of your engineers group has a devbox: a VM built from your repository’s dev
container, on servers in your pool, with a persistent home and AI coding tools that never hold long-lived keys. One
devbox policy decides the template, size, placement, idle stop and what happens when someone leaves. Each engineer
opens their box from VS Code or an editor built on it, the Frazer app or a terminal in one click.
You need:
- A project for the boxes. This guide uses
acme-staging. - Capacity: a server pool with the
substrate-hostrole, of the project or shared with it, or the Frazer fleet. - An IAM group of the people who get boxes, here
engineers: created by hand, synced from Google or provisioned with SCIM, under IAM › Groups and roles in your organization. - A repository with a
.devcontainer/folder for the template. This guide usesacme/storefront. - The Admin role (
roles/admin) in the project.
Provision the boxes
Section titled “Provision the boxes”-
Install the CLI and sign in.
Terminal window curl -fsSL https://get.frazer.ai | shfrazer login -
Create a template from your repository. In the console, open Compute › Devboxes, select the Templates tab and click New template. Pick
acme/storefront: Frazer finds.devcontainer/and builds the template ascheckout-api@v1. Every template also carries the Frazer AI pack: the Frazer harness, Claude Code, Codex CLI and Hermes, with the Frazer MCP server already wired in. -
Write the policy. It binds the template and a size to the group:
policy.yaml # projects/acme-staging/devboxPolicies/engineering-standardsubjects: [groups/engineers]project: projects/acme-stagingtemplate: workspaceTemplates/checkout-api@v1size: standard # 8 vCPU, 32 GiB, 200 GiB homeplacement: { pool: projects/acme-infra/locations/us-virginia1/serverPools/vint-hill-default }perPerson: { count: 1, max: 2 }idle: { stopAfter: 30m, maxRunning: 12h, schedule: "Mon-Fri 08:00 local" }llm: { mode: gateway, key: llmKeys/anthropic-main, budgetPerPersonMonthly: 300 }onLeave: { stop: now, snapshotHome: true, deleteVmAfter: 30d, keepSnapshot: 90d }Field What it sets subjectsThe IAM groups whose members get boxes projectThe project the boxes are created in templateThe template and its version sizesmall,standard,largeorxlarge, within the sizes your organization allowsplacementA server pool of the project or one shared with it; { location: us-virginia1 }for the Frazer fleetperPersonBoxes each member gets, and the most they may have idleStop after 30 idle minutes, run at most 12 hours, start on weekday mornings llmModels through the Frazer LLM gateway, with a gateway key of the project and a monthly budget per person in US dollars; leave it out to use your organization’s default onLeaveWhen someone leaves the group: stop the box, snapshot the home, delete the VM after 30 days, keep the snapshot 90 -
Plan the policy. Nothing is created yet:
Terminal window frazer devboxes policies apply -f policy.yaml --dry-runOutput Plan projects/acme-staging/devboxPolicies/engineering-standard (devboxes)+ 5 devboxes (checkout-api@v1, standard) for 5 members of groups/engineers+ 1,000 GiB of home volumes on pool vint-hill-defaultCapacity peak fits the pool, one server's worth kept free OKacme-staging's share of the pool: peak within its limit OKCost no compute fee on your own servers · LLM budget up to 5 × 300 USD a monthRun the same command without
--dry-runand answeryto apply it. You can also review and apply it in the console under Compute › Devboxes › Team policies. -
Watch the boxes arrive. Open Compute › Devboxes › Team policies and select
engineering-standard. The Members and boxes tab lists each person, their box and its state. When someone joins the group, they get a box at the next directory sync; when they leave,onLeaveruns. -
Open a box. Each engineer opens their own:
In the console, open My boxes from the avatar menu and click Open in VS Code on the box’s card. The button remembers the last tool you chose: VS Code or an editor built on it, JetBrains, the browser, SSH or Hermes. Once the Frazer app is installed, Open in Frazer app becomes the default. From a terminal:
Terminal window frazer devboxes list --project acme-stagingfrazer devboxes open lena-01 --project acme-staging --vscodefrazer devboxes ssh lena-01 --project acme-stagingThe CLI fetches an 8-hour SSH certificate from your organization’s SSH certificate authority and connects over Frazer Access, or through Frazer Link when the laptop is not connected. There are no keys to copy. IDEs connect over Remote-SSH with
ProxyCommand frazer devboxes proxy %h.
What the team gets
Section titled “What the team gets”- Idle stop with a reason. A box stops after 30 minutes without activity: an IDE connection, an SSH session in use, the web terminal, a busy agent session or a recent preview request. The owner gets a warning 5 minutes before, with Keep running 2 h. A stopped box costs storage only, and its card always says why it is running or stopped.
- Models without stored keys. Claude Code, Codex and Hermes reach models through the LLM gateway with tokens from
frazer llm token, valid for an hour at most, within each person’s budget. Claude Code uses your organization’s own Anthropic credential behind the gateway. - Template updates on your terms. A new template version can notify owners, update each box on its next stop, or be forced by a date. A rebuild keeps the home.
- Offboarding in one operation. Removing a person from the organization revokes their SSH, Frazer Access, LLM and Git access and stops their boxes.