Installation
Basilisk is a single Rust binary with no runtime dependencies. No Node.js. No Python interpreter. No package manager required after installation.
VS Code extension (recommended)
The fastest way to get started. Install the Basilisk extension from the VS Code Marketplace:
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X/Cmd+Shift+X) - Search for Basilisk
- Click Install
The extension automatically downloads the correct Basilisk binary for your platform on first activation. No manual setup required. The binary is downloaded from GitHub Releases and stored in the extension's global storage directory.
git clone https://github.com/MelbourneDeveloper/Basilisk
cd basilisk
cargo build --release
| OS | Architecture |
|---|---|
| macOS | Apple Silicon (aarch64) |
| macOS | Intel (x86_64) |
| Linux | x86_64 |
| Linux | aarch64 |
| Windows | x86_64 |
If the binary is already on your PATH (e.g. from cargo install), the extension uses that instead of downloading.
Pre-built binaries
Download the latest release for your platform from GitHub Releases:
# macOS (Apple Silicon)
curl -sSfL https://github.com/MelbourneDeveloper/Basilisk/releases/latest/download/basilisk-darwin-aarch64.tar.gz | tar xz
sudo mv basilisk /usr/local/bin/
# macOS (Intel)
curl -sSfL https://github.com/MelbourneDeveloper/Basilisk/releases/latest/download/basilisk-darwin-x86_64.tar.gz | tar xz
sudo mv basilisk /usr/local/bin/
# Linux (x86_64)
curl -sSfL https://github.com/MelbourneDeveloper/Basilisk/releases/latest/download/basilisk-linux-x86_64.tar.gz | tar xz
sudo mv basilisk /usr/local/bin/
Verify the installation:
basilisk --version
Install via Cargo
If you have Rust installed:
cargo install basilisk
This installs the binary to ~/.cargo/bin/, which is typically already on your PATH if you installed Rust via rustup.
Build from source
git clone https://github.com/MelbourneDeveloper/Basilisk
cd Basilisk
cargo build --release
The binary is built at target/release/basilisk. Add it to your PATH:
cp target/release/basilisk /usr/local/bin/
Rust 1.87+ required.
Track progress at github.com/MelbourneDeveloper/Basilisk.
CI integration
Basilisk integrates naturally into any CI pipeline. Download the binary in your workflow:
# GitHub Actions example
- name: Install Basilisk
run: |
curl -sSfL https://github.com/MelbourneDeveloper/Basilisk/releases/latest/download/basilisk-linux-x86_64.tar.gz | tar xz
sudo mv basilisk /usr/local/bin/
- name: Type check
run: basilisk check src/
Exit codes:
0— No errors found1— Type errors found2— Configuration error3— Internal error
Zed extension
Basilisk provides a native Zed extension that registers the LSP for Python files. When installed, Basilisk automatically activates as the language server for all .py files.
Install the extension
- Build and install the Basilisk CLI binary:
cargo install --path crates/basilisk-cli
This installs the binary to ~/.cargo/bin/basilisk.
- Install the dev extension in Zed:
- Open the command palette:
Cmd+Shift+P - Run zed: install dev extension
- Select the
basilisk-zed/directory from the repository
Zed compiles the extension's Rust source to WASM automatically. You do not need to pre-build or copy any .wasm files.
- Open a Python file — Basilisk is now your Python language server.
How Zed finds the binary
The Zed extension resolves the Basilisk binary in this order:
- Zed LSP settings — if you configure an explicit path in your Zed
settings.json:
{
"lsp": {
"basilisk": {
"binary": {
"path": "/path/to/basilisk"
}
}
}
}
BASILISK_PATHenvironment variable — set this to override the default location~/.cargo/bin/basilisk— the default location wherecargo installplaces the binary
Zed does not resolve bare command names from PATH. The extension always returns an absolute path to the binary.
Configure Basilisk settings in Zed
Add Basilisk-specific settings to your Zed settings.json:
{
"lsp": {
"basilisk": {
"settings": {
"inlayHints": {
"paramNames": true,
"varTypes": true
},
"ruff": {
"enabled": true
}
}
}
}
}
Rebuilding after changes
If you modify the Basilisk source:
- Rebuild the CLI binary:
cargo install --path crates/basilisk-cli --force - Reinstall the dev extension in Zed:
Cmd+Shift+P→ zed: install dev extension → selectbasilisk-zed/
Zed recompiles the WASM and reloads the extension automatically.
Editor support (LSP)
Basilisk implements the Language Server Protocol. Any editor with LSP support can use it:
- VS Code — via the official Basilisk extension (auto-downloads the binary)
- Zed — via the Basilisk Zed extension (see above)
- Neovim — via nvim-lspconfig
- Helix — native LSP support
- Emacs — via eglot or lsp-mode
How the VS Code extension finds the binary
The extension resolves the Basilisk binary in this order:
basilisk.executablePathsetting — if you set an explicit path, it's used directly- System PATH — checks
~/.cargo/bin/,/usr/local/bin/,/opt/homebrew/bin/ - Extension storage — checks for a previously downloaded binary
- Download prompt — offers to download the matching version from GitHub Releases