A task runner and monorepo management tool for the web ecosystem, written in Rust.
Supports JavaScript, TypeScript, Rust, Go, Ruby, and more.
Backed by
Smart hashing
Collects inputs from multiple sources to ensure builds are deterministic and reproducible.
Remote caching
Persists builds, hashes, and caches between teammates and CI/CD environments.
Integrated toolchain
Automatically downloads and installs explicit versions of languages and tools for consistency across the entire workspace or per project.
Multi-platform
Runs on common development platforms: Linux, macOS, and Windows.
Project graph
Generates a project graph for dependency and dependent relationships.
Code generation
Easily scaffold new applications, libraries, tooling, and more!
Task inheritance
Define a task once to be inherited by all or scoped projects. Avoid defining the same task in every project.
Code ownership
Declare owners, maintainers, support channels, and more. Generate CODEOWNERS.
Dependency graph
Generates a dependency graph to increase performance and reduce workloads.
Action pipeline
Executes actions in parallel and in order using a thread pool and our dependency graph.
Action distribution
Coming soon
Distributes actions across multiple machines to increase throughput.
Incremental builds
With our smart hashing, only rebuild projects that have been touched since the last build.
Flakiness detection
Reduce flaky builds with automatic retries and passthrough settings.
Webhook events
Experimental
Receive a webhook for every event in the pipeline. Useful for metrics gathering and insights.
Terminal notifications
Coming soon
Receives notifications in your chosen terminal when builds are successful... or are not.
Git hooks
Manage Git hooks to enforce workflows and requirements for contributors.
And many more features
Configuration & convention
- Use moon the way you want, but with some guard rails.
Scalability aware
- Engineered to scale and grow for codebases of any size.
Integrated packages
In development
Enhance your pipeline with our @moonrepo npm packages.Process inspection
Coming soon
Inspect and debug failing task processes.Build profiles
- Record CPU and heap profiles that can be analyzed in Chrome.
Editor extensions
- Utilize moon extensions in your favorite editor, like Visual Studio Code.