A machine that appears when you ask

An orb is a computer Amp conjures up for your agent. Your code’s already in it. Your tools are already in it. Shut the laptop and the work carries on without you.

Play a workday below, or just read it. Same story either way.

Play a workday Just read it

Ready a1.small · 2 CPU · 4 GB

One orb, living its whole life: cloned, kitted out, put to work, tucked in again.

01 — Anatomy

Everything it needs, already in there

Not an empty box. Debian 12, fully kitted, waiting. Your agent lands somewhere it can build, test, query a database, drive a browser — and film the result.

What's inside

Selected layer

02 — The workday

Six missions, one very long day

Every rule in here is real: Amp's prices, Amp's sizes, the five-minute pause, all of it. Spend badly and you'll feel it. That's rather the point.

Loading the workday…

03 — The explainer

The same thing, in words

Prefer words? Here's the lot: what an orb is, what's inside it, what it costs, and what changes once your laptop stops being the bottleneck.

What an orb actually is

An orb is a remote machine where an Amp agent works on its own. One thread, one orb: a fresh clone of your repository, your plugins, and the tools the agent needs.

The part that matters is where it isn't. No cores taken, no ports held, no dev server to wedge. You drive it exactly as you would on your own disk.

So orbs suit work you'd rather not host. Long builds. The suite that eats twenty minutes and all your fans. The migration you keep postponing.

Four ways to start one

amp -ox "your prompt"                       # a new execute-mode thread in an orb
amp -ox "your prompt" --orb-size a1.small   # same, at a size you pick
Or Create New Thread on ampcode.com, thread: new in orb in the TUI palette, or agent.createThread({ executor: 'orb' }) from a plugin. Each spawns an orb, clones your repo, starts the agent.

What's inside one

Debian 12, already equipped. The agent lands with amp and gh authenticated, agent-browser for driving a real browser, and the rest of a working machine.

Anything missing is one apt-get install away, and Amp's system prompt says so.

See the whole toolchain
Agent tooling
amp, gh, agent-browser.
Version control
Git and SSH.
Terminal and media
tmux, ffmpeg, ImageMagick, vim, jq, fzf, unzip, zstd, lsof, websocat.
Search
ripgrep.
JavaScript
Bun, Node.js, npm, pnpm, Yarn — pnpm preferred.
Python
Python and pip.

Amp's own writing mentions PostgreSQL and Redis in orbs; the manual's list names neither. Assume your repo starts its own database.

The lifecycle

You just watched most of this. In words:

  1. Provisioning. Amp spawns the machine, clones your repository.
  2. Setup. On a fresh orb, .agents/setup runs from the repo root. Amp snapshots the result and reuses it for up to 24 hours, so only the first orb of the day pays for setup.
  3. Working. The agent goes, watched or not.
  4. Idle. Nothing happening. A clock starts.
  5. Paused. Five idle minutes and it pauses itself; archiving a thread does it too. You never do it by hand.
  6. Woken. It comes back the moment it's accessed, and .agents/resume runs before the agent picks up.

The pause is the good part. Not a stopped VM you'd have to remember to restart, not a warm machine charging you for existing. It costs nothing and comes back the instant anything touches it.

What it costs

Five sizes, all with 40 GB of disk; only CPU and memory change. a1.tiny (1 CPU, 2 GB) is $0.08 an hour, a1.xxlarge (16 CPUs, 32 GB) is $1.32, and three more sizes sit between. Personal projects on Megawatt default to a1.small, and --orb-size overrides that.

Billing is by the minute, and a paused orb bills nothing. An a1.small costs under a third of a cent per minute while it works, and nothing for the rest of the day.

Extra CPUs only help work that can use them: sixteen of them are a bargain on a suite that shards and a waste on a bisect. Memory isn't a dial at all — give a job 4 GB when it needs 8 and it dies, every billed minute wasted.

What do enterprise workspaces pay?

50% more for orb time at every size, so $1.32 becomes $1.98. Subscriptions are separate: see the table of plans.

Teaching your repo to wake up well

An orb is a generic Debian box with your code in it. Three committed files make it yours.

.agents/setup

