.moon/toolchains.* file configures the toolchain and the workspace development environment. This file is optional.
File Location
- Path:
.moon/toolchains.ymlor.moon/toolchains.json - Format: YAML or JSON
- Required: No
Overview
Managing tool versions within the toolchain ensures a deterministic environment across any machine (whether a developer, CI, or production machine).Configuration Options
extends
Defines one or many external .moon/toolchains.*’s to extend and inherit settings from.
.moon/toolchains.yml
moon
Configures how moon will receive information about latest releases and download locations.
manifestUrl
manifestUrl
Defines an HTTPS URL in which to fetch the current version information from.
.moon/toolchains.yml
downloadUrl
downloadUrl
Defines an HTTPS URL in which the moon binary can be downloaded from. Defaults to downloading from GitHub.
.moon/toolchains.yml
proto
Configures how moon integrates with and utilizes proto.
.moon/toolchains.yml
version: The version of proto to install and run toolchains with. If proto or this version has not been installed yet, it will be installed automatically when running a task.
Toolchain Reference
Each toolchain below can be configured in the.moon/toolchains.* file. For detailed configuration options, run moon toolchain info <name> to see all available settings.
Go
.moon/toolchains.yml
moon toolchain info go for all available settings.
JavaScript
Base configuration for JavaScript-based toolchains..moon/toolchains.yml
moon toolchain info javascript for all available settings.
Bun
This toolchain requires the
javascript toolchain to also be enabled..moon/toolchains.yml
moon toolchain info bun for all available settings.
Deno
This toolchain requires the
javascript toolchain to also be enabled..moon/toolchains.yml
moon toolchain info deno for all available settings.
Node
This toolchain requires the
javascript toolchain to also be enabled..moon/toolchains.yml
moon toolchain info node for all available settings.
npm
This toolchain requires the
node toolchain to also be enabled..moon/toolchains.yml
moon toolchain info npm for all available settings.
pnpm
This toolchain requires the
node toolchain to also be enabled..moon/toolchains.yml
moon toolchain info pnpm for all available settings.
Yarn
This toolchain requires the
node toolchain to also be enabled..moon/toolchains.yml
moon toolchain info yarn for all available settings.
TypeScript
.moon/toolchains.yml
moon toolchain info typescript for all available settings.
Python
.moon/toolchains.yml
moon toolchain info unstable_python for all available settings.
pip
This toolchain requires the
unstable_python toolchain to also be enabled..moon/toolchains.yml
moon toolchain info unstable_pip for all available settings.
uv
This toolchain requires the
unstable_python toolchain to also be enabled..moon/toolchains.yml
moon toolchain info unstable_uv for all available settings.
Rust
.moon/toolchains.yml
moon toolchain info rust for all available settings.
Examples
Node.js with pnpm
.moon/toolchains.yml
Bun Runtime
.moon/toolchains.yml
Deno Runtime
.moon/toolchains.yml
Rust Project
.moon/toolchains.yml
Python with uv
.moon/toolchains.yml
Go Project
.moon/toolchains.yml
Multi-Language Workspace
.moon/toolchains.yml
Custom Download URLs
.moon/toolchains.yml
Complete Example
.moon/toolchains.yml
Getting Detailed Configuration
For detailed configuration options for each toolchain, use themoon toolchain info command: