Tuist vision

Tuis is a long-term open source project. Its goal is:

  • Making developers productive working with Xcode

How it does it

Most of the issues developers struggle with nowadays when they deal with Xcode projects come from the fact that their format is monolithic, closed to extensions, and exposes many implementation details. Xcode sets the right settings up when the project is created, but when it grows, the maintenance becomes complex, cumbersome, and error-prone.

We believe that the maintenance of large Xcode projects should be simpler. To do so, Tuist abstracts developers from implementation details and complexities by leveraging projects generation.

General aim

Tuist should provide a standard command line interface that developers get familiar with and know how to use regardless of the project they are interacting with. We aim to define a global language to interact with Xcode projects. The language should be concise and straightforward, and allow developers to perform the most common actions: build, run, test, release, and generate Xcode project.


Most of the communication happens on GitHub issues and pull requests. We prefer that over real-time channels like Slack to facilitate asynchronous communication and keep track of all the discussions. If developers reach out to individual maintainers privately, we should forward them to GitHub, where they can open an issue which anyone has access to.

With a lot of these things, though, they’re about scale


The Tuist project aims to encourage developers to share their experience working with Xcode projects and help them to contribute and bring their ideas. We should strive to provide a place for anyone to be able to own a context for working with Tuist (e.g., blogging with Jekyll). The aim of the core team should be to work on ways to encourage adoption and show off great work.

Got improvements? Help improve this document via sending PRs.