Amp runs this from the repo root while preparing a fresh orb: install dependencies, generate what needs generating, check your tools are there.

#!/usr/bin/env bash
set -euo pipefail

corepack enable
pnpm install --frozen-lockfile
[ -f .env.local ] || cp -- .env.example .env.local
Commit the executable bit: chmod +x .agents/setup.
What does a serious setup script do?

The Amp team's own is 428 lines of Bash. It starts PostgreSQL and tunes it for speed over durability, because orbs are ephemeral (fsync = off, synchronous_commit = off, autovacuum = off), seeds test users, installs mise and runs mise install --locked for the Node and pnpm versions the repo pins, runs pnpm install --frozen-lockfile, adds Pillow and sqlite3, and writes orb guidance into ~/.config/amp/AGENTS.md.

.agents/resume

This runs whenever a paused orb wakes, and Amp waits up to 10 seconds. Exit non-zero in that window and Amp surfaces it first; run past it and Amp stops blocking, leaving the hook to finish on its own. So keep it fast and idempotent: reconnect a tunnel, restart a watcher, nothing that installs.

#!/usr/bin/env bash
set -euo pipefail

# Fast, idempotent repair work only. Do not install dependencies here.
mkdir -p .amp
date > .amp/resume-last-ran.txt
Both hooks log under /home/user/.cache/amp/logs/ inside the orb.

AGENTS.md

The third file is just prose, and it compounds. The Amp repository carries 41 of them, read whenever the agent opens a file in that directory: build commands, where logs go, what to avoid. Don't make them guess.

Staying in control

The worry is always the same: I can't see what it's doing. You see more than you would locally, because the machine has a front door.

  • Review from the thread. Read the changes and browse files on the orb without syncing anything down.
  • Open a terminal in it. A real shell sharing the filesystem and working copy with the agent, in a tmux session it shares.
  • Take it home. amp sync <thread-id> mirrors the thread's changes into your checkout while the agent carries on.
How do secrets get in there?

Workspace, project or personal settings, personal beating project and project beating workspace. amp secrets manages them from the CLI, and Amp logs who changed what, never the values. amp orb id-token --audience my-service mints a short-lived token identifying the orb's workspace, project, user and thread.

Portals

An agent that can run your app but can't show it to you is half useful. Portals are authenticated URLs onto servers inside an orb, so the dev server opens from the thread's Portal tab. Just ask for one.

Declare anything long-lived in .amp/services.yaml, and amp orb services ensure runs it supervised, so it survives the orb pausing.

services:
  web:
    command: pnpm dev
    portal:
      title: App
      description: Use the seeded test account.
Usually the agent writes this for you.

Only thread viewers can reach a portal, so previews stay private without a VPN. And any request wakes a paused orb and restarts billing, so a link handed to a crawler keeps paying for a machine.

What environment does a service get?

Every service command runs with $PORT set and must listen on it; omit the port and Amp picks a free one that stays sticky across restarts. Each gets $AMP_THREAD_ID, and a portaled service gets its address as $PUBLIC_URL. Inside the owning orb those URLs hairpin to the local service, so $PUBLIC_URL works as-is for curl, Node and browser automation.

Many agents at once

Once a machine costs cents an hour and nothing while it sleeps, how many you run stops being a resource question.

Amp already splits suitable work across subagents, each with its own context and tools. They work in isolation and report back a summary: great in parallel, poor at anything needing negotiation.

Starting a thread somewhere other than a fresh orb

A plugin can call createThread({ executor: 'orb' }), or executor: { type: 'runner', id } for a live Amp runner — any machine running amp with remote thread creation enabled. parentThreadID links the new thread to its parent. Multiplayer puts several workspace members in one orb-backed thread.

What that does to your instincts:

Now that I don't have to worry about any of this — not how many checkouts I have, nor whether some of them have changes in them, or whether there's processes conflicting or ports being already open — I spawn so many more agents. So many! God! Every time I see a papercut I take a screenshot, start an agent in an orb and let it rip.

— Thorsten Ball, What I Want to Tell You About Orbs

What a day looks like

Start with the papercuts, because they're finally cheap. A misaligned button, a confusing error string, a test that's been flaky for a month. Each becomes a screenshot, a sentence and an orb.

