Documentation Index
Fetch the complete documentation index at: https://mintlify.com/tuist/tuist/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Thetuist plugin command provides tools for plugin development and management. Plugins extend Tuist’s functionality with custom tasks and integrations.
Usage
Subcommands
tuist plugin archive
Archives a plugin into a NameOfPlugin.tuist-plugin.zip file for distribution.
tuist plugin build
Builds a plugin.
tuist plugin run
Runs a plugin task.
tuist plugin test
Tests a plugin.
Common Options
The path to the directory that contains the definition of the plugin.
Short form of
--path.Choose configuration:
debug or release.Short form of
--configuration.Options (for plugin archive)
The path to the directory that contains the definition of the plugin.
Short form of
--path.Options (for plugin build)
Build both source and test targets.
Print the binary output path.
Build the specified targets.
Build the specified products.
Options (for plugin run)
Build both source and test targets.
Skip building the plugin before running.
Arguments (for plugin run)
The plugin task to run.
The arguments to pass to the plugin task.
Options (for plugin test)
Build both source and test targets.
Test the specified products.
Examples
Build a plugin
Build plugin in release mode
Build specific targets
Run a plugin task
my-task plugin task with arguments.
Run without building
Test a plugin
Test specific products
Archive a plugin
.tuist-plugin.zip archive.
Archive from specific path
Plugin development workflow
1. Create a plugin
Plugins are Swift packages that define custom tasks:2. Implement tasks
Create executable targets for your tasks:3. Build and test
Develop your plugin iteratively:4. Archive and distribute
When ready to share:.tuist-plugin.zip file you can distribute.
Plugin types
Task plugins
Executable tasks that extend Tuist functionality:Helper plugins
Libraries that provide reusable code:Using plugins
Reference plugins in yourTuist.swift or Project.swift:
Configuration options
Debug vs. Release
- Debug: Faster builds, includes debug symbols
- Release: Optimized builds, smaller binaries
Build tests
Include test targets in the build:Show binary path
Useful for integrating with other tools:Best practices
Small, focused tasks
Create plugins for specific, reusable tasks rather than monolithic tools.
Test thoroughly
Use
tuist plugin test to ensure reliability before distribution.Version plugins
Use semantic versioning and git tags for plugin releases.
Document tasks
Provide clear documentation for task arguments and usage.
Common plugin use cases
Code generation
Generate boilerplate code, models, or templates:Code formatting
Format code using custom rules:Integration with tools
Integrate third-party tools into your workflow:Custom validations
Validate project structure or conventions:Plugin development tips
Access project information
UseProjectAutomation framework to access project data:
Handle arguments
Parse task arguments using Swift’sArgumentParser: