I'm on Windows with the project-terminus repo already cloned. Set up my machine to author + validate cicada tasks: WSL2 + Ubuntu, then harbor + stb inside Ubuntu, running validation on the E2B cloud (no local Docker). Do the automatable steps yourself by driving Ubuntu with wsl -e bash -lc "..." (set $env:WSL_UTF8=1 for clean output). For steps needing admin/reboot/browser, give me the exact command and wait. Known gotchas are pre-solved below — follow them.
1. [I do — Admin PowerShell] Install WSL2: wsl --install If it errors Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG, run in Admin PowerShell, then reboot:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
After reboot, install the WSL engine straight from Microsoft (Store delivery is often broken):
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12
$r=Invoke-RestMethod https://api.github.com/repos/microsoft/WSL/releases/latest -Headers @{'User-Agent'='wsl'}
$a=$r.assets|?{$_.name -like '*x64.msi'}|select -First 1
$o="$env:USERPROFILE\Downloads\$($a.name)"; Invoke-WebRequest $a.browser_download_url -OutFile $o
Start-Process msiexec.exe -ArgumentList "/i","`"$o`"","/passive","/norestart" -Wait
then wsl --install -d Ubuntu.
2. [I do] Create the Ubuntu username + password when the Ubuntu window opens (password is invisible while typing).
3. [You do — inside Ubuntu] Install the toolchain. PIN PYTHON 3.12 — Ubuntu's default Python 3.14 has no litellm wheel and the build fails on a missing compiler:
curl -LsSf https://astral.sh/uv/install.sh | sh
~/.local/bin/uv python install 3.12
~/.local/bin/uv tool install 'harbor[e2b]' --python 3.12
~/.local/bin/uv tool install snorkelai-stb --find-links https://snorkel-python-wheels.s3.us-west-2.amazonaws.com/stb/index.html --python 3.12
~/.local/bin/uv tool update-shell
4. [I do] E2B key: sign up at e2b.dev, copy the key (e2b_...). Then add it to ~/.profile (NOT ~/.bashrc — that bails for non-interactive shells):
echo 'export E2B_API_KEY="e2b_PASTE_HERE"' >> ~/.profile
5. [I do — browser, when ready to submit] stb login && stb keys refresh, and gh auth login for PRs.
6. [You verify] harbor --version, stb --version, and that E2B_API_KEY loads in a login shell.