Overview
Tuist.swift (also known as Config.swift) is the global configuration manifest for Tuist. It defines project-wide settings, cache configuration, server URL, and other options that apply across all projects in your repository.
Location
Tuist traverses up the directory hierarchy to findTuist.swift. It’s typically placed at the root of your repository:
Basic structure
Config is a type alias for Tuist.Properties
fullHandle
The full project handle such as
tuist-org/tuist. Used to identify your project when connecting to Tuist’s servers for caching, previews, and analytics.url
The base URL that points to the Tuist server. Use this to point to a self-hosted Tuist server if needed.
cache
Configures Xcode cache behavior.
inspectOptions
Options to use when running
tuist inspect.project
Configures the project Tuist will interact with. When no project is provided, Tuist defaults to the workspace or project in the current directory.
Cache configuration
Cache options
When
true, the local proxy uploads artifacts to the remote cache. Set to false for read-only mode (downloads only, no uploads).Project configuration
Theproject parameter accepts a TuistProject value that configures various project-level settings:
Compatible Xcode versions
List of Xcode versions the project is compatible with. Options:
.all- Any Xcode version.list([String])- Specific versions.min(String)- Minimum version.exact(String)- Exact version only
Swift version
The version of Swift that will be used by Tuist. When nil, uses the Swift version from the selected Xcode.
Plugins
A list of plugins to extend Tuist functionality. Plugins can be loaded from:
- Git repositories
- Local paths
- Swift Package Manager
Generation options
Options to control project generation behavior:
resolveDependenciesWithSystemScm: Use system SCM for dependenciesdisablePackageVersionLocking: Disable SPM package version lockingadditionalPackageResolutionArguments: Extra arguments for package resolution
Install options
Options for the
tuist install command:passthroughSwiftPackageManagerArguments: Arguments to pass through to Swift Package Manager
Examples
Minimal configuration
With custom server URL
Read-only cache
With Xcode version constraints
With plugins
Full configuration
Best practices
Single config file
Keep one
Tuist.swift at your repository root to ensure consistent behavior across all projects.Version control
Commit
Tuist.swift to version control so all team members share the same configuration.Team caching
Set
cache: .cache(upload: true) to enable cache sharing across your team.Xcode constraints
Use
compatibleXcodeVersions to ensure team members use compatible Xcode versions.