bn-loader
A profile launcher for Binary Ninja that lets you manage multiple configurations. If you work with different Binary Ninja setups (personal vs commercial licenses, different plugin sets, separate configs for development), this tool makes switching between them painless.
Installation
From crates.io
From source
Pre-built binaries
Download from the releases page for Windows, Linux, and macOS.
Quick Start
- Copy
example.config.tomlto~/.config/bn-loader.toml - Edit the file to define your profiles
- Run
bn-loader <profile-name>to launch
Configuration
bn-loader looks for its config file in these locations (in order):
~/.config/bn-loader.toml(recommended)- Next to the executable
A basic config looks like this:
[]
= "personal"
= true
[]
= "C:\\Program Files\\Binary Ninja Personal"
= "C:\\Users\\You\\AppData\\Roaming\\Binary Ninja Personal"
[]
= "C:\\Program Files\\Binary Ninja"
= "C:\\Users\\You\\AppData\\Roaming\\Binary Ninja"
See example.config.toml for a full example with Linux and macOS paths.
Usage
# Launch a profile
# Launch default profile (if configured)
# List available profiles
# Launch with debug output
# Check for updates
Commands
init - Create a new profile from an existing one:
This copies the license and install directory from the template but gives the new profile its own config directory.
sync - Copy settings between profiles:
# Sync from personal to all other profiles
# Sync to a specific profile
# Preview changes without applying
License files and other sensitive data are excluded by default. You can add more exclusions in the [sync] section of your config.
plugins - List installed plugins for a profile:
diff - Compare two profiles:
completions - Set up shell completions:
Shell Completions
bn-loader supports tab completion for profile names and commands. Run bn-loader completions <shell> for setup instructions specific to your shell.
Global Options
These go in the [global] section:
| Option | Default | Description |
|---|---|---|
default_profile |
none | Profile to launch when no argument given |
color |
"auto" |
Color output: "auto", "always", "never" |
check_updates |
true |
Check GitHub for new releases on launch |
backup_retention |
5 |
Number of sync backups to keep (0 = unlimited) |
debug |
false |
Enable debug logging globally |
Profile Options
| Option | Required | Description |
|---|---|---|
install_dir |
yes | Path to Binary Ninja installation |
config_dir |
yes | Path to user data directory |
executable |
no | Binary name (defaults to binaryninja.exe on Windows, binaryninja elsewhere) |
debug |
no | Enable debug logging for this profile |
License
BSD-3-Clause. See LICENSE for details.