Skip to content
chalupa
ProductAgentsDocsPricing
Sign inInstall the CLI
Menu
ProductAgentsDocsPricingSign inInstall the CLI

Test environments from your Compose file, in your own cloud

A disposable copy of the Compose services you pick.

Chalupa copies the Docker Compose services you pick onto a private server in your own cloud account. SSH is the only open port: you reach the services through a tunnel from your terminal or your AI agent. Tear the server down when you are done and compute billing stops.

For indie developers, small teams and agencies who already run their stack with Docker Compose.

Run your first environment See a run, step by step
Free CLI: your provider bills the serverTeardown stops compute billing; a data volume keeps billing until you delete it
Install command
curl -fsSL https://chalupa.run/install.sh | bash

Installs bun, go-task and the CLI (not Pulumi or TinyVault). No sudo. Then run chalupa setup (free; it signs you in) and, if you like, chalupa doctor (free, offline). A real server costs money: chalupa up asks before it creates one.

Before you start

  • A docker-compose.yml for the stack you want to test.
  • A cloud account and an API token; chalupa setup walks you through it (provider guide).
  • macOS or Linux with OpenSSH. A cloud account also needs the Pulumi CLI and TinyVault; chalupa doctor lists what is missing.
Your laptopSSH tunnelPrivate environment
chalupa.ymlconfiguration
name: preview
compose: ./docker-compose.yml
services: [web, postgres]
ssh:
  keys: [laptop]
  allowedCidrs: [203.0.113.10/32]

Example configuration · preview is free and offline · replace the SSH allowlist with your own address before launch

Pick the services. Keep Compose as the source.

List the services you need. Ports, volumes and dependencies are read from your docker-compose file, and every port is bound to localhost on the server.

Compose command
chalupa preview --config ./chalupa.yml
Read the compose guide

Built to work with the tools you already run.

CairnTrace browser test runner Works todayfile.cheap artifact storage BetaMonitor crash capture BetaTinyVault secrets store BetaYour AI agent (MCP) read-only access Beta

One run, four steps

Describe it. Launch it. Test it.
Tear it down.

Your editor, your test runner and your agent stay on your laptop. Only the services you pick run on the server.

01

Describe

Point chalupa.yml at your docker-compose file and list the services you want. Ports, volumes and dependencies are read from Compose, not copied by hand. Free and offline: it shows the exact plan and ports before anything is created.

chalupa preview
02

Launch

Chalupa asks you to confirm, then creates the server and starts your services. Nothing is created before you confirm.

chalupa up
03

Work

Open the tunnel. Your services appear on localhost on your laptop, so your test runner, browser flows or agent run unchanged. Run chalupa status any time to see what is running.

chalupa tunnel
04

Collect and tear down

Keep the evidence you need, then tear the server down. Compute billing stops. A data volume you declared stays for the next run, and bills until you delete it.

chalupa down

Prefer one command? chalupa test <suite> asks for one typed phrase, runs launch, tunnel, your suite and the report, then tears the server down. Beta.

What a run leaves behind

Evidence you can open later.
Honest about what works today.

Each piece below is labelled. Works today means it has been used on real runs. Beta says exactly what is missing. Coming next is not built yet.

Browser flows

Works today

Run your browser flows from your laptop against the tunnelled services and keep the video, screenshots and report. They can also run as a uses: cairntrace step of a ci: suite on the server, beside the app (cairn 3.x; the on-box toolchain is baked with chalupa snapshot build --toolchain onbox).

Details

Evidence storage

Beta

Evidence from ci: suite runs is uploaded and attached to the run. Failed laptop runs are stashed locally and fcheap restore <id> brings them back.

Beta: Laptop runs that pass are not attached to anything, and laptop evidence cannot be uploaded for the console to open (report.evidence.publish: cloud is refused today). Evidence stored in file.cheap cloud opens from the console run page; a laptop pack shows its restore command there.

Coming next: Upload laptop-run evidence for the console to open.

Details

Crash capture

Beta

A failing step in a ci: run includes the stack trace and the culprit frame. With observability.crashCapture, any container death in the Compose projects you list is recorded on the box and shows in the console's issues page beside the CI ones.

Beta: It listens to Docker container deaths, so it needs Compose and covers only the projects you list; containers outside them are not covered. Host metrics work on one provider.

Details

Secrets

Beta

Reference ${NAME} in a service override and launch with tvault run --only NAME -- chalupa up.

Beta: Values are written to the server's startup config and to your local state today. env_file is not supported.

Coming next: Runtime delivery that never writes them there.

Details

Logs

Beta

Logs of the Compose services you opt in with session.logs are collected as log chunks and shown as short excerpts in the console for 24 hours. A run page shows the excerpts that fall inside that run's window; chalupa logs reads a running box's logs directly.

