Stockyard banner
prime-radiant-inc prime-radiant-inc

Stockyard

Security community

Description

Coding-agent VM orchestrator: runs coding agents in isolated VMs — Firecracker micro-VMs on Linux (with ZFS-based audit-trail snapshots) and Apple's container tool on macOS.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Stockyard

Coding agent VM orchestrator. Runs coding agents in isolated VMs — Firecracker micro-VMs on Linux (with ZFS-based audit-trail snapshots), and Apple's `container` tool on macOS.

Quick Start

# Initialize stockyard
stockyard init --instance my-dev

# Start the daemon (in another terminal)
stockyardd

# Create a VM
stockyard run --name my-task --env-file .env

# Attach to the running VM
stockyard attach 

# List running tasks
stockyard list

Creating VMs

stockyard run [flags]
Flag Default Description
--name Human-readable task name
--env-file Path to .env file to include in the VM
--env Environment variables (KEY=value, repeatable)
--cpus 2 Number of CPU cores
--memory 4G Memory allocation
--no-tailscale false Skip Tailscale setup
--tailscale-auth-key Tailscale auth key (overrides 1Password lookup)

SSH public keys from `~/.ssh/*.pub` are automatically injected into the VM.

Environment Configuration

The `--env-file` flag delivers a `.env` file into the VM at boot. The Firecracker backend ships it via the MMDS metadata service; the apple-container backend forwards it as `container run --env` flags (explicit task env overrides `.env` entries). Either way, this is the primary way to pass API keys and tokens.

Tailscale auth keys are handled separately via `--tailscale-auth-key` or automatic 1Password lookup.

Destroying Tasks

Without `--force`, `stockyard destroy` previews the selected task and does not delete anything:

stockyard destroy 

An unnamed task requires `--force`:

stockyard destroy  --force

A named task requires both `--force` and its exact name:

stockyard destroy  --force --confirm-name='my-task'

The name comparison is byte-for-byte. Existing scripts that destroy named tasks with `--force` alone now fail closed and mus