Container-based Claude Code agent orchestrator. Spawn isolated Claude agents in Podman containers that work on tasks until they're complete.
- Isolated Environments: Each agent runs in its own container with a cloned repo
- Auto-auth: Copies your Claude credentials into containers automatically
- Ralph Wiggum Mode: Keeps running the task until tests pass and changes are committed
- Multi-language Support: Detects and runs tests for Go, Node.js, PHP (Pest), Python, and Rust
- Podman installed and running
- Claude Code CLI installed
agent-devbox:latestcontainer image (see below)- GitHub CLI (
gh) for token authentication
go install github.com/jordanpartridge/agentctl/cmd/agentctl@latestOr build from source:
git clone https://github.com/jordanpartridge/agentctl
cd agentctl
go build -o agentctl ./cmd/agentctl
sudo mv agentctl /usr/local/bin/agentctl spawn my-agent https://github.com/user/repo mainagentctl run my-agent "Fix the failing tests in src/auth.go" 5This will:
- Run the task through the image
run-taskentrypoint - Check if tests pass and changes are committed
- If not, re-run the task with context about what's still needed
- Repeat until done or max attempts reached
agentctl check my-agentagentctl listagentctl logs my-agentagentctl shell my-agentagentctl kill my-agentCreate a Dockerfile:
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y \
curl git build-essential \
nodejs npm \
golang-go \
php php-cli composer \
python3 python3-pip \
&& rm -rf /var/lib/apt/lists/*
# Install Claude CLI
RUN npm install -g @anthropic-ai/claude-code
# Create agent user
RUN useradd -m -s /bin/bash agent
USER agent
WORKDIR /home/agent
RUN mkdir -p /home/agent/workspace
CMD ["sleep", "infinity"]Build it:
podman build -t agent-devbox:latest .- Spawn creates a container and clones the repo
- Run calls
run-taskin a loop - After each run, it checks:
- Do tests pass? (auto-detects test runner)
- Are there uncommitted changes?
- If tests fail or changes exist, re-prompts with status
- Continues until success or max attempts
MIT