Caissons, in private testing

Agents edit the repository, not a copy of it.

A caisson is an online worktree on Sailfork. Each agent reads and writes files in the repository itself, on its own branch, with no clone on a disk and no sandbox to start. Its work comes back as a pull request.

One agent, start to finish

It opens a caisson on its own branch, works in the repository on Sailfork, and hands back a pull request. See how caissons work

sailfork.com/acme-pay/api

  1. open agent/round-totals caisson
  2. read src/billing/invoice.ts
  3. read src/billing/money.ts
  4. edit src/billing/invoice.ts +4 −2
  5. edit src/billing/invoice.test.ts +18
  6. commit Round invoice totals
  7. open pull request #418
Nothing cloned to a disk, and no machine started for it.

Clone race

The Linux kernel, served by Sailfork and by stock git on the same machine. How it was measured

  • Sailfork

    Pack segments, sent as stored

    1.89 s

    $ git clone https://sailfork.com/torvalds/linux

    First byte after 0.14 ms, 2.17 GiB sent in 1.89 s.

  • git upload-pack 2.54

    Pack bitmap, same machine

    8.89 s

    $ git clone file:///srv/git/linux.git

    First byte after 4.50 s, 2.03 GiB sent in 8.89 s.

linux.git, 11,845,633 objects, replayed at the measured speed. Server time to send the pack, median of 5 runs on one Apple M4 Max; git had a pack bitmap. Your machine still resolves deltas after the pack arrives.

Copied, not computed

Where the 4.5 seconds go, and why Sailfork skips them.

Stock git

Enumerate 11,845,633 objects Build a pack

First byte at 4.50 s

Sailfork

Send the stored segments

First byte at 0.14 ms, about 32,158 times sooner

One full clone of linux.git, server time only. The two steps are not drawn to scale against each other; together they take the whole bar.
Stored ready to send
When you push, Sailfork writes the repository as pack segments. A clone sends those segments as they are.
Nothing to count first
Stock git enumerates objects and builds a pack for every clone, even with a bitmap. That is the 4.5 seconds before its first byte.
The git you already have
No client to install. Push and clone with stock git over HTTPS or SSH.

Every operation, timed

Clones, shallow clones and fetches, from the first byte to the last. Every number

Time to

Sailfork Stock git

  • Full clone

    11,845,633 objects

    0.14 ms
    4.50 s

    32,158x

  • Shallow clone

    101,713 objects

    0.18 ms
    2.86 s

    15,863x

  • Fetch 100 commits

    8,434 objects

    0.32 ms
    195.26 ms

    610x

Log scale. Server time on linux.git, the median of 5 runs on one Apple M4 Max, against git 2.54 with a pack bitmap.

CPU to serve 1 GB of a full clone

Sailfork
0.591 s
Stock git
4.052 s
6.9x less CPU for every gigabyte sent, so the same server carries more clones.

Fast, and still git

A push is acknowledged only once it is durable in storage and recorded. Then it was tested until it broke.

  1. Push arrives
  2. Durable in storage
  3. Recorded
  4. Acknowledged
If git says a push went through, it is already stored and on the record.

git’s own test suite

pass

Run against git clients from 2.26 to 2.54.

0 differences

4,533 randomized histories, each checked against stock git

0 lost

2,763 pushes through a database failover during a push storm
0 private bytes leaked Attacks across mixed public and private forks.

Room for big repositories

Written down, so nothing surprises you halfway through a push.

  • One push

    up to 100 GiB, finished within 100 minutes

  • The Linux kernel

    2.03 GiB, every commit since 2005

  • One file

    up to 10 GiB

The whole history of Linux fits in a single push 49 times over.
No limit
on how often you clone, fetch or push
100 minutes
for a single push to finish

Everything around the git

See the whole platform

Review

Reviews, drafts and threads. Merge, squash or rebase behind branch rules.

Browse

Blame, diffs and path history, highlighting for 16 languages and a fuzzy file finder.

Script

A REST API with an OpenAPI spec, tokens scoped to what they need, and ed25519 SSH keys.

$ curl -fsSL https://sailfork.com/downloads/sf/install.sh | sh

Installs sf, the command-line client for sign-in, repositories, SSH keys and tokens.

Where your code lives

And everything Sailfork keeps about you while it is there.

us-east-2
Amazon Web Services, Ohio. Email goes through Amazon SES.
1 cookie
A session cookie, set only when you sign in
0 trackers
No advertising or tracking cookies
0 analytics
No analytics scripts on any page

FAQ