Blog

Changelog

Browser terminals, faster snapshots, scoped S3 access, longer VM commands, outbound controls, and new guides.

Since our September changelog, we've added more ways to build on Freestyle VMs and control what those VMs can access. Browser apps can connect to VM terminals with scoped credentials, taking snapshots is faster, S3 access can be limited to specific objects and actions, and the wallet now shows daily usage estimates.

AreaChangeDetails
SDKBrowser terminalsOpen a VM terminal from a browser using a scoped identity token instead of an account API key. The SDK can reconnect to the same session after a dropped connection, and connectXterm handles terminal input, resizing, and output replay.
SDKExpiring client tokensSet an expiration time when creating an identity access token. After it expires, new requests and terminal reconnections require a fresh token; an open terminal stays connected.
SDKLonger-running commandsOn VMs with an updated guest agent, vm.exec() supports timeouts up to 24 hours. A running command and its result can be recovered after a service interruption; older agents retain the five-minute limit.
SnapshotsFaster snapshotsTaking a snapshot of a running or paused VM now finishes faster.
NetworkingScoped S3 accessFreestyle can sign S3 requests at the edge so the VM never receives the storage key. Limit a rule to a bucket, object-key prefix, and allowed operations, including multipart uploads.
NetworkingDomain-specific outbound accessAllow a VM to connect to selected public TLS domains without granting broad public egress. Rules without request transforms preserve end-to-end TLS and the origin's certificate.
NetworkingRequest-specific transformsApply outbound HTTP transforms only to selected methods and paths. JSON Patch can set or change fields in a request body while the rule injects credentials at the edge.
DashboardDomain setupDNS verification now shows provider-specific Name / Host values and the full record name. Wildcard setup explains which ownership check, DNS records, and HTTPS steps are needed.
DashboardDaily spendThe wallet now charts estimated daily usage by vCPU, memory, storage, and data transfer, with a month-to-date total. The estimates show usage before credits and exclude plan fees.
ReliabilitySSH on a full diskOpenSSH access remains available when a VM's guest storage is exhausted, giving you a way to inspect and free space.
ReliabilityCommand and terminal outputInteractive terminals handle large output streams without dropping data under backpressure. vm.exec() also returns non-UTF-8 output instead of failing with a 502 response.

New guides

We published new guides for selecting OpenAI models and injecting credentials, using S3 as a Git remote, and routing a sandbox through a user's computer. There are also migration guides for E2B and OpenShell, plus credential-injection recipes for Neon, PostHog, Keycard, Tigris, Firecrawl, Exa, and Hugging Face.

Ben Swerdlow

Legacy API deprecations, private networking, secret injection, persistent terminals, and larger VMs.

API deprecations

Freestyle is now focused on VMs. We've deprecated the standalone Git, code execution, web deployment, and scheduled trigger APIs. The current platform covers VMs, snapshots, networking, domains, and identities.

VM updates

Since our last changelog, we've added more control over how agents use their VMs: what they can reach, which credentials they can use, and who can access their work. VMs now scale to 64 GiB of memory on Pro, terminals can reconnect to the same running process, and private networks can connect to your existing infrastructure.

The main changes since April are as follows:

AreaChangeDetails
VMsUbuntu base snapshotsUbuntu 24.04 images with systemd, Docker, Node.js, and Python ready to use. A minimal BusyBox image starts at 128 MiB of memory.
VMsLarger VMsPro supports up to 32 vCPUs, 64 GiB of memory, and 256 GB of disk per VM. Enterprise supports custom limits.
APILive resizingGrow a running VM's CPU, memory, and disk without rebooting or recreating it.
APIPaused VM capacityPaused and stopped VMs release their share of your vCPU and memory budgets. Paused VMs retain their memory and disk and incur only storage charges.
NetworkingDual-stack VPCsConnect VMs over private IPv4 and IPv6 networks, with automatic or explicitly assigned addresses.
NetworkingWireGuard tunnelsConnect your computer or existing infrastructure to Freestyle VPCs. Attach and detach networks without replacing the tunnel's configuration.
NetworkingFirewall APIExplicitly allow traffic between VMs, VPCs, tunnels, IP ranges, and the public internet, with port and protocol filters. VM creation requires a firewall configuration.
NetworkingFree domains and custom domainsPublish a VM service on an available style.dev name, or use your own verified domain with managed HTTPS and wildcard support.
NetworkingCredential injectionInject HTTP headers or authenticate outbound Postgres connections at the edge, so agents can use services without storing those credentials inside the VM. HTTPS header injection also supports private Git clone, fetch, and push.
NetworkingForward authProtect public VM services with your own authorization endpoint. Reuse one configuration across domains and keep designated session cookies out of the VM.
NetworkingCustom egressRoute VM traffic through a router VM or a WireGuard exit. SOCKS5 rules also let proxy-aware clients use your own proxy with credentials held at the edge.
SDKPersistent terminalsName PTY sessions and reattach by name or ID after disconnecting. The process keeps running, with terminal resizing and signals available through the SDK.
SDKScoped client tokensGrant an end user or agent access to specific VMs and Linux users without sharing your team API key. Revoke individual tokens or VM grants.
SDKLarge file transfersTransfer files up to 16 GiB with automatic chunked uploads, progress reporting, and retries. Stream downloads or read a range of bytes without loading the whole file.
CLIVM and account toolsManage VMs, snapshots, files, networks, domains, and identities from the CLI. Create and revoke API keys from a browser login, with JSON output for scripts.
DashboardBranded placeholder pagesSet your own logo and product name for pages on your verified domains that do not yet have a VM route. Configure branding once per account.
DashboardData transfer estimatesThe wallet shows data transfer usage and estimated transfer costs for Hobby and Pro. Traffic between your VMs inside a VPC is free.
PlatformVM creation under loadWhen a host refuses a new VM because it is overloaded, creation retries placement on another eligible host.
Ben Swerdlow

Custom VM Sizes, Git Speed Up, Universal Logs Dashboard and more.

This week Freestyle got faster and more powerful. We launched custom VM sizes which allow users to get up to 32 vCPUs and 32 GB of RAM (the most powerful on the market by a factor of 2x) in 400ms. We fixed a series of bugs related to docker rate limits and scaling VMs. We majorly upgraded git with massive performance increases throughout every part of the system — the serverless APIs, pulls and LFS all saw QOL updates along with indexing that made large git repos ~7x faster. We also launched the universal logs dashboard which is a single place to see everything going on in Freestyle.

The specific public changes that landed this week are as follows:

AreaChangeDetails
APICustom VM sizesConfigure vCPU, RAM, and disk per VM up to 32 vCPUs / 32 GB RAM, still launching in ~400ms.
APIVM resizeAdjust vCPU, memory, and rootfs on existing VMs without recreating them.
APICommand timeoutsSet a max execution duration on commands; timeouts return HTTP 408 with any captured output.
APIDocker credentialsPass dockerCredentials on VM and snapshot creation to pull from private registries.
SDKDocker credentialsdockerCredentials available on vms.create and vms.snapshots.ensure.
SDKPostgres integrationDeclare a Postgres server, databases, and SQL scripts that bake into your VM snapshot.
APIObservability logs queryQuery account-wide logs through the Observability API.
DashboardUniversal LogsUnified account-wide log view across every service, with service-level filtering.
DashboardGit repo searchSearch repositories directly from the dashboard.
DashboardDeployment fetchFetch a deployment directly from the dashboard.
DashboardEasy cloneOne-click clone command from the repository page.
DashboardCron + deployment creationCreate a new deployment while creating a cron job, or select an existing deployment.
DashboardSDK playgroundExperiment with the SDK directly in the dashboard playground.
DashboardDockerfile snapshot creationCreate snapshots from Dockerfiles directly on the snapshots page.
PlatformGit commit indexingAuto-generated after pushes — commit-history queries ~7x faster on large repos.
PlatformGit pulls & LFSThroughput improvements across pulls and LFS transfers.
Ben Swerdlow

Git Search API, scheduled triggers, VM logs, and more.

After our launch on April 6th we got a ton of new interest and feedback from the community. This has been a week of targetted bug fixes, performance improvements and few new features. We focused on addressing concerns from users in our Discord and fixing onboarding pain.

This Friday we officially transitioned from the freestyle-sandboxes package to the freestyle package name. This will be our primary package going forward. bun i freestyle just works now.

The specific public changes that landed this week are as follows:

AreaChangeDetails
APIGit Search APISearch across repositories stored on Freestyle, available through the SDK.
APIScheduled TriggersDefine cron-based schedules that automatically execute your code on a recurring basis.
SDKskipCache parameterSkip cache on snapshot and VM endpoints.
SDKSnapshot deleteDelete snapshots programmatically via the SDK.
SDKVM loggerBuilt-in logger support for VMs.
DashboardVM LogsView logs from your VMs. Filter by service name.
DashboardUsage & LimitsVM usage tracking with per-account limits visible in the dashboard.
PlatformLandlockEnabled Landlock in the VMs kernel for filesystem sandboxing.

Coming Next

We're working rapidly on observability, documentation/sdk work and speed. We're upgrading our logging system a ton now and will soon have a unified logging experience across all services in the dashboard. We'll be exposing more tools in our CLI, SDK and API for understanding the state of your VMs, debugging failures and monitoring production workloads.

We want our SDK has the best support for complex usage patterns of agents using computers. To do this we're adding more integrations to support many common tools and services better in our VMs. We've revamped our integration architecture to automatically support docker-layer caching which should make all usage with it much faster.

Our median VM startup time right now is ~400ms and we hope to get that to <300ms by the end of this month.

Ben Swerdlow
esc