What the team has shipped in 2025C5

Major Features

Test Insights

Build times have long been the bottleneck that teams optimize for. But there’s another dimension to developer productivity that often goes unmeasured: test performance. We’ve seen teams struggle with slow test suites, unclear performance trends, and the cognitive overhead of not knowing where time is being spent. The feedback loop between writing code and validating it shouldn’t be a black box.

This cycle, we shipped Test Insights - expanding our existing build analytics to capture and analyze test data. The Tests page now gives teams visibility into test performance across multiple dimensions: by suite, by module, and down to individual test cases. You can see how test durations trend over time, identify which tests are consistently slow, and understand how test performance correlates with specific builds. We’ve connected tests to builds so teams can see compilation optimizations alongside test results - because these two dimensions of developer experience are fundamentally intertwined.

This is just the beginning. We’re laying the groundwork for deeper insights - flakiness detection, reliability scoring, and smarter test prioritization are all on our radar.

Related PRs:

To get started, check out the Test Insights documentation.

Open Registry

When we launched the Tuist Registry earlier this year, we required authentication. It made sense at the time - we needed to understand usage patterns and ensure reliability before scaling. But as the registry grew to serve almost 10,000 packages and over 160,000 releases, something became clear: the friction of authentication was at odds with how developers expect to consume open source dependencies.

npm doesn’t require login to install packages. We were asking developers to change their mental model for no compelling reason.

This cycle, we removed that barrier. The registry is now open to everyone - no account, no authentication, no friction. The same security guarantees remain: packages are sourced directly from their original repositories, and the Swift CLI verifies checksums on every download. We’ve simply removed the unnecessary step that stood between developers and faster dependency resolution.

Related PRs:

Read more in our blog post Opening up the Tuist Registry and the Registry documentation.

Xcode Cache Improvements

Caching is one of those features where the difference between “good” and “great” is measured in seconds - seconds that compound across every developer, every build, every day. We’ve been running our Xcode cache infrastructure for a while now, but this cycle we asked ourselves: what would it take to make it noticeably faster?

The answer starts with acknowledging a fundamental constraint: physics. There’s an irreducible latency between where developers work and where cache servers live. Rather than accept this as a fixed limitation, we’re evolving our architecture to bring the cache closer to where the action happens. This cycle, we took the first step: instead of routing every request through Cloudflare’s load balancer, the CLI now connects directly to cache endpoints. The result is a 3-10% improvement in download times - and this is just the beginning. Stay tuned for more on this front.

We also invested heavily in observability. Cache hit rates, latency tracking, throughput analytics - the kind of data that helps teams understand not just that caching works, but how well it’s working for their specific codebase. Because optimization without measurement is just guesswork.

Related PRs:

Learn more in our blog post Speed up your builds with the remote Tuist cache for Xcode and the Xcode cache documentation.

Regional Storage

Data residency isn’t just a compliance checkbox - for many organizations, it’s a hard requirement that determines which tools they can adopt. We’ve heard from teams who wanted to use Tuist but couldn’t because their compiled binaries needed to stay within specific geographic boundaries.

This cycle, we added support for regional storage. Teams can now specify where their artifacts are stored - Europe, United States, or distributed across all regions. For enterprise customers with specific infrastructure requirements, we also added the ability to configure custom S3 storage per account. The goal is simple: Tuist should fit into your existing constraints, not force you to work around ours.

Related PRs:

OAuth Username Selection

A small change, but one that reflects how we think about user experience: when signing up with OAuth providers like GitHub or Google, you can now choose your own username instead of having one automatically generated. It’s the kind of detail that doesn’t show up in feature announcements but makes the product feel more intentional.

Related PRs:


CLI Improvements


Server & Dashboard Improvements


Bug Fixes

High Priority

CLI

Server


Blog Posts

We published 6 blog posts this cycle:


Documentation Updates

New & Reorganized Docs

Localization

Other Updates


Releases

During this cycle we shipped:

  • CLI: 4.107.0 through 4.111.1 (13 releases)
  • Server: 1.35.3 through 1.48.1 (33 releases)

Community Contributions

A big thank you to our community contributors this cycle: