Griddler docs

Griddler Agent

Run Claude Code and Codex sessions on a dev VM or in Docker Desktop that keep going when your PC is off, and open them in your grid from anywhere.

PreviewNeeds sign-inClaude Code

Where: Top bar→Agents

Griddler Agent runs Claude Code and Codex in a container on a headless dev VM, or in Docker Desktop on your own PC. Its sessions keep running after you close the pane or quit Griddler. On a dev VM they also keep running when your PC is off. From your grid you start a session on the agent, or open one that's already running, and the pane becomes that session's live terminal.

You can share an agent with your team. Teammates open its sessions through Griddler Social with their own sign-in. They don't need SSH or an account on the VM.

Before you deploy

You needWithout it
To be signed in to Griddler SocialThe panel says Sign in to see your agents.
Claude Code signed in on this PC, with your default account rather than an extra profileDeploy fails at the step that copies your sign-ins. Codex is optional; it's copied only if you're signed in.
This PC as the target: Docker Desktop runningDeploy stops with an error. The Doctor's Agent host row tells you before you try.
A dev VM as the target: SSH to it already working from this PC (JIT open), docker installed and running on it, no desktop session, and no Griddler installed thereDeploy stops with an error.

The exact errors and their fixes are under When something goes wrong.

Set up and use an agent

Deploy

Click the robot icon in the top bar to open Agents and pick where the agent runs:

PickRuns on
This machine — Docker DesktopDocker Desktop on this PC.
VM name — your dev VM · purpose · regionThat dev VM. The list shows the team's dev VMs whose owner tag names you, straight from Azure, so a new VM shows up within 5 minutes. Hover one for its SSH host, size and IP, and who else it's shared with.
Other ssh host…A box opens: type the SSH host of a VM that isn't on the list. Deploy stays greyed until you do.

With no VM tagged to you, the last row reads Other ssh host… (no dev VM is tagged to you); signed out, Other ssh host… (sign in to see your dev VMs).

Click Deploy. Griddler remembers which row you picked for next time (not the host you typed).

Griddler checks the machine, gets the agent image for your version of Griddler, and copies your Claude Code sign-in (and Codex, if you're signed in) to it. Nobody signs in on the VM. The line under the list shows each step, then ✓ done.

Start a session

Open the New Terminal dialog and set Where to your agent. Repository lists the checkouts the agent found, or Agent home (no repo). Pick a model and click Start.

  1. 1Set Where to your agent
  2. 2Pick a checkout, or Agent home
  3. 3Pick a model and effort
  4. 4Start

Close it and come back

Closing the pane only detaches it; the session keeps running on the agent. Reopen it with Open in Agents, or pick it under Session in the New Terminal dialog (join: …) and click Join. After Griddler restarts, an agent pane in a tab you haven't opened yet shows ▷ Reconnect · the machine · the folder, like ▷ Reconnect · agent-local · agent. Click it to reconnect to the same session, with its history.

Share it

Each agent has Sharing: Private, Team can watch or Team can drive. See below.

What an agent pane looks like

An agent pane is a normal pane in your grid. Its folder badge names the machine and the folder, like devvm · griddler, or just the machine, like agent-local, for the agent's home folder. Hover it for the full path and the agent's name.

  • It turns green when the session needs you, like a local pane, a few seconds after it happens.
  • It gets your directives and the team tools when it starts, acting as you.
  • The session belongs to the agent, not the pane. Closing the pane, quitting Griddler, or turning your PC off (dev VM only) doesn't end it. Stop in Agents does, and so does quitting Claude or Codex inside it.
  • On a teammate's agent shared as Team can watch, the header shows 👁 watch only. Typing does nothing and the chip flashes. The model and effort menus are greyed out too.

What the agent gets from you

WhatWhere it comes from
Your Claude Code sign-in, and Codex if you're signed inThis PC
Your Claude Code settings.json (without its hooks), CLAUDE.md and output stylesThis PC
Your git config, saved git credentials and SSH keysYour home folder on the machine the agent runs on

Deploy copies these each time, and Re-sync copies the sign-ins and settings again.

The agent sees your repositories through one mounted folder. On a dev VM that's your whole home folder, at the same path. On this PC it's the folder that holds most of the repositories Griddler knows, such as C:\Source, which the agent sees as /src. The step log's [repos] line says which folder it picked. Checkouts directly inside that folder show in Repository.

No UI for this. To mount a different folder on this PC, set agentReposDir in ~/.griddler/config.json, then click Deploy again.

Who can see and drive your agent

SharingWhat teammates can do
PrivateNothing. Only you see the agent.
Team can watchSee the agent under Shared with you and open its sessions read-only. Their typing is dropped.
Team can driveOpen its sessions, type into them, and start new ones.

A new agent starts at Private. Deploying it again keeps whatever you picked; deploying after Remove starts at Private again.

Team can watch and Team can drive cover everyone signed in at River Logic, not just your team.

  • Anyone who drives a session is typing as you, with your Claude Code, Codex and git sign-ins, in your checkouts.
  • Anything printed in a shared session, including tokens or connection strings in command output, is visible to everyone watching it.
  • A change to Sharing takes effect immediately. Widening it to Team can drive lets people already watching type straight away. Teammates it no longer covers are disconnected.
  • On it now on the agent's card lists who has a session open, and whether they're watching or driving. kick disconnects them; they can reopen it while Sharing allows. Your own rows say (you) instead: close your own cell from the grid.
  • Only a driver's window sets the session's size. Watching never resizes it for you.

Reading the Agents panel

Your agents are under Your agents, one card each:

ShowsMeans
● online · 12s agoWhen the agent last reported in. ● silent · 5m ago after 3 minutes without a report; ● no beat yet right after Deploy.
Claude · CodexGreen: the copied sign-in works. Claude sign-in expired: click Re-sync. Claude ?: not checked yet.
relay / no relayrelay: anyone it's shared with, and your other computers, can open its sessions with just a sign-in. no relay: hover it. Either the agent was built before the relay (Deploy again), or it isn't connected right now.
agent/0.1.…The agent's version. · update in red means it's older than your Griddler: click Deploy again.
Sharing, Re-sync, RemoveRe-sync works only on the PC that deployed the agent. Remove asks first.

Under the buttons, one line per session: its state (needs you, working, done after a turn, idle, starting), the agent and its title, or its folder and start time (claude · agent · started 07:41 PM), the last thing it said, then Open (puts it in your grid) and Stop. On it now uses the same names. Stop asks first; the session's transcript stays on the agent. States can take a few seconds to update.

Agents teammates share with you are under Shared with you: the agent's name and the owner (… · rowan's), its state, the sessions with Open, and you can drive, watch only, via ssh / via local (you reach it directly, from the PC that deployed it) or unreachable (it isn't connected to Griddler Social).

The list refreshes every 30 seconds while the panel is open; ↻ Refresh checks now.

The top-bar button

The robot icon turns green while an agent is reporting in, and amber when one of its sessions needs you. Its tooltip then reads like Agents — 1/1 beating · a session wants you. With the panel closed it updates every 2 minutes.

When something goes wrong

Deploy, Re-sync or Remove failed

The line under the list shows ✗ and the error, with the step log open (show log / hide log toggles it), and these tools:

ToolWhat it does
Debug in a sessionPick Claude or Codex beside it. Opens a session on this PC, in the first empty tile, that already has the failure, the log and the target, and works on the target over SSH and docker to fix it.
ReportSends a Griddler Trace with the failure and its log, secrets scrubbed. It shows ✓ Griddler Trace submitted — quote Trace ID … to support.
copy logCopies the whole step log. It's there after a successful deploy too.

Deploy errors

ErrorFix
"the probe returned nothing — is ssh to that host working?"Check that SSH to that host works from this PC: JIT open, the right host name, your key.
"docker is not installed or not running on the target (the agent runs as a container)"Install or start docker on the VM.
"the target has a graphical session — Griddler Agent runs on headless dev VMs only"Pick a VM with no desktop session.
"the target has a Griddler desktop config (~/.griddler) — pick a headless dev VM"Someone runs Griddler on that machine. Pick another.
"no cloud VM identity (IMDS) and not a container — …"The target must be a cloud dev VM.
"that VM already has an agent owned by someone else (…)"Someone else deployed there first. Pick another VM.
"Docker Desktop is not running on this machine"Start Docker Desktop, then Deploy.
"no published agent image for Griddler … yet — …"Your Griddler is newer than the published agent. Try again after the release finishes, or update Griddler.
"no Claude login on this machine to copy — sign in to Claude Code here first (the default identity, not a token profile)"Sign in to Claude Code with your default account, then Deploy.
"not signed in to Griddler Social"Sign in, then Deploy.
"host must be an ssh host alias, user@hostname, or "local" (Docker Desktop here)"Fix what you typed under Other ssh host….
"no target remembered for … on this machine — deploy again to set it"Re-sync on a PC that didn't deploy this agent. Deploy from here, or Re-sync from the PC that did.

A host typed in the wrong case (your SSH config says devvm, you typed DEVVM) is corrected for you and noted in the log.

Opening a session fails

ErrorFix
"can't reach … from this machine: it is not streaming through Griddler Social (agent offline, or an agent built before the relay — Deploy again), …"The agent is offline or shows no relay. Deploy again.
"… has never reported in to Griddler Social (…)"The agent can't reach Griddler Social. Check the container's log; see Look inside the container.
"the agent did not pick the pane up within 30s — is it running? (beat in the topbar Agents panel)"Check its state in Agents. If it's silent, Deploy again.
"the agent refused: …"It says why, for example repo … does not exist on this agent. Pick another repository.
"agent offline — it is not connected to Griddler Social right now"Wait for its next report, or Deploy again.
"not shared with you", "not your agent, and its owner has not let the team drive it"Ask the owner to change Sharing.
"8 people are already on that pane", "32 cells are already on that agent", "you already have 8 agent cells open"A limit. Close a pane, or wait for someone to leave.
"… items are already waiting on that agent"The agent has a backlog of 200 requests. Wait for it to catch up.
"relay: no answer from Griddler Social in 15s"Try again.

When a pane stops

An agent pane that loses its session is covered by Disconnected — and the reason, with Close pane. For the reasons that aren't about permission, there's also ▷ Reconnect: it reattaches the session if its window is still there on the agent, or resumes it into a fresh one if the agent was redeployed.

ReasonMeans▷ Reconnect
the agent went offline (redeployed, restarting, or lost Griddler Social)The agent or Griddler Social restarted, or you clicked Deploy again. The session is still on the agent.Yes. It picks the session back up once the agent reports in again.
the window endedThe session ended on the agent: Stop, or Claude or Codex quit.Yes. It resumes a Claude session from its history.
kicked by the ownerThe owner disconnected you. Reopen it from Agents while Sharing allows.No
the owner made this agent private, the owner changed sharingSharing no longer covers you.No
agent revokedThe owner removed the agent.No

Look inside the container

The container is named griddler-agent- plus the agent's name with @ turned into -, like griddler-agent-you-devvm. Run these on the machine it runs on:

docker logs -f griddler-agent-you-devvm      # the agent's log
docker exec -it --user 1000 -e HOME=/agent griddler-agent-you-devvm tmux attach -t griddler   # its sessions
docker volume rm griddler-agent-you-devvm    # after Remove: delete its sign-ins and session history

On the PC that deployed the agent, Griddler connects to it directly over docker or SSH when Griddler Social can't carry the session.

Doctor rows

The Doctor has two rows under Griddler:

RowShows
Agent host✓ Docker Desktop … — this machine can run a local agent. Without Docker Desktop the row is ·: you can still deploy to a dev VM over SSH.
Agentsnone deployed, or how many you've deployed and which are silent, have an invalid sign-in (Re-sync) or run an older agent (Deploy again to upgrade). No row while you're signed out.

What to know

  • Runs as you. The agent uses the sign-ins copied from the PC that deployed it. Re-sync copies them again after you sign in again on that PC.
  • Skips permission prompts unless you say otherwise. The New Terminal dialog's bypass box decides for each new session. Its default comes from Bypass permissions by default (dangerous) in Settings→Panes & startup.
  • Nothing on the VM listens to the network. The agent makes only outbound connections; the terminal travels over one connection to Griddler Social.
  • Griddler Social relays the terminal but doesn't store it. It keeps no scrollback and no keystrokes, only who opened which session, in which mode, and for how long.
  • Upgrading restarts sessions. Clicking Deploy again replaces the container. Open panes show Disconnected with ▷ Reconnect: Claude sessions resume from their history; Codex sessions start fresh.
  • Removing an agent keeps its data. Remove stops the container and revokes its access. Your copied sign-ins and session history stay on that machine for a later Deploy.
  • A Griddler Trace includes the last failed Deploy, Re-sync or Remove.

Limits

  • Up to 8 people on one session, 32 open panes on one agent, and 8 agent panes open per person.
  • Desktop Griddler only. You can't open agent sessions from the iPhone app.
  • If Griddler Social restarts, open agent panes show Disconnected. The sessions keep running; click ▷ Reconnect.
  • Attention on agent panes arrives a few seconds after the session changes.
  • Right after Deploy, opening a session can fail with "not streaming through Griddler Social" for up to a minute. Try again.
  • A title you type in an agent pane's header stays in your grid; the session on the agent doesn't get it.
  • Profile is greyed out for agent sessions: they always use the sign-in the agent was given.
  • Co-op campaigns aren't available on agent panes.
  • Git over HTTPS doesn't work from a Docker Desktop agent. Agents on a dev VM use your git sign-in there.
  • A session on an agent can't see the other panes in your grid or drive your web cells; see Agent tools.
  • Viewers idle for a day are disconnected.

On this page