Installation¶
There are two things to install: Bugsaur itself and at least one debug adapter for the language you work in. Prebuilt archives are the normal installation path; building from source remains available for development.
Install a release¶
Open GitHub Releases and download the archive for your machine:
| Platform | Archive name |
|---|---|
| Linux x86-64 | bugsaur-v0.1.0-Linux-X64.tar.gz |
| macOS on Intel | bugsaur-v0.1.0-macOS-X64.tar.gz |
| macOS on Apple Silicon | bugsaur-v0.1.0-macOS-ARM64.tar.gz |
Each archive contains bugsaur, the bundled php-dbgp-adapter, and the
optional Neovim frontend under lua/. Extract it and put the binaries on your
PATH:
tar -xzf bugsaur-v0.1.0-macOS-ARM64.tar.gz
cd bugsaur-v0.1.0-macOS-ARM64
mkdir -p "$HOME/.local/bin"
install -m 755 bugsaur "$HOME/.local/bin/bugsaur"
install -m 755 php-dbgp-adapter "$HOME/.local/bin/php-dbgp-adapter"
Use the filenames of the release you downloaded; v0.1.0 above is only an
example.
Build from source¶
The binary lands in target/debug/bugsaur. Copy or symlink it into a directory
on your PATH to call it as bugsaur.
Build through make, not through a bare cargo
The Makefile resolves the toolchain directory from rust-toolchain.toml and
puts it first on PATH. A stray older cargo — a Homebrew one, for
instance — would otherwise silently change the result.
Verify the binary works:
With no arguments it prints its usage and exits with status 2. That output is the confirmation that the binary is in place.
Install an adapter¶
Adapters are resolved through PATH, so they must be visible to the debugger.
Install CodeLLDB and make sure the
codelldb binary is on PATH:
If it came from Mason:
Install Delve:
debugpy is a Python module, so it is installed into the interpreter that
runs your code — usually the project virtualenv, not the system Python:
PHP needs no external adapter. A release archive includes
php-dbgp-adapter next to bugsaur; make build produces the same pair in
target/debug. Put their directory on PATH so the adapter catalog can
find it:
export PATH="$PWD:$PATH" # extracted release archive
export PATH="$PWD/target/debug:$PATH" # source build
On the PHP side you need Xdebug configured — see Languages → PHP.
Install the Neovim plugin¶
Optional. Bugsaur works without it; the plugin adds source navigation and breakpoint UX on top.
The Lua source frontend lives in lua/bugsaur/init.lua and connects to the
backend over a Unix socket. Release archives include the complete lua/
directory, so their extracted directory can be passed directly to lazy.nvim:
{
dir = "/absolute/path/to/bugsaur-v0.1.0-macOS-ARM64",
name = "bugsaur",
config = function()
require("bugsaur").setup({
binary = "/absolute/path/to/bugsaur-v0.1.0-macOS-ARM64/bugsaur",
gui = true,
})
end,
}
For a source checkout, keep dir pointed at the repository and use
target/debug/bugsaur as the binary instead.
setup() only carries editor and window options. Adapters, programs and launch
arguments live in the project config, not here. Full reference:
Neovim → Installation.
Verify the installation¶
| Check | Command | Expected |
|---|---|---|
| Debugger | bugsaur |
usage text, exit status 2 |
| Rust / C / C++ | command -v codelldb |
a path |
| Go | command -v dlv |
a path |
| Python | python3 -m debugpy --version |
a version |
| PHP | command -v php-dbgp-adapter |
a path |
| Neovim | :DebugStart exists |
command completes in Neovim |
If a command -v check prints nothing, the adapter is not on PATH — that is
the single most common reason a session fails to start. See
Troubleshooting → Adapter fails to start.
Next¶
Quick Start — describe your project and open the window.