Then the real job. Let it run long — locally that's a hostage situation, in an orb it's elapsed time on a machine you aren't using. So ask for proof, not just the diff: Ball got back a video of a Rust desktop app running in a headless orb.

Then one afternoon you close the laptop with four agents still working, which is the whole thing. A mountain of code with evidence attached is a different object from one with a confident summary. You still review it, differently.

Where this leaves you

None of this removes the hard part. What to build, which plausible answer is quietly wrong, which proof is real proof — still yours, and orbs hand you more of it, not less: five agents produce five things to judge.

What they remove is a tax you'd stopped noticing: the checkout you didn't make, the agent you cut short at minute six because you wanted your laptop back.

The entry fee is small: a setup script, a resume hook, an AGENTS.md that tells the truth about how your repository runs. Then give an orb something you've been putting off, and close the lid.

Reference

Every figure here comes from Amp's Owner's Manual and pricing page, in US dollars.

Orb sizes

The five orb sizes. Disk is 40 GB at every size, and orbs are billed by the minute. Enterprise workspace prices are 50% higher than the figures shown.
Size CPUs Memory Disk Price per hour Notes
a1.tiny 1 2 GB 40 GB $0.08 Cheapest. Fine for serial work nobody is waiting on.
a1.small 2 4 GB 40 GB $0.17 Default size for personal projects on Megawatt subscriptions.
a1.medium 4 8 GB 40 GB $0.33 Comfortable for a database plus a dev server.
a1.large 8 16 GB 40 GB $0.66 Roughly a developer laptop's worth of machine.
a1.xxlarge 16 32 GB 40 GB $1.32 The size whose hours are included with Gigawatt. Worth it only for work that parallelises.

Repository files that shape an orb

What each committed file does, when Amp uses it, its documented time budget, and where its output goes inside the orb.
File What it does When it runs Time budget Log file
.agents/setup Shell script run from the repo root: install dependencies, prepare generated files, check required tools. Must be executable. Once, while a fresh orb is being prepared. None documented /home/user/.cache/amp/logs/setup.log
.agents/resume Shell script for fast, idempotent reconnect or repair work. Must be executable. Every time an existing orb resumes, before the agent continues. Amp blocks for up to 10 seconds, then leaves it running in the orb. /home/user/.cache/amp/logs/resume.log
.amp/services.yaml Declares long-lived dev servers and services, and their portals. When you run amp orb services ensure, and on service restarts. None documented None documented
.amp/portals/*.json Portal-tab manifests: the links Amp shows once a portal server is available, each with an optional note. When Amp renders the thread's Portal tab. None documented None documented
AGENTS.md Repository guidance in prose: how to build, run, test and review, and what to avoid. Read by the agent on demand, not executed. None documented None documented

Plans

Amp subscription plans and their included orb usage.
Plan Price Included orb usage Agent usage and modes
Megawatt $20 per month 750 hours of small orbs $20 of included agent usage; low and medium modes only. A linked ChatGPT or X Premium+ subscription carries no per-token fee.
Gigawatt $200 per month 1,000 hours of xxlarge orbs $200 of included agent usage; all modes, including high and ultra.
Unconstrained Pay for what you use API pricing for orbs All agent modes; API pricing for model tokens; bring your own inference keys. For teams and enterprises whose usage does not fit a monthly plan.

Commands used on this page

amp -ox "your prompt"
Start a new execute-mode thread in an orb from the CLI.
amp -ox "your prompt" --orb-size a1.small
Use a size other than the project's default for this thread.
amp sync <thread-id>
Mirror an orb thread's changes into your local checkout while the agent keeps working.
amp orb services ensure
Start every service declared in .amp/services.yaml, supervised, and write the Portal tab's links.
amp orb service restart <name>
Reload a declared service after changing its command or dependencies, keeping its port and portal settings.
amp orb portal 3000
Get the portal URL for a local port instead of hardcoding the domain format.
amp orb id-token --audience my-service
Mint a short-lived OIDC token identifying the orb's workspace, project, user and thread.
amp secrets
Manage workspace, project and personal secrets and environment variables from the CLI.
View more demos Get $10 off Kimi K3