Bastion Computer<br>Skip to content<br>Toggle Menu Search CtrlK Cancel
Bastion<br>Bastion deploys virtual computers for coding agents.<br>Read the docs Star on GitHub
Terminal windowcurl -fsSL https://bastion.computer/install.sh | bash
Scale background coding agents<br>Run multiple background coding agents at the same time with zero runtime<br>conflicts from other agents working in parallel.
Run agent environments in isolation<br>Every coding agent runs in a separate VM, giving agents complete control of<br>its dev environment from file systems to background processes.
Define environments as JSON<br>All Bastion environments are initialized with schema validated JSON templates<br>rather than manually configured.
Self-host on your infrastructure<br>Run Bastion on Linux systems with KVM support, from a local workstation to<br>cloud instances like AWS EC2.
Define your agent’s environment with JSON configuration.
template.json{
"agents": {
"opencode": {
"working_directory": "/workspace/acme-app",
"auth": {
"openai": {
"type": "api",
"key": "${{ env.OPENAI_API_KEY }}"
},
"config": {
"model": "openai/gpt-5.5",
"permission": "allow"
},
"actions": {
"init": [
"use": "setup_bun"
},
"run": "git clone https://github.com/.../acme-app.git",
"working_directory": "/workspace"
},
"run": "bun install",
"working_directory": "/workspace/acme-app"
],
"start": [
"run": "nohup bun run dev &",
"working_directory": "/workspace/acme-app"
Initialize the template.
Terminal windowbastion templates create --key acme-app --file ./template.json
# {
# "id": "tpl_123",
# "key": "acme-app",
# "createdAt": "..."
# }
Deploy your agent.
Terminal windowbastion env create --template-key acme-app --key agent-1 --tag issue-32
# {
# "id": "env_abc",
# "key": "agent-1",
# "status": "running",
# "templateId": "tpl_123",
# "tags": ["issue-32"],
# "createdAt": "...",
# "updatedAt": "..."
# }
Interface directly via OpenCode or SSH.
OpenCode<br>SSH
Terminal windowbastion opencode --key agent-1
Terminal windowbastion ssh --key agent-1
1. Initialize a template<br>2. Deploy an environment<br>3. Use the multiplexer<br>4. Proxy to environment services
Home<br>Agents<br>llms.txt llms-full.txt llms-small.txt<br>Guides<br>System Setup Templates Environments SSH<br>Reference<br>CLI API Configuration<br>Templates<br>Schema Bastion dev env<br>Actions<br>Custom Actions Utility Tools Runtimes<br>Examples<br>Issue tracker demo Remote access with Tailscale