Beta: Collection can stop at its chunk limit or the original deadline, and retention depends on your plan. A service with its own non-journald logging driver must be excluded, and containers outside your Compose file are not collected.

Coming next: Search across collected logs in the console.

Details

Hosted console

Beta

Run history, a page per run, CI runs, issues and performance windows for the environments you link.

Beta: Log excerpts are short, only evidence stored in file.cheap cloud opens there, and the console shows what your environments report: it does not control servers.

Details

Run page

Beta

The console shows one page per run: the failing step, the evidence attached to it, the logs and containers in that run's time window, and the cost of the window.

Beta: Evidence opens from the page only when it is stored in file.cheap cloud; a laptop run shows a restore command instead of the files, because uploading laptop evidence (report.evidence.publish: cloud) is still refused. Logs are short excerpts and need session.logs.

Details
What works and what does not, in detail

For AI agents

Give your agent a server,
not your laptop's ports.

Point Claude Code, Cursor or any MCP client at chalupa mcp and it can read what is running, a session's timeline, box logs, the box side of a failed run, cost, what each action does, live CI status and experiment results. It cannot launch or tear anything down: those are not MCP tools. Confirmation stays with you. Every action that spends money needs a typed phrase, and chalupa explain --json publishes those phrases, so hand an agent a command only when you want it run.

Chalupa for agents
MCP server command
chalupa mcp --config ./chalupa.yml

A read-only MCP server: status, sessions, logs, failed-run context, cost, explain, live CI status, experiment results.

Action contract command
chalupa explain --json

Every action, its risk level and the exact phrase it needs.

App brief command
chalupa connect --format app-brief

A short brief of the services your agent may inspect, set with agentAccess.

Beta Launch and teardown are not MCP tools, and evidence files cannot be opened over MCP. The confirmation phrases are published, so an agent can type them: a human decides whether to hand over the command.

What to expect

Time and cost,
stated plainly.

Chalupa does not publish a ready-in-minutes or a price-per-hour figure it has not measured. chalupa receipt prints what each of your own sessions took and cost, from a local ledger and the provider's price, so measure yours. Until you have, this is what can be said honestly.

Make servers ready faster

Time

Boot time depends on your stack and on whether the server starts from a prebuilt image. Stacks that build their own app images take longer. The faster servers guide shows where the time goes.

Cost

Your provider bills the server at an hourly rate, and a declared data volume monthly. Chalupa never marks up servers in your own cloud account; managed GPU is priced separately. chalupa preview is free; chalupa up asks you to confirm before it creates anything.

Safe by default

Private by default.
Gone on purpose.

SSH is the only open port. Everything else stays on the server's own localhost until you tunnel to it.

How the safety model works

One way in

Every service port binds to localhost on the server. SSH is the only open port, limited to the addresses you allow.

Your data has its own lifecycle

A declared data volume lives in a separate stack. Tearing down compute never touches it, so you seed once and reuse it. It keeps billing until you delete it on purpose.

A deliberate way out

chalupa down ends compute billing. An expiry backstop (beta) can destroy the server while your laptop is asleep where the hosted reaper is armed. Actions that spend money ask first.

Open models on a GPU Experimental

Run an open model.
Keep your tools on your laptop.

Serve an open-weight model on a GPU server and point your local coding agent at it through the same SSH tunnel. Use your own cloud account, or let Chalupa run the GPU for you from a prepaid balance (beta).

Try a GPU session

Managed GPU is a prepaid beta: each launch holds its estimated cost from your balance and is never charged more than that hold.

01

Choose the model and size

Set them in chalupa.yml and preview the hourly estimate before you launch.

chalupa up
02

Check the context window

Weights, context and runtime all need GPU memory.

Context guide
03

See what each session reports

GPU readings and logs appear after telemetry connects; token and turn timing appear only if your agent reports them. Stop the GPU with chalupa down.

Read the GPU docs

Pricing

The CLI is free.
The server is your cloud bill.

Chalupa never marks up your servers. Hosted plans are $19 (Solo) and $79 (Crew) a month. Plans never include server time.

Compare plans

Community

Everything you need to run, test and tear down environments in your own cloud account.

$0/mo

Solo

Hosted run history and evidence for one person.

$19/mo

Crew

Hosted run history and evidence for a small team.

$79/mo

Managed GPU holds the estimated cost of each launch from your balance and never charges more than that hold.

Start with one environment

Install it.
Run one test. Tear it down.

Install command
curl -fsSL https://chalupa.run/install.sh | bash
Use it with your AI agent
chalupa

A disposable copy of the Compose services you pick.

DocumentationAgentsPricingGet in touch

Bring your own cloud. Leave with your data.

Provider costs are estimates. Storage has its own lifecycle.