.moon/toolchains.* configuration file defines toolchain versions and settings for your workspace. Toolchains are language/tool environments managed by moon through proto.
Configuration File
Location:.moon/toolchains.yml or .moon/toolchains.json
Type: ToolchainsConfig
Optional: This file is optional. Toolchains can be configured or auto-detected.
Schema
Core Settings
Extends one or many toolchain configuration files. Supports relative paths or HTTPS URLs.Settings merge recursively with local configuration taking precedence.Added in v1.12.0
Moon Configuration
Configures moon release information and downloads.Added in v1.29.0
Proto Configuration
Configures moon’s integration with proto.Added in v1.39.0
Toolchain Plugins
Toolchains are configured as top-level keys using their identifier. Each toolchain is a WASM plugin managed by proto.Configuration for a specific toolchain.
Built-in Toolchains
moon provides built-in support for common language toolchains:JavaScript Ecosystem
JavaScript language support. Required for other JavaScript toolchains.Run
moon toolchain info javascript for available settings.Node.js runtime. Requires Run
javascript toolchain.moon toolchain info node for available settings.Bun runtime. Requires Run
javascript toolchain.moon toolchain info bun for available settings.Deno runtime. Requires Run
javascript toolchain.moon toolchain info deno for available settings.TypeScript compiler.Run
moon toolchain info typescript for available settings.Package Managers
npm package manager. Requires Run
node toolchain.moon toolchain info npm for available settings.pnpm package manager. Requires Run
node toolchain.moon toolchain info pnpm for available settings.Yarn package manager. Requires Run
node toolchain.moon toolchain info yarn for available settings.Other Languages
Go language toolchain.Run
moon toolchain info go for available settings.Rust language toolchain.Run
moon toolchain info rust for available settings.Python language toolchain (experimental).Run
moon toolchain info unstable_python for available settings.pip package manager (experimental). Requires Run
unstable_python.moon toolchain info unstable_pip for available settings.uv package manager (experimental). Requires Run
unstable_python.moon toolchain info unstable_uv for available settings.Version Management
Versions can be specified in multiple ways:Direct Configuration
Environment Variables
Versions can be set viaMOON_<TOOLCHAIN>_VERSION environment variables:
Proto Integration
Versions are automatically inherited from.prototools:
.prototools
.moon/toolchains.yml
Complete Example
.moon/toolchains.yml