Skip to content

CLI Reference

Melvin PETIT edited this page Jun 17, 2026 · 1 revision

CLI Reference

bull                           Launch the interactive menu
bull <command> [args]          Run a command directly
bull --help | -h | help        Show built-in help
bull --version | -v | version  Print the version

Bull must be run as root.

Commands

Command Aliases Arguments Description
init — — Check dependencies, set up the inventory, prepare the provider
create — <name> [options] Create a new Kali or Parrot VM
list ls — List all VMs with their status
start — <name> Start a VM
stop — <name> Gracefully stop a VM
destroy rm <name> Permanently destroy a VM (asks to confirm)
connect ssh <name> SSH into a running VM
view gui <name> Open the graphical console
snapshot snap <name> [label] Snapshot a VM (label optional)
restore — <name> <label> Restore a VM to a snapshot
vpn — <name> <config> Configure a VPN with kill switch
toolkit — <name> <git-url> Install a toolkit from a Git URL
status — — Global status overview
sync — — Reconcile the inventory with real VM state
show-pass showpass, credentials <name> Decrypt and display VM credentials

create options

Option Default Description
--os <kali|parrot> kali Guest operating system
--ram <MB> 4096 Memory in megabytes
--cpu <N> 2 Number of vCPUs
--resolution <WxH> 1920x1080 Display resolution (prompted if omitted)
--username <user> OS default Login user created inside the VM
--password-file <path> — Read the password from a file, then wipe the file
--password <pass> — Deprecated — visible in ps aux, use --password-file
--keyboard <layout> prompted Keyboard layout (us, fr, de, …)

If no password option is given, Bull generates a strong 24-character password and stores it encrypted. Retrieve it with show-pass.

Environment variables

Variable Default Effect
BULL_HOME ~/.bull Data directory (inventory, credentials, GPG keys, registry). On WSL2+VirtualBox this must be a Windows path under /mnt/.
BULL_PROVIDER auto Force libvirt or virtualbox
BULL_DEBUG 0 Set to 1 for verbose debug logging
BULL_DRY_RUN 0 Set to 1 to print actions without changing any VM
NO_COLOR unset Disable colored output (no-color.org)

Examples

bull init
bull create kali-lab --ram 4096 --cpu 2 --resolution 2560x1440
bull create parrot-lab --os parrot --ram 4096 --cpu 2 --keyboard fr
bull create scratch --password-file ~/secret.txt
bull start kali-lab
bull connect kali-lab
bull snapshot kali-lab pre-exploit
bull restore kali-lab pre-exploit
bull vpn kali-lab ~/vpn/config.ovpn
bull toolkit kali-lab https://github.com/owner/tool.git
bull show-pass kali-lab
bull destroy kali-lab

Exit behavior

Commands return non-zero on failure and log the reason. Failures are also appended to ${BULL_HOME}/bull-error.log for later inspection.

Clone this wiki locally