Manual installation
Manual installation is useful when you want to inspect the archive, retain an immutable release file, launch without an installer, or control command placement yourself.
Choose the archive
| System | Architecture | Release target | Archive |
|---|---|---|---|
| macOS | Intel | darwin-amd64 |
.tar.gz |
| macOS | Apple silicon | darwin-arm64 |
.tar.gz |
| Linux | x64 | linux-amd64 |
.tar.gz |
| Linux | ARM64 | linux-arm64 |
.tar.gz |
| Windows | x64 | windows-amd64 |
.zip |
| Windows | ARM64 | windows-arm64 |
.zip |
Release filenames use:
crystal-lattice-python-runtime-v<version>-<target>.<archive-extension>
Download the matching file from the latest GitHub Release.
Check your architecture
macOS or Linux:
uname -m
Windows PowerShell:
[System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture
x86_64, AMD64, and X64 correspond to the amd64 release targets.
arm64, aarch64, and Arm64 correspond to the arm64 targets.
Extract and run on macOS or Linux
This Linux x64 example uses the current package version. Change target to
the value from the table for another supported system:
version=0.1.5
target=linux-amd64
archive="crystal-lattice-python-runtime-v${version}-${target}.tar.gz"
tar -xzf "$archive"
"./${archive%.tar.gz}/bin/crystal-lattice" --help
The archive launcher uses the Python runtime inside the extracted directory.
Extract and run on Windows
This Windows x64 example can also use windows-arm64:
$Version = "0.1.5"
$Target = "windows-amd64"
$Archive = "crystal-lattice-python-runtime-v$Version-$Target.zip"
$Runtime = $Archive -replace "\.zip$", ""
Expand-Archive -LiteralPath $Archive -DestinationPath .
& ".\$Runtime\Scripts\crystal-lattice.cmd" --help
Inspect the runtime layout
macOS or Linux:
"./${archive%.tar.gz}/bin/crystal-lattice" --runtime-layout-json
Windows PowerShell:
& ".\$Runtime\Scripts\crystal-lattice.cmd" --runtime-layout-json
The result identifies the bundled Python runtime, built-in plugin sources, default configuration, and user-owned paths.
Install an optional POSIX command
Choose a stable location for the extracted runtime. Then write a small
forwarding command into a directory already on PATH:
runtime="$(pwd)/crystal-lattice-python-runtime-v0.1.5-linux-amd64"
command_dir="$HOME/.local/bin"
mkdir -p "$command_dir"
printf '#!/usr/bin/env sh\nexec "%s/bin/crystal-lattice" "$@"\n' "$runtime" \
> "$command_dir/crystal-lattice"
chmod +x "$command_dir/crystal-lattice"
"$command_dir/crystal-lattice" --help
If ~/.local/bin is not already on PATH, choose another command directory
or update your shell configuration.
Install an optional Windows command
Choose a stable location for the extracted runtime and a command directory already on PATH:
$Runtime = (
Resolve-Path ".\crystal-lattice-python-runtime-v0.1.5-windows-amd64"
).Path
$CommandDirectory = "$HOME\bin"
$Command = Join-Path $CommandDirectory "crystal-lattice.cmd"
New-Item -ItemType Directory -Path $CommandDirectory -Force | Out-Null
$CommandText = "@echo off`r`ncall `"$Runtime\Scripts\crystal-lattice.cmd`" %*`r`n"
[IO.File]::WriteAllText($Command, $CommandText, [Text.Encoding]::ASCII)
& $Command --help
If that directory is not already on PATH, add it yourself or use the native PowerShell installer, which manages the user PATH automatically.
Remove a manual installation
Delete:
- the extracted runtime directory;
- an optional forwarding command you created.
Configuration, credentials, sessions, logs, and plugin caches remain under
their user-owned .crystal locations unless you explicitly remove them.
Troubleshooting
The archive contains an unexpected directory
The archive must contain one top-level directory whose name matches the
archive filename without .tar.gz or .zip.
The launcher is missing
The expected launchers are:
bin/crystal-lattice
Scripts\crystal-lattice.cmd
Download the correct archive again if the appropriate launcher is absent.