Backed byCombinator

The modern development runtime

Run multiple worktrees in parallel by offloading dev servers and other heavy workloads to isolated cloud machines.

curl -fsSL https://tesser.sh/install | sh

Or set it up with your agent:

Built for teams of devs and agents

Port forwarding to localhost

Every port your app uses is forwarded to your laptop, so the dev server on the machine opens at localhost:3000 like it always has. Hot reload and sign-in cookies keep working, and a panel on the page switches between branches.

Local and cloud agents

Claude Code and Codex run tesser from your laptop. Cloud agents like Devin and Capy run it with an API token and get the same machines.

  • Claude Code
  • Codex
  • Gemini CLI
  • Copilot
  • Cursor
  • Devin
  • Capy

Your existing setup

Tesser starts your app with the install and dev commands you already use. Every machine comes with Node and Docker, so most stacks run as they are.

  • Next.js
  • Vite
  • Node.js
  • Bun
  • Docker
  • Postgres
  • Redis
  • Python

Bring your own compute

tesser cloud connect moves every machine into your own AWS account, inside your VPC and on your AWS bill. We host only the control plane.

Set up in less than a minute

  1. One command installs tesser, and tesser login signs you in through the browser.

    Quickstart
    ~/acme
    $
  2. tesser skill install gives Claude Code and Codex a short skill that points them at tesser --help. From then on your agent runs the commands itself.

    Coding agents
  3. A short TOML file in the repo lists your app's ports and the install and dev commands you already use. Commit it once and every worktree can use it.

    Manifest reference
  4. Your agent runs tesser dev web in its worktree. The dev server comes up on that worktree's machine, and you open it at localhost:3000.

    Open a box in your browser

Flexible by design

Parallel coding agents

Every agent gets its own worktree and machine, so five agents on one repo never fight over port 3000 or your laptop's CPU.

Preview links

Put a link to your running branch in the PR. A reviewer opens it at box-7f3a91.localhost:3000 and tries the change before reading the diff.

Tests and builds

tesser exec -- pnpm test runs the suite on the worktree's machine. The output and exit code come back as if it ran locally.

Apps with a database

Each branch runs its own Postgres and Redis with Docker Compose, so one branch's migrations never touch another's data.

How Tesser compares

Most cloud dev environments ask you to move into them. Tesser fits into the workflow you already have. It syncs your checkout and runs your existing install and dev commands, with no Dockerfile or devcontainer to write. Port forwarding and per-branch routing are built in, so every branch opens on localhost.

ClaimCodespacesCoderE2BTesser
Syncs from your existing checkoutNoYesNoYes
Port forwarding to localhostYesYesNoYes
Service routing across machinesNoNoNoYes
No session time limitNoYesNoYes
Fully managedYesNoYesYes
Runs in your own AWS accountNoYesYesYes

Frequently asked questions

  • No. You and your agent keep editing on your laptop. tesser exec and tesser dev copy the files that changed to the worktree's machine before they run, so the machine always runs what's in your editor.

  • No. Files go from your laptop to the machine over SSH, and so do command output and your app's traffic. Our servers track machine ids, ports, and states, and Where your code goes lists everything they receive. On the Team plan, the machines can run in your own AWS account.

  • You pay for the seconds a machine is awake, and only for its disk while it sleeps. It falls asleep after 10 idle minutes, or 2 hours if it runs a dev server, and wakes in about 40 seconds the next time you use it. After 16 hours asleep it is removed.

  • About 90 seconds to boot. On Team you can keep warm machines ready for a repo, and those take a few seconds. A new machine also copies package caches and node_modules from your team's awake machines, so its first install doesn't start cold.

  • Ubuntu 24.04 with Node 22 and 24, Bun, and Docker with Compose, and you have sudo for anything else. Each one has 2 vCPU, 8 GB of memory, and a 40 GB disk by default, and --size goes up to 8 vCPU and 32 GB on Pro and Team.

  • Sync skips gitignored files, so .env.local stays on your laptop until your manifest lists it under env.files. Then every sync copies it over SSH. You can also store a value in your org with tesser env set web KEY=value, and every machine running web gets it.

Get started

Install the CLI and follow the quickstart to get your first cloud environment up and running.

curl -fsSL https://tesser.sh/install | sh

Or set it up with your agent: