Show HN: Bastion – isolated Linux VMs for background coding agents

almostlit1 pts0 comments

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

bastion agents agent acme coding terminal

Related Articles