Spawn AI coding agents
onto any machine.
The deployer is the “spawn an agent” service of the AutoDev suite. Give it a repo and a task, and it provisions a target, drops an autodev agent onto it, and hands it the managed GitHub + Claude credentials it needs to run — then keeps those credentials alive.
Everything to put an agent loop on a box — and keep it running.
One Laravel service handles provisioning, credentials, the agent lifecycle, and a scheduler that renews tokens before they lapse.
Four deploy targets
Provision or reuse a Hetzner/DigitalOcean VM, an existing SSH host, a Docker daemon, or a Kubernetes cluster — each behind its own driver.
Managed GitHub + Claude auth
Encrypted AgentSecret rows store GitHub PATs, Claude tokens, API keys and more. Run the OAuth flow PHP-natively — no pasting tokens.
A scheduler that keeps agents alive
One schedule:run unit renews Claude and grok tokens, reaps abandoned logins, and reconciles dead loops — before access lapses.
Loop & remote-control modes
Run a headless autonomous loop against TODO.md, or an interactive remote_control Claude session you drive from claude.ai or mobile.
Cloud fleet management
Create, start, stop and delete servers, volumes and snapshots. Assign live subdomains via Hetzner DNS. Surfaces the powered-off billing gotcha.
Filament panel + REST API
A Filament admin panel for humans and a Sanctum-authenticated REST API for the app, CLI and pixel-office to drive — with webhooks and activity logs.
From POST /api/agents to a working agent.
Every spawn enqueues a SpawnAgentJob that runs a driver, which lands an autodev agent on the target.
Provision a target
Spin up (or reuse) a Hetzner/DO VM, SSH host, Docker daemon, or K8s cluster.
Drop the agent
It clones the repo, authenticates GitHub + Claude, and starts the loop or a remote session.
Bind to the office
Optionally connect the agent back to a pixel-office character so you can watch it work.
Keep it alive
The scheduler renews expiring tokens and reconciles dead agents automatically.
Drive it from the CLI, the app, or pixel-office.
- Store credentials once — encrypted at rest, referenced by id at spawn. Secrets are passed via environment / k8s Secret, never on the command line.
-
Pick your provider —
claude,grok,opencode,copilot, oropenrouterselects which agent CLI the loop runs on. -
Track and tail — poll
GET /api/agents/{id}and stream the driver log with/log.
# authenticate, then spawn an agent
curl -X POST /api/agents \
-H 'Authorization: Bearer 1|…' \
-d '{
"target": "ssh",
"mode": "loop",
"host": "1.2.3.4",
"repo": "github.com/owner/name",
"task": "Fix the failing tests",
"provider": "claude",
"github_secret_id": 2,
"claude_secret_id": 1
}'
# → SpawnAgentJob enqueued. clones repo,
# auths gh + claude, runs `autodev start .`
Runs the agent CLI you choose.
An optional provider selects which CLI the loop runs on — autodev start -p <cli>.
Agents you spawn appear in the Pixel Office.
Bind a deployed agent back to a pixel-office character and watch it work as a live presence — chat, steer mid-run, and coordinate a whole team. The deployer puts the loop on a machine; Pixel Office is where it comes to life.