Machine setup

Install everything you need

Follow your operating system step by step. You only need this once. When you’re done, Docker + Harbor should run a quick smoke test successfully.

What you’ll install (and why)

VS Code

Your editor. Built-in terminal is where you type commands.

Docker Desktop

Runs each task in an identical tiny computer (container).

uv

Fast installer for Python tools — installs Harbor for you.

Harbor

Task harness. Proves oracle=1 and nop=0 locally.

Git

Tracks file history. Claude Code uses it; set your name/email once.

WSL2 (Windows only)

Ubuntu Linux inside Windows — required for Harbor scripts.

Using the newer STB workflow?

Install the Snorkel Terminal-Bench CLI, sign in, submit tasks, handle revisions, and work through review assignments in the dedicated STB guide.

Open STB guide
1

Set up VS Code

Install VS Code for Mac (or brew install --cask visual-studio-code). Use the built-in terminal (zsh). No WSL extension needed.

2

Install Docker Desktop for Mac

Download the Apple Silicon or Intel build, or brew install --cask docker. Open Docker once to accept terms. Wait for the whale icon to settle.

open -a Docker
docker version
docker run --rm hello-world
3

Install uv (Python toolchain)

curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
# or: brew install uv
uv --version
4

Install Harbor

uv tool install harbor
harbor --help
harbor datasets list
# later: uv tool upgrade harbor
5

Confirm Git

If git --version prompts for Xcode tools, accept — or xcode-select --install.

git config --global user.name  "Your Name"
git config --global user.email "you@example.com"

Verify the setup works

With Docker running, smoke-test Harbor on Terminal-Bench 2. Success means containers build and the oracle scores reward 1 — Docker and Harbor are wired correctly.

harbor run -d terminal-bench/terminal-bench-2 -a oracle -l 5
# -l 5 = first five tasks only (keeps the smoke test quick)

Optional: scaffold a tiny practice task

On Project Terminus you’ll mostly use track skills (`/discover`, `/convert`). This Harbor command is still useful to see the folder shape once:

harbor tasks init my-task
harbor tasks start-env -p ./my-task -e docker   # poke around inside
harbor run -p ./my-task -a oracle               # must print reward 1
harbor tasks check ./my-task
harbor view ./jobs

Slow machine? Offload to E2B cloud

Same Harbor CLI — only the environment flag changes. New E2B accounts often include free credit. Multi-container compose tasks should stay on local Docker (or Daytona).

# 1) Get API key from e2b.dev → export it
export E2B_API_KEY="e2b_***"     # add to ~/.zshrc or ~/.bashrc

# 2) Install Harbor with E2B extra
uv tool install "harbor[e2b]"

# 3) Run in the cloud
harbor run -p ./my-task -a oracle -e e2b
harbor run -d terminal-bench/terminal-bench-2 -a oracle -e e2b -l 5

# Bonus: high concurrency on a weak laptop
harbor run -p ./my-task -a oracle -e e2b -n 16

Command cheat sheet

ActionCommand
Start Docker (Mac)open -a Docker
Install Harboruv tool install harbor
Update Harboruv tool upgrade harbor
List datasetsharbor datasets list
Scaffold a taskharbor tasks init <name>
Open container interactivelyharbor tasks start-env -p ./<name> -e docker
Quality checkharbor tasks check ./<name>
Oracle checkharbor run -p ./<name> -a oracle
E2B installuv tool install "harbor[e2b]"
Run on E2Bharbor run -p ./<name> -a oracle -e e2b
Smoke test TB2harbor run -d terminal-bench/terminal-bench-2 -a oracle -l 5
View resultsharbor view ./jobs
Fix CRLF → LF (Windows)sed -i 's/\r$//' <file>