froog

Changelog

What changed in froog, newest first. Subscribe with RSS, or read it as Markdown. Update the CLI with froog self-update.

November 14, 2026

· CLI 0.11.0 to 0.12.0

  • Pushbox in the dashboard, like an Actions page. Jobs are grouped into their workflow runs, 25 to a page, with each run's commit title, number and who pushed it, and filters by workflow, repository, status, branch and words. A run opens as a summary (trigger, status, duration, cost, its jobs, annotations from the logs and failed tests, usage), each job as its log with collapsible steps. Insights, Log search, Monitors, Caches and Settings are pages of their own under Pushbox in the sidebar. In the API: GET /v1/ci/runs and GET /v1/ci/runs/{run_id}.
  • froog Permafrost is now froog Quicksand, at froogcorp.com/quicksand. The old addresses (/permafrost, /sandbox and /vm) redirect. Same machines, CLI, API and prices.
  • New names: froog Permafrost and froog Pushbox. froog Sandbox is now froog Permafrost, at froogcorp.com/permafrost, and froog CI is now froog Pushbox, at froogcorp.com/pushbox. The old addresses (/sandbox, /ci and /vm) redirect. Nothing else changes: same CLI, API, runs-on: froog and prices.
  • New names: froog Sandbox and froog Tokenmail. froog VM is now froog Sandbox, at froogcorp.com/sandbox, and froog Email is now froog Tokenmail, at froogcorp.com/tokenmail. The old addresses redirect. Nothing else changes: same CLI, API, inboxes and prices.
  • Faster CI with no workflow changes. actions/cache (and setup-node, setup-python, setup-go, setup-java, rust-cache and others that use it) now saves to froog's own cache beside the VMs, scoped by branch like GitHub's: a pull request can't change what main restores. Up to 10 GB per account. The CI image now has what ubuntu-latest workflows expect: .NET 8 and 10, the AWS CLI, kubectl, helm, yarn, shellcheck and database clients, and setup-python (3.10 to 3.13), setup-node (20, 22, 24) and setup-go find their versions already installed instead of downloading them. See the docs.
  • Tidier GitHub runners. Runners GitHub still lists for VMs that are gone are removed from your repository's runner list, and two cases where a job could wait forever (a runner name GitHub still had, a job whose VM went to another job) now get a fresh VM.
  • froog CI insights. Every job now keeps what it used: average and peak CPU, peak memory and out-of-memory kills, with its steps and how long each took. froog reads the JUnit XML your tests write and shows each failed test with its message, and a test that failed and passed on the same commit is listed as flaky. Per repository and per job: runs, failure rate, p50 and p90 run time and queue wait, minutes and cost, the slowest steps, how often a /cache job started warm, and a size advice when another size fits better (more memory after an out-of-memory kill, more vCPUs for a CPU-bound job, half the size for a mostly idle one). In the dashboard's CI page (Insights, and Details on each job) and the API (GET /v1/ci/analytics, /v1/ci/jobs/{id}/metrics, /v1/ci/jobs/{id}/tests). See the docs.
  • CI log search. Every finished job's log is kept 30 days and searchable across all your jobs at once, line by line, with filters for repository, branch, workflow, job, conclusion, step and errors or warnings: froog ci search 'branch:main level:error timeout', the dashboard's Log search, or GET /v1/ci/logs/search.
  • CI monitors. An email (and a ci.monitor.triggered webhook) when matching jobs fail or run long: by repository, branch, workflow or job, after N failures in a row, only when the log contains a pattern such as OutOfMemory, with a cooldown. froog ci monitors add "main breaks" --repo acme/api --branch main, or the dashboard's CI page.
  • CI webhooks. ci.job.started, ci.job.completed, ci.job.failed and ci.job.refused, sent to the webhooks that list them, with the job, what it used and its test totals.
  • More CI sizes. runs-on: froog-xlarge (16 vCPU, 32 GB, on the plans with xlarge), and every size by its vCPUs: froog-2vcpu, froog-4vcpu, froog-8vcpu, froog-16vcpu.
  • SSH into a running CI job. Each job's log on GitHub names its VM and the froog ssh command to look inside while it runs.
  • New froog ci commands (CLI 0.12.0): froog ci migrate rewrites runs-on in your workflows (from ubuntu-*, Blacksmith or Depot labels; --write to save), froog ci stats, froog ci search, froog ci monitors, froog ci rightsize, froog ci metrics, froog ci tests, froog ci ssh and froog ci caches.
  • froog Tokenmail: inboxes for agents, $2 a month each. An agent signs up for a service with its own address on froogmail.com, then froog inbox wait ADDRESS --code waits for the email and prints just the one-time code (--link prints the verification link). Each message comes with the codes and links already pulled out, mail arrives over TLS, messages are kept 30 days, and an address is never given out twice. Inboxes only receive. They're a subscription of their own, separate from VM plans: the first froog inbox create opens Stripe Checkout. Attach one to a VM with froog inbox create --sandbox NAME and it's $FROOG_EMAIL there, readable only by that VM's key. See froog Tokenmail and the docs.
  • froog CI has its own price: $0.0006 per vCPU per minute of job time. That's $0.0012 a minute for 2 vCPU, $0.0024 for 4 and $0.0048 for 8, about a fifth of GitHub's list price. Billing covers only the job itself, per second, from when GitHub starts it until it completes. Booting the VM, setting up the runner and saving a cache are free. CI jobs show as their own lines in froog usage and the dashboard. See pricing.
  • Safer CI caches. Before a /cache disk is saved, froog removes logins (Docker, git, gh, npm, PyPI, cloud CLIs, SSH keys), the runner's step scripts and logs where GitHub writes secrets, the token actions/checkout leaves in .git/config, and /tmp. Your own ~/.froog/cache-scrub runs first. Pull requests from forks no longer read a cache.
  • A CI page in the dashboard: setup, jobs with their cost and logs (filter by repository or state, refreshing while jobs run), job time and cost this period, your caches with a button to start one over, and the public-repository settings.
  • More dependable froog CI. Two runs queued at once in a private repository no longer fail each other's jobs. A VM that doesn't start, or a runner that exits before taking its job, gets one more try, then the job fails with the reason instead of waiting a day. Webhook deliveries that failed (during a deploy, say) are asked again, and a job whose completed event was lost is closed from GitHub after 10 minutes. The runner follows GitHub's latest release.

November 13, 2026

  • froog CI has its own page. froogcorp.com/ci: GitHub Actions runners on a fresh VM per job with runs-on: froog, billed per second at sandbox rates. The agent sandboxes moved to froogcorp.com/vm, and the home page now shows both products.
  • Warm CI caches. runs-on: froog/cache=NAME starts each job from the cache named NAME, and when a job of a push, schedule or manual run on the default branch succeeds, its disk is saved back. Toolchains, ~/.cargo and Docker layers are already there next time. Pull request jobs read the cache and never write it. A runner already on the disk is reused instead of downloaded again. See the docs.
  • Plans are $10 to $100 a month to choose yourself. The $250 and $500 plans are by request: email hello@froog.tech and we'll turn them on.
  • Safer billing. A downgrade, or fewer organization seats, now gives no credit: the new plan's limits apply at once, this period's paid usage stays, and the next period costs the new price. Plans can't change while a payment is outstanding. If ending the free trial early fails because the card is declined, the trial simply continues. Checkout asks your bank to confirm the card (3D Secure). A payment that's disputed or reported as fraudulent suspends the account at once. The terms and acceptable use policy are updated to match, and now also say: one account per person, one free trial per person, organization and payment method, and credits obtained through abuse can be revoked.
  • Your disk survives a host failure. Stopped sandboxes and snapshots are copied off the machine they run on. If that machine stops answering, starting, forking or restoring the sandbox now restores its copy onto another machine and boots it there, with no action from you. Until a fresh copy has finished (usually a few minutes after a stop), the sandbox waits for its machine to come back rather than starting from older data.

November 12, 2026

· CLI 0.8.2 to 0.10.4

  • Sign-up is open. Sign in with Google or an email code. No card until you start your first sandbox: pressing Create without a plan opens the plans, and the sandbox starts as soon as you're back from Stripe Checkout. The first 7 days are free.
  • Prompt from the dashboard. A Prompt button on every running sandbox runs a coding agent and shows its answer, so a first agent run needs no terminal. The Get started checklist now goes: start a sandbox, give the agents a key, run a prompt.
  • froog onboard ends with a first prompt, and asks for a plan only when it starts your first sandbox.
  • Computer use for every agent. Prime Agent, Kimi Code and Mistral Vibe now get the computer MCP server too, like the other seven.
  • Published start times. The status page shows the median and 95th percentile time from the API call to SSH for creates, starts, warm resumes and forks, next to our targets (docs).
  • A trust page: where your data is, subprocessors, how sandboxes are secured, compliance status and how to report a security problem (also in security.txt).
  • This changelog, with an RSS feed, and the docs as Markdown at froogcorp.com/docs.md.
  • Organizations. A team's shared plan, wallet and sandboxes: members, invites, roles, seats, shared or private sandboxes and organization API keys (froog org, froog share).
  • AI credentials proxy. Your model API keys stay out of sandboxes: agents call the proxy with a placeholder and froog adds the real key. Profiles, per-sandbox usage and blocks (froog ai).
  • Agent conversations. froog prompt keeps a conversation per sandbox, with a queue, steer, interrupt, attachments and an event stream. Ten harnesses, a model catalog (--list-models), fast mode, and sign-in with your Claude or ChatGPT subscription.
  • Named environments with versions, keys limited to one environment, share codes, and reading files inside snapshots without starting them.
  • Alerts and recovery. Unresponsive sandboxes are detected, errored ones are rebuilt from their last snapshot, and metrics history and process records are kept.
  • Plans from $10 to $500, a wallet bonus from $200, pausing a plan while keeping disks, opt-in extra starts and closing your own account. xlarge (16 vCPU, 32 GB) is coming soon.
  • More API: a deadline set at creation (expires_in_secs), file watch and port events, and audit log filters and CSV export.
  • Eval adapters for Harbor / Terminal-Bench 2.0 and AgentEnv.
  • Public IPv6 for every sandbox. Inbound is refused except SSH and ping until you open a port (froog port open).
  • Version 0.9: auto-start on any API call, wait for a port, label-scoped API keys, sandbox objects in the SDKs and a Go SDK, a 60 fps H.264 desktop stream, froog mcp and a hosted MCP server, streamed exec, idempotency keys, request ids and rate-limit headers, labels and list filters, froog run and froog push.
  • Guides: OpenAI Agents SDK, Claude Agent SDK, Vercel AI SDK, LangChain and LangGraph, Mastra, and switching from Runloop.
  • Security hardening across the AI proxy, sign-in, share codes, host mounts, organizations and rate limits. SSH key changes now reach running sandboxes at once.
  • Fixes: a command killed for using too much memory exits 128+N instead of 255. froog stop no longer waits forever when a sandbox auto-starts right after. Desktop recordings have sound. The Windows CLI runs and the macOS CLI builds again.

November 11, 2026

· CLI 0.8.0 to 0.8.1

  • froog. The new name, at froog.tech, with the froog CLI.
  • Warm resume. A stop keeps the VM paused for 10 minutes. A start in that window resumes it in about a second, with memory and processes.
  • Computer use. A computer MCP server in every sandbox (screenshots, clicks, typing, the accessibility tree), registered for the coding agents.
  • The wall: every running sandbox's desktop, live, on one page. A new desktop viewer, themes and MP4 recording.
  • Omarchy and Ubuntu 26.04 as OS choices, next to Ubuntu 24.04 and Debian 13.
  • OpenAPI 3.1 and generated Python and TypeScript SDKs.
  • Per-second billing with monthly plans and a prepaid wallet.
  • Public URLs on their own domain, froogusercontent.com.
  • Sandboxes run on QEMU/KVM. A redesigned site and dashboard.

November 10, 2026

· CLI 0.7.0 to 0.7.2

  • Saved snapshots as templates: they outlive their sandbox and start new ones (froog new --from).
  • froog prompt runs a coding agent in a sandbox, with --model and --effort.
  • Command history: every command recorded for 90 days and readable while the sandbox is stopped (froog history, froog ps).
  • Scoped API keys (actions, presets, per-sandbox limits) and the froog CLI inside every sandbox with a key limited to it.
  • Data controls: monitoring off, snapshots off and zero data retention.
  • OpenTelemetry export, per-sandbox environment variables, signed file URLs, key rotation, and private-by-default public URLs.
  • A native Windows CLI, and docs for agents: llms.txt, llms-full.txt and skill.md.

November 9, 2026

· CLI 0.2.1 to 0.6.4

  • The desktop in your browser, nested virtualization (/dev/kvm in every sandbox) and Debian 13.
  • Environments: repos, secret files and a setup script for every new sandbox.
  • Public URLs, background commands (exec --detach, jobs, logs -f), the file API and froog forward.
  • Webhooks for sandbox events, a status page and a self-updating CLI.
  • Logging in from the browser, a dashboard with Google sign-in, and a free trial.

November 8, 2026

· CLI 0.1.0 to 0.2.0

  • First release: the CLI, the API, snapshots and forks, billing and the docs.