Version pins
Pins live in linguo.toml, resolved from the nearest file up the directory tree, then the global config (~/.linguo/config.toml):
[runtimes]
python = "3.12"
node = "24"
rust = "1.96"
terraform = "opentofu@1.12" Pin formats
Requests can be a major (24), minor (3.12), or exact (1.96.1) version. The highest installed match wins.
Resolution order
When Linguo needs a runtime version, it checks in this order:
- Project
linguo.toml: nearest file walking up the directory tree - Ecosystem pin file: when no
linguo.tomlcovers a language:.python-version.nvmrc/.node-version.ruby-versiongo.modtoolchain/godirectivesrust-toolchain(.toml)
- Global config:
~/.linguo/config.toml
Aliases like lts/* or stable in ecosystem pin files are ignored; only plain version numbers are honored.
Toolchain storage
Every download is sha256-verified against its upstream’s published checksums. Toolchains live under:
~/.linguo/toolchains/<language>/<version> Override the root directory with the $LINGUO_ROOT environment variable.
Existing projects
Existing projects work without a linguo.toml. When none covers a language, Linguo honors the ecosystem’s own pin file as long as it holds a plain version number.
To adopt Linguo explicitly, run linguo <lang> use <version> in your project directory. This writes a linguo.toml with your chosen pin.
