Freestyle vs GitHub Codespaces
Freestyle is a sandbox API for agents: full KVM virtual machines you create from code, which can pause with their memory, fork while running and wake on the next request. GitHub Codespaces is a dev environment for people: a dev container opened from a GitHub repository in VS Code or the browser, which stops after 12 hours at most.
The companies and products
Freestyle
Freestyle sells full Linux virtual machines for AI agents, built for long running, complex tasks.
Each Freestyle VM is a KVM virtual machine with its own kernel, booted from an Ubuntu base snapshot with systemd, Docker and coding agent CLIs preinstalled. VMs can be paused with their memory, snapshotted while running, forked and woken by the next request, and every VM starts behind a default-deny firewall. It is built for teams that give each agent or each user its own machine, driven from a TypeScript SDK, a CLI or an API.
GitHub Codespaces
GitHub Codespaces is GitHub's cloud development environment: a ready-to-code Linux machine for a repository, opened in the browser, VS Code or the GitHub CLI.
Codespaces is a different kind of product from bochka: a dev environment for people working on a GitHub repository, not a sandbox API for agents. Each codespace is a Docker container built from the repo's dev container config, running on its own newly built VM on Azure, with 2 to 32 cores. It is built for developers and teams who want every contributor to start from the same setup, with prebuilds, port forwarding and GitHub billing.
Which use cases each one fits
For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “40th cheapest of 345” means 39 of the other 344 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.
| Use case and its workload | Freestyle: price rank | GitHub Codespaces: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Freestyle gives an agent a full VM with systemd, Docker and KVM and no time cap, while a codespace has Docker but no documented /dev/kvm and stops at 12 hours; bochka adds much faster CPUs on top of the full VM. | 241st of 367, with limits $3,311 a month | 274th of 367, with limits $4,618 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An assistant that lives on its machine all month can stay on Freestyle, but a codespace stops after 12 hours at most, so it needs a restart script; bochka keeps running and a stopped bochka sandbox costs nothing. | 263rd of 366, with limits $4,195 a month | 309th of 366, with limits $6,970 a month | 5th cheapest of 366 $657 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month Freestyle fits short code runs well, with VMs that pause with their memory and wake on the next request, while each codespace builds a dev container on a new VM. | 40th cheapest of 345 $482 a month | 288th of 345, with limits $619 a month | 186th of 345, with limits $2,000 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Freestyle is built to give each of your users their own VM from code; Codespaces are created for GitHub users on a repository and GitHub does not publish how many can run at once. | 16th cheapest of 361 $1,358 a month | 281st of 361, with limits $1,964 a month | Cheapest of 361 $209 a month |
| RL rollouts 1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month | 107th of 360, with limits $6,600 a month | 282nd of 360, with limits $9,489 a month | 34th of 360, with limits $2,000 a month |
| Agent evals 250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month | 53rd cheapest of 364 $1,046 a month | 295th of 364, with limits $1,519 a month | 10th cheapest of 364 $200 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month Neither is a fast fit for CPU-heavy jobs: Freestyle's own docs send sustained heavy CPU work elsewhere, and Codespaces has no fork or snapshot API, so each run starts from a repo or prebuild. | 168th of 377, with limits $625 a month | 314th of 377, with limits $909 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB Codespaces is a polished VS Code box per repo but stops at 12 hours, Freestyle keeps a VM running as long as you pay for it, and bochka keeps one running on faster CPUs. | 98th cheapest of 368 $151 a month | 130th of 368, with limits $270 a month | 18th cheapest of 368 $26 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month Neither has a graphical desktop ready: on Freestyle you install GNOME or Xvfb and VNC yourself, a codespace has only an editor and a terminal, and bochka streams a 60fps desktop with computer use built in. | 234th of 369, with limits $940 a month | 267th of 369, with limits $1,367 a month | 6th cheapest of 369 $200 a month |
| Browser-use agents 50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month | 257th of 367, with limits $482 a month | 275th of 367, with limits $678 a month | 7th cheapest of 367 $200 a month |
| Scraping & bots (startup scale) 50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month | 278th of 346, with limits $482 a month | 310th of 346, with limits $922 a month | 6th cheapest of 346 $90 a month |
| Mass scraping & bots (undetectable) 1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month | 183rd of 338, with limits $6,560 a month | 280th of 338, with limits $18,637 a month | 71st of 338, with limits $1,800 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month Freestyle and bochka can both fork one prepared machine while it runs; on Codespaces every copy is created again from the repository. | 272nd of 360, with limits $482 a month | 267th of 360, with limits $445 a month | 2nd cheapest of 360 $200 a month |
| GPU eval jobs 10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month | Can't run it | Can't run it | Can't run it |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month | Can't run it | Can't run it | Can't run it |
Key features
| Feature | Freestyle | GitHub Codespaces | bochka |
|---|---|---|---|
| What it is | A sandbox API: full Linux VMs for AI agents, driven from an SDK, CLI or API | A cloud dev environment: a dev container per GitHub repository, opened in VS Code, the browser or the GitHub CLI | A sandbox API: full Linux VMs for agents, with a desktop and coding agents built in |
| Isolation | Full KVM VM with its own kernel | A Docker container on its own newly built VM, with its own virtual network | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| How long it runs | No session cap; a VM runs and bills until you pause, stop or delete it | Stops after 30 idle minutes by default (up to 240) and after 12 hours at most, even while in use | Runs until you stop it; no session cap on paid plans |
| Docker and nested virtualization | Root, systemd as pid 1, Docker from boot and full KVM support | Docker and sudo inside the dev container; /dev/kvm is not documented | Root, systemd, Docker and /dev/kvm on every machine |
| CPU benchmark (4 vCPU / 8 GB) | 9.64 runs/s | Not measured | 26.69 runs/s |
| Pause, fork and snapshots | Pause with memory, clone a running VM, snapshot memory and disk, wake on the next request | Stopped codespaces keep files; no copy or snapshot endpoint | Disk saved every minute and on stop; fork a running sandbox with its disk |
| Starting point | Ubuntu 24.04 base snapshot with Docker, Node.js, Python and coding agent CLIs | Dev container config in the repository, with prebuilds built by GitHub Actions | Named snapshots used as templates, shareable by code |
| Biggest machine | Up to 32 vCPU / 64 GiB on Pro, 64 / 128 with custom limits | Up to 32 cores, with 4 GB of memory per core | Up to 16 vCPU / 32 GB on the $100 plan and above |
| Desktop and computer use | Guides to install GNOME or Xvfb, VNC and Chromium yourself | VS Code, JupyterLab and a terminal; no graphical desktop | Linux desktop streamed at 60fps, Chromium and computer use built in |
| Coding agents | claude, codex, opencode and openclaw preinstalled, run through exec or a terminal | GitHub Copilot as a VS Code extension; other agents you install yourself | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API |
| Keeping API keys out of the sandbox | Credentials injected at the edge for HTTPS headers, Postgres and S3 | Secrets are copied into the codespace as environment variables | Credentials proxy for model providers and any HTTPS API; switch to another account when credits run out |
| Network rules | Default-deny firewall with allow rules by IP, VM, VPC or exact domain | Open internet; GitHub says there is no way to restrict it | Open internet, no provider-side allowlist |
| Reaching the machine | HTTPS on free style.dev names or your own domain, forward auth, other public protocols | A URL per forwarded port, plus SSH and CLI tunnels; no public IP | HTTPS URLs for up to 50 ports, token-protected by default; raw TCP |
| Regions | Not listed; the docs name a San Jose, US data center | US East, US West, Europe West and Southeast Asia | EU only (Germany, Finland, France), with zero data retention |
Every feature Battleships tracks (43)
| Feature | Freestyle | GitHub Codespaces | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | Yes | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Yes | Not published | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | No | Yes |
| Fork/clone | Yes | No | Yes |
| Live fork (no pause) | Yes | No | Yes |
| Memory fork | Yes | No | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | No | Yes |
| Idle auto-stop | Yes | Yes | No |
| Wake on request | Yes | No | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Yes | No | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | No | No |
| Secret proxy | Yes | No | Yes |
| Secret proxy for any API | Yes | No | Yes |
| Preinstalled agents | Yes | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | No | No | No |
| GPU | Yes | No | No |
| Windows | No | No | No |
| Arm64 | No | No | No |
| Self-hosting | No | No | No |
| BYOC | No | No | No |
| Open source | No | No | No |
| Scoped API keys | Yes | Not published | Yes |
| Spend limits | Not published | Yes | Yes |
| Usage per sandbox (API) | No | No | Yes |
| Audit logs | Yes | Yes | No |
| SSO | Yes | Yes | No |
| SOC 2 | Not published | Yes | No |
| HIPAA | Not published | No | No |
| EU data residency | No | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
On the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB, bochka did 26.69 runs per second and Freestyle did 9.64, so bochka finished about 2.8 times as much CPU work in the same time. There is no comparable measurement for GitHub Codespaces: it was not in the public benchmark runs we use. This measures CPU speed only, not start time, where Freestyle advertises about 65 ms.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. GitHub Codespaces has no published run in this suite yet, so there is no like-for-like number to compare.
Pricing in five scenarios
Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.
| Scenario | Freestyle, a month | GitHub Codespaces, a month | bochka, a month |
|---|---|---|---|
| One coding agent, workdays 4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days | $27 · Free | $51 · Personal account: GitHub Free | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $159 · Free | $270 · Personal account: GitHub Free · with limits | $26 · $20/mo |
| 50 agents in parallel 50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside | $2,139 · Pro | $3,019 · Personal account: GitHub Free | $317 · $20/mo × 3 seats |
| Sandboxes for your users 2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once | $581 · Pro | $850 · Personal account: GitHub Free · with limits | $200 · $100/mo × 2 seats |
| 1,000 short jobs at once 2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month | $1,305 · Pro · with limits | $1,889 · Personal account: GitHub Free · with limits | $2,000 · $2000/mo · with limits |
Freestyle: Freestyle bills per second for the vCPU, RAM and disk allocated to a VM, busy or idle, after monthly allowances of 200 vCPU-hours, 400 GiB-hours of RAM and 60,000 GiB-hours of storage. On Free those allowances are hard stops; Hobby and Pro set a $50 or $500 monthly minimum that counts as usage, and a paused VM bills only for storage.
GitHub Codespaces: Codespaces bills $0.09 per core-hour while a codespace is active, used or not, plus $0.07 per GB-month for storage while it exists, stopped too. There is no 4-core machine with 8 GB, so a 4 vCPU / 8 GB job is priced on the 4-core 16 GB machine; personal accounts get a free monthly quota and organizations do not.
GitHub Codespaces: Plans start at $20 a month, and the whole fee is usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
Every codespace stops after 12 hours at most, so it does not fit the always-on agent: its price there assumes a script that restarts it, and running processes end at each stop. GitHub does not publish how many codespaces can run at once, so 300 user sandboxes and 1,000 short jobs are not confirmed. Freestyle has no time cap and no idle timeout by default, so a VM bills until you pause it; 50 agents need Pro, and its 400 concurrent VMs is why it does not fit 1,000 short jobs at once. bochka has no concurrency problem there, but the $2,000 plan queues starts above 90 a minute.
| Scenario | Freestyle | GitHub Codespaces | bochka |
|---|---|---|---|
| One coding agent, workdays | None that bite | None that bite | None that bite |
| One agent that never stops | None that bite |
| None that bite |
| 50 agents in parallel | None that bite |
| None that bite |
| Sandboxes for your users | None that bite |
| None that bite |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use Freestyle when
your code hands VMs to agents or users, especially when they sleep between requests and must resume with their memory, or need a default-deny firewall.
- Memory pause, live fork and wake on request. Useful for VMs that sleep between requests: they resume the same processes and can wake on the next incoming traffic.
- Built to be driven from code. Useful if your code hands machines to agents or users: create, fork and pause VMs from an SDK, with no 12-hour stop.
- Network controls per VM. Every VM starts with no network access, and you allow exactly the IPs, VMs, VPCs or domains it may reach.
Use GitHub Codespaces when
your developers want a ready VS Code environment for a GitHub repository, opened from a branch or pull request, in the US, EU or Asia.
- Built into GitHub. Useful if your team lives on GitHub: open a codespace from any repo, branch or pull request, with the dev container ready.
- Free hours for personal accounts. Useful for occasional personal work: a GitHub Free account includes 120 core-hours and 15 GB-month of storage each month.
- Regions in the US, EU and Asia. Useful if your developers are spread out: codespaces run in US East, US West, Europe West and Southeast Asia.
Where bochka fits
If you are choosing between these two to run coding agents, you want a machine your code controls that keeps running, which rules out much of Codespaces. Freestyle covers that, and bochka covers it too with much faster CPUs, a desktop for computer use, and an API to drive the agents inside from outside. Pick Freestyle over bochka when you need memory pause and wake on request.
A full VM on fast CPUs
bochka did 26.69 runs per second on the CPU benchmark and Freestyle did 9.64, so every install, build and test waits almost three times as long there. Codespaces was not measured and documents no /dev/kvm for emulators.
A desktop and a browser, ready
Every bochka sandbox streams a 60fps Linux desktop with Chromium and computer use. On Freestyle you build GNOME or Xvfb, VNC and the click layer into your own snapshot; a codespace has no graphical desktop at all.
Agents driven from outside, keys kept out
bochka gives you a prompt, steer and events API for the agents inside, and a credentials proxy that switches accounts when credits run out. On Freestyle you parse CLI output from exec; on Codespaces keys sit in environment variables.
Use bochka when your agents do real work for hours: builds, tests, Docker, emulators, a desktop and a browser, on fast CPUs, with an API to drive the agents inside from outside. Compare it one to one: bochka vs Freestyle and bochka vs GitHub Codespaces.
Questions people ask
Is Freestyle cheaper than GitHub Codespaces?
In the scenarios we priced, yes. One agent running all month is $159 on Freestyle against $270 on Codespaces, which also needs a restart every 12 hours, and 50 agents in parallel are $2,139 against $3,019. bochka comes to $26 and $317 for the same two.
Which is faster, Freestyle or GitHub Codespaces?
Only Freestyle was measured: 9.64 runs per second on the hpc-sandbox-benchmarks CPU test at 4 vCPU / 8 GB. Codespaces was not in the benchmark runs we use. bochka did 26.69 on the same test, about 2.8 times Freestyle's CPU work.
Can I run an AI agent 24/7 on Freestyle or Codespaces?
On Freestyle, yes: there is no session cap, and a VM runs until you pause or stop it. A codespace stops after 12 hours at most, even while in use, so it needs restarts. A bochka sandbox runs until you stop it, with no session cap on paid plans.
Do both run Docker and Android emulators?
Both run Docker. Freestyle is a full KVM VM with nested virtualization, so emulators work; GitHub does not document /dev/kvm in a codespace, so emulators that need it are not a supported setup. Every bochka machine has Docker, systemd and /dev/kvm.
How do they keep API keys safe?
Freestyle can inject credentials at its edge for HTTPS, Postgres and S3, so the VM never holds them. Codespaces copies secrets in as environment variables. bochka's credentials proxy keeps model and HTTPS API keys outside and can switch to another account when credits run out.
Where does each one run?
Freestyle does not list regions; its docs name a San Jose, US data center. Codespaces runs in US East, US West, Europe West and Southeast Asia. bochka runs only in the EU, in Germany, Finland and France.
Try bochka
Install the CLI, then run bochka new.
Product preview