OpenAI now runs its internal monorepo on Pando, a Git-compatible backend it built in 10 weeks. The company says median push latency fell by nearly 80% after the switch. Pando also serves close to a petabyte of Git data per day. Developers still type ordinary Git commands, and some of the client fixes behind the project already sit in upstream Git.
OpenAI engineers Aaron Friel, Taylor Blau and Ted Nyman described the system in OpenAI’s engineering post on scaling Git, published November 2. The New Stack’s report on the Pando backend confirms the key figures. Pando itself is not open source.
Why OpenAI’s Git server ran out of room
Coding agents changed the load. With Codex, one engineer can work on several changes at once, and each change brings its own pushes, fetches and merges. OpenAI expects quarterly commits to its monorepo to rise more than 2,400% by the end of 2026, compared with the first quarter of 2024, The New Stack reports.
Fetch and push delays and failed merges became common from around the end of 2025, according to BigGo Finance’s summary of the OpenAI post. The reliability of the Git backend at times dropped below 90%.
The team first asked whether Git itself had reached its limit. Its answer was no. OpenAI concluded the bottleneck was the classic server design, not the Git client or protocol. That is why it kept Git and rebuilt only the server side.
How Pando differs from a normal Git server
The table below compares a standard Git server with Pando, based on the facts OpenAI published.
| Task | Standard Git server | Pando |
|---|---|---|
| Branch updates | Keeps all branches consistent at once | Orders updates per branch; unrelated branches never wait on each other |
| Fetch | Builds a fresh packfile for each client | Serves stored packs through download links |
| Before a push | Lists every branch (over 100 MiB with millions of branches) | Advertises only the trunk branch by default |
| Upkeep | Repacks and garbage-collects, using CPU and disk | Merges small packs in the background and never discards packs |
| Client | Standard Git | Standard Git commands |
One order per branch, not one global snapshot
Pando uses a causal consistency model. Pushes to the same branch still happen in a strict order. Pushes to different branches run side by side.
The cost is small but real. A client that reads several branches at once may see them at slightly different moments. OpenAI argues this is acceptable, writing that “neither users nor agents depend on the global order of reference updates.”
Reusing packs instead of rebuilding them
Git moves code in bundles called packfiles. When a push arrives, Pando checks the incoming pack while streaming it into blob storage, without unpacking it. A metadata store then records the new branch tip, the pack’s location and what it depends on.
On a fetch, Pando picks the stored packs the client is missing. It hands them out as links using Git’s packfile-uri protocol feature, so the client downloads them directly. A regional caching service called Express answers more than 99% of these requests from its cache.
The numbers are large. Pando served over 57 TB of packs in a single hour, with more than 99% coming from local disk cache. On standard cloud VMs, clones and fetches can fill a 10 Gbps link.
Advertising only trunk has a downside. Repeat pushes to one branch resend everything that is not yet on trunk. OpenAI calls this a fair trade because the median pack is under 20 KiB.
Background compaction
Left alone, a busy monorepo would create tens of thousands of small packs a day. Pando’s background workers merge them into larger packs over time, in the style of a log-structured database. The levels go up to L4. This lets Pando find the packs a client needs in logarithmic time.
What changes for you
Pando is an internal system, so no outside team can deploy it today. Even so, the project touches regular Git users in three ways.
- Everyday Git users: OpenAI sends general fixes to the main Git project. Its public tracker of OpenAI’s Git patches lists about 50 upstream patches. Fixes for packfile-uri download concurrency and new trace output are already in Git’s master branch.
- Teams with large repos: Some tracked patches report big speed gains. A path-limited stash dropped from 18.87 seconds to 0.06 seconds in one test. A bitmap write fell from 984.73 seconds to 200.06 seconds in a topic branch not yet merged.
- Teams running their own Git servers: The packfile-uri feature already exists, but it needs protocol version 2. Clients must opt in through the
fetch.uriprotocolssetting, which is empty by default. The Git documentation still marks the server side as experimental.
Other changes live only in OpenAI’s public fork of Git on GitHub for now. They include parallel pack download and indexing, retries for failed pack downloads and an “explicit haves” option for push. OpenAI’s own developers get these through a custom Git build on their machines and inside the ChatGPT desktop app.
How OpenAI built it
OpenAI wrote Pando in Rust, with no legacy dependencies. One engineer designed the core. Teams of Codex agents wrote the implementation, and a handful of engineers deployed it. Deterministic simulation tests hunted for race conditions and regressions. Pando began serving production traffic in April 2026, about 10 weeks after work started.
Timeline
- 2019: A Google engineer first proposes packfile-uri for Git, per The New Stack.
- Q1 2024: Baseline for OpenAI’s commit growth forecast.
- Late 2025: Push and fetch delays and merge failures become frequent.
- April 2026: Pando starts handling production traffic.
- November 2, 2026: OpenAI publishes the details.
What remains unclear
OpenAI has not said how outsiders might use the technology. It says it is exploring ways to share it, but it is not open-sourcing Pando. Anthropic, which built its own system called Scion from scratch instead of staying with Git, has no plans to release it either, The New Stack notes.
The post also leaves out some numbers. Commenters on Hacker News asked for pushes per second and counts of concurrent pushers, as TLDR’s roundup of the discussion notes. One commenter questioned the safety of checking streamed packs without unpacking them. Another argued that commit volume is a weak way to measure scale.
Those questions matter for anyone hoping to copy the design. For now, the clearest takeaway is narrower. AI agents can push a Git server far past its usual load, and OpenAI chose to fix the server rather than replace Git.











