FoxByte
Branching

Branch the whole database, not a dump of it

fox branch create qa clones every table, index and row in seconds, whatever the size. The branch is fully isolated: its writes never touch main, and main’s never touch it.

$ fox branch create qa
main
qa
0 of 48 blocks written48 still shared with main
How it works

You pay only for what you change

A branch is a copy-on-write clone of main served by its own Postgres: ZFS on macOS and Linux, btrfs on Windows. Blocks are shared with the parent until the branch writes to them.

So a copy of a large database costs almost nothing at first, and grows only by what it changes.

  • Idle branches suspend themselves and wake on the next connection.
  • Connect to …:6432/qa: the database name is the branch.
  • Branches belong to whoever made them; others get “not found”.
pr-1482 · running
Lifecycle

Create, reset, compare, sleep

Create

A complete copy of main in seconds, with its own connection string.

Reset

Throw away a branch’s changes and start again from its parent.

Diff

See the schema changes that separate two branches, straight from the Blackbox.

Suspend

Stop a branch and keep its data; the next connection wakes it.

The CLI

The whole workflow in six commands

Every command also exists in the web console and the REST API.

$ fox branch create qa
$ fox connect qa
$ fox branch diff main qa
$ fox branch reset qa
$ fox branch suspend qa
$ fox branch delete qa
Use cases

What teams branch for

A database per pull request

Branch main for each PR, point the preview at it, delete it on merge.

Migration rehearsal

Run the risky migration on a full-size copy first, and read what it changed.

A sandbox per agent

Each AI agent gets its own copy and a key that opens only that copy.

Make your first copy in seconds.

fox branch create qa, on the database you already have.

$ curl -fsSL https://get.thefoxbyte.com/install.sh | sh