Product goal
Installing GroundControl should be agent-native too.
A developer should be able to tell an authorized coding/ops agent:
Install GroundControl on this VPS and connect it to my agent.
The agent may do the mechanical work, but GroundControl must preserve a safe human claim/approval boundary for privileged access.
North-star flow
- User gives an agent legitimate access to a VPS it controls.
- Agent checks prerequisites and host compatibility.
- Agent installs GroundControl using a stable, documented installer.
- GC starts locally and reports a one-time claim URL/code.
- Human claims the instance and creates/links the administrator identity.
- Agent may continue setup only within the permissions granted after claim.
- GC establishes/validates its public HTTPS endpoint or supported outbound bridge.
- User connects ChatGPT/another MCP client through OAuth.
- GC runs post-install verification:
- container healthy
- persistent DB volume
- Docker host execution plane
- terminal PTY
- MCP discovery
- OAuth metadata
- no default/shared credentials
- Agent returns evidence and next capabilities instead of a pile of shell logs.
Installer requirements
- one canonical install surface, versioned and checksum-verifiable
- idempotent install/upgrade
- explicit supported OS/runtime matrix
- safe Docker/Compose detection
- never transmit SSH keys to GroundControl
- secrets generated on-host
- no permanent bootstrap credential
- rollback/uninstall path
- structured machine-readable output for agents
- human-readable output for manual installs
Suggested commands should support both:
and a safer download/verify/run path that agents should prefer.
Claim protocol
Fresh installations should start unclaimed.
Bootstrap may expose only:
- instance identity
- health
- one-time claim initiation
- expiry/revocation of claim tokens
Before claim it must NOT expose:
- terminal
- deployment mutation
- connectors
- secrets
- MCP write capabilities
Claim tokens:
- short-lived
- single-use
- stored hashed
- invalidated after first admin claim
- bind to the exact instance
Agent install contract
Provide structured install stages such as:
{
"instanceId": "...",
"stage": "claim_required",
"publicUrl": "...",
"checks": {
"docker": "ready",
"storage": "ready",
"hostExecution": "ready",
"publicHttps": "ready"
}
}
The installer should give agents deterministic recovery instructions per failed check.
Public networking
Support:
- existing HTTPS/reverse proxy
- automated Caddy path where appropriate
- Cloudflare Tunnel/bridge path for private instances
Do not require a globally open management port.
Upgrade path
Distribution must support:
- pinned releases, not only latest
- upgrade preview/check
- DB migration safety
- health verification
- rollback to previous image when startup verification fails
Acceptance test
From a clean supported VPS:
- authorized agent installs GC without manual file editing
- GC boots unclaimed
- human completes one claim action
- agent resumes
- host/terminal/MCP/OAuth checks pass
- ChatGPT connects to the fresh instance
- ChatGPT can list an explicitly granted deployment
- no bootstrap credential survives
This track begins after connector rebuild #86 reaches live acceptance.
Product goal
Installing GroundControl should be agent-native too.
A developer should be able to tell an authorized coding/ops agent:
The agent may do the mechanical work, but GroundControl must preserve a safe human claim/approval boundary for privileged access.
North-star flow
Installer requirements
Suggested commands should support both:
and a safer download/verify/run path that agents should prefer.
Claim protocol
Fresh installations should start unclaimed.
Bootstrap may expose only:
Before claim it must NOT expose:
Claim tokens:
Agent install contract
Provide structured install stages such as:
{ "instanceId": "...", "stage": "claim_required", "publicUrl": "...", "checks": { "docker": "ready", "storage": "ready", "hostExecution": "ready", "publicHttps": "ready" } }The installer should give agents deterministic recovery instructions per failed check.
Public networking
Support:
Do not require a globally open management port.
Upgrade path
Distribution must support:
Acceptance test
From a clean supported VPS:
This track begins after connector rebuild #86 reaches live acceptance.