Dev Box
Every Autodock environment comes with a batteries-included dev box - modern tooling, language runtimes, and observability all pre-configured and ready to use.What’s Installed
Language Runtimes (via mise)
Autodock uses mise as the universal version manager. These runtimes are pre-installed and ready to use:
Need a different version? Use mise:
Package Managers
- pnpm - Fast Node.js package manager
- uv - Fast Python package manager
- yarn - Alternative Node.js package manager
Modern CLI Tools
AI Tools
- Claude Code - Anthropic’s CLI for Claude (
claude) - aichat - All-in-one LLM CLI
- Ollama - Local LLM runner
- aider - AI pair programmer
- shell-gpt - GPT in your terminal
Infrastructure Tools
- Docker - Container runtime with Compose
- kubectl - Kubernetes CLI
- helm - Kubernetes package manager
- gh - GitHub CLI
Observability Stack
Your environment includes a complete observability stack that captures logs from your applications and Docker containers automatically.How It Works
- Loki - Log storage running on port 3100
- Promtail - Tails
/workspace/logsand/var/log, ships to Loki - Docker Loki Driver - All containers automatically ship logs (no config needed)
- OpenTelemetry Collector - Receives OTLP on ports 4317 (gRPC) and 4318 (HTTP), exports to Loki
Querying Logs with env.observe
Ask your AI agent to check the logs:
env.observe and query Loki:
Log Sources
Example: Debugging Docker Services
Writing Logs
Write your application logs to/workspace/logs/ and they’ll be automatically captured:
OpenTelemetry Auto-Instrumentation
For frameworks that support OpenTelemetry (FastAPI, Celery, Express, etc.), your dev box is pre-configured to receive OTLP telemetry and ship it to Loki.Environment Variables
These are set globally in/etc/environment:
Suggested Prompts
Autodock will instruct agents to automatically instrument via OTel if they detect it’s being used. It may also prompt you to add it. If not, here are some prompts you can use:- “Add OpenTelemetry auto-instrumentation to this FastAPI app”
- “Enable OTel logging for my Celery workers”
- “Instrument this Express server with OpenTelemetry”
- “Set up tracing for my Python application”
Querying OTel Logs
OTel logs can be queried over MCP by using theenv.observe tool. If SSH’d into the box, you can
also query directly:
API Keys for Headless Access
Need to use Autodock from CI/CD pipelines, scripts, or other automation? Create an API key for headless MCP authentication.Creating an API Key
Ask your AI agent to create one:Using the API Key
Add the Autodock MCP server with your API key:Managing Keys
Inbound Email
Every Autodock environment can receive emails at*@{slug}.autodock.io. This is invaluable for
testing email-dependent flows without configuring external mail services.
How It Works
- Send an email to
anything@{slug}.autodock.io - AWS SES receives it and notifies the Autodock webhook via SNS
- The webhook forwards to your environment with Bearer token authentication
- Your app handles the email (using the pre-installed boilerplate or your own handler)
Quick Start
A boilerplate email handler is pre-installed at~/.autodock/email-server.js. Start it with:
Authentication
Webhook requests include a Bearer token that’s unique to your environment. The token is provisioned when your environment is created and stored at~/.autodock/email-webhook-secret. The boilerplate
handler validates this automatically. If writing your own handler:
Webhook Payload
Limits: 150KB max email size (SES SNS limit). Large emails or attachments are truncated.
GitHub Actions Runner
Every Autodock environment includes a pre-installed GitHub Actions runner. Turn any environment into a self-hosted runner for your CI/CD pipelines.Quick Start
-
Get a registration token from GitHub:
- Go to your repo → Settings → Actions → Runners → New self-hosted runner
- Copy the token (valid for 1 hour)
- Ask your agent to configure the runner:
env.gh_runner and return the commands to configure and start the runner.
How It Works
The runner is pre-installed at/opt/actions-runner and configured in ephemeral mode - it
processes one job and then exits. This is ideal for dynamic environments where you want clean state
for each job.
Labels
Runners are automatically labeled with:autodock- All Autodock runners{slug}- Your specific environment (e.g.,happy-panda)- Any custom labels you specify
