How switching works
Each version is unpacked under ~/Library/Application Support/BitL/ (php-versions/, node-versions/, โฆ). use repoints symlinks in BitL's bin directory. To have php, node, python3, go and flutter in your terminal follow those switches, put that directory first on your PATH โ once:
export PATH="$HOME/Library/Application Support/BitL/bin:$PATH"Or let BitL do it: bitl php path --install. Every runtime works the same way โ list, install, use, uninstall, and a bare command to show the current version.
๐ PHP
PHP 8.0 through 8.5 install as pre-built Apple Silicon binaries in seconds. 8.5 is the default for new installs.
bitl php # current version and whether FPM is availablebitl php available # versions you can downloadbitl php install 8.3bitl php list # installed versionsbitl php use 8.3 # switch globally: CLI + the default FPM poolbitl php extensions # loaded extensions (or: bitl php extensions 8.2)bitl php pools # running FPM pools and which sites use themSwitching is global โ every site without an isolation follows it. To pin one project, isolate it (version first, then domain):
bitl isolate 8.2 legacy-shopChange the default version for new sites with bitl config set php-default 8.4. See also Xdebug and Composer.
๐ Node.js
Downloads official builds from nodejs.org. Give install a major version and it picks the newest release in that line; use accepts a major too, once it is installed. Switching also adds BitL's bin directory to your ~/.zshrc if it is missing.
bitl node available # releases you can installbitl node install 22bitl node listbitl node use 22 # a major you installed, or an exact v22.11.0bitl node # current versionPer-project Node version
isolate writes a .node-version file, which fnm, Volta, nodenv and most editors also respect.
cd ~/Sites/legacy-appbitl node isolate 18bitl node isolated # what this directory usesbitl node unisolate๐ Python
Uses standalone CPython builds, so nothing touches the system Python.
bitl python list --availablebitl python install 3.13.1bitl python use 3.13.1bitl python # current versionย # a virtual environment with a specific versionbitl python venv .venv --python-version 3.12.8source .venv/bin/activateAvailable: 3.13.1, 3.12.8, 3.11.11, 3.10.16. For notebooks, see Jupyter.
๐น Go
bitl go list --availablebitl go install 1.24.0bitl go use 1.24.0bitl go # current versionAvailable: 1.24.0, 1.23.5, 1.22.10, 1.21.13. use also links gofmt, and points bin/goroot at the active SDK so you can set GOROOT to a stable path.
๐ฏ Flutter & Dart
Official SDK archives from Google, on the stable, beta or dev channel.
bitl flutter list --availablebitl flutter install 3.24.5bitl flutter install 3.27.0-0.1.pre --channel betabitl flutter use 3.24.5bitl flutter 3.24.5 # shortcut for 'use'bitl flutter # current versionbitl flutter doctor # runs flutter doctor with the active SDKbitl flutter devices # connected devices and running simulatorsRunning apps on simulators and emulators is covered in Mobile.
At a glance
| Runtime | Show current | Install | Switch | Per-project |
|---|---|---|---|---|
| PHP | bitl php | bitl php install 8.4 | bitl php use 8.4 | bitl isolate 8.2 site |
| Node.js | bitl node | bitl node install 22 | bitl node use 22 | bitl node isolate 18 |
| Python | bitl python | bitl python install 3.13.1 | bitl python use 3.13.1 | bitl python venv .venv |
| Go | bitl go | bitl go install 1.24.0 | bitl go use 1.24.0 | โ |
| Flutter | bitl flutter | bitl flutter install 3.24.5 | bitl flutter use 3.24.5 | โ |