Skip to main content
The malbox CLI is the unified entry point for Malbox. Use it to submit samples, manage analysis tasks and machines, register VM images, and administer the daemon. This page covers the analysis commands that talk to a running daemon over HTTP. For host-local daemon administration (install, upgrade, config, providers, plugin installs), see malbox daemon.
Earlier releases shipped a separate malboxctl binary for daemon administration. Those commands now live under malbox daemon.

Global flags

These flags are available on every subcommand.
FlagTypeDefaultDescription
--formattext | jsontextOutput format
--api-urlstringFrom cli.tomlOverride the API base URL
-v, --verbose-falseEnable verbose output (sets log level to DEBUG)
-y, --yes-falseSkip confirmation prompts
The API URL defaults to the value in ~/.config/malbox/cli.toml. If no config file exists, it falls back to http://127.0.0.1:8080.

task

Manage analysis tasks.

task submit

Submit a file for analysis.
malbox task submit <file> [options]
Argument / FlagTypeRequiredDefaultDescription
filestringYes-Path to the file to analyze
--packagestringNo-Analysis package to use
--modulestringNo-Analysis module to use
--timeoutintegerNo-Analysis timeout in seconds
--priorityintegerNo-Task priority (higher = more urgent)
--tagsstring[]No-Tags for the task (accepts multiple values)
--ownerstringNo-Task owner
--memory-NofalseEnable memory dump
--unique-NofalseOnly analyze if the sample is unique
--enforce-timeout-NofalseEnforce the timeout strictly

task list

List all tasks.
malbox task list

task get

Get details and results of a specific task.
malbox task get [id] [options]
Argument / FlagTypeRequiredDefaultDescription
idintegerNo-Task ID. If omitted, an interactive fuzzy-select menu is shown.
--resultintegerNo-Fetch a specific result by its ID. JSON results are pretty-printed to a terminal; binary results are written raw when piped.

machine

Manage analysis machines.

machine list

List all machines.
malbox machine list

machine get

Get details of a specific machine.
malbox machine get [machine]
ArgumentTypeRequiredDefaultDescription
machinestringNo-Machine name or ID. If omitted, an interactive fuzzy-select menu is shown.

machine provision

Run a provisioning step against a machine.
malbox machine provision [machine] --provisioner <type> [options]
Argument / FlagTypeRequiredDefaultDescription
machinestringNo-Machine name or ID. If omitted, an interactive fuzzy-select menu is shown.
--provisionerstringYes-Provisioner type (for example, ansible or native)
--snapshotstringNo-Snapshot name to create after provisioning
--revert-tostringNobaseSnapshot to revert to before provisioning
--configstringNo-Provisioner config as JSON (for example, '{"playbook": "setup.yml"}')
--pluginsstring[]No-Guest plugin names to deploy (resolved from the daemon’s plugin registry)

machine provision-history

List provision run history for a machine.
malbox machine provision-history [machine]
ArgumentTypeRequiredDefaultDescription
machinestringNo-Machine name or ID. If omitted, an interactive fuzzy-select menu is shown.

machine snapshot list

List snapshots for a machine.
malbox machine snapshot list [machine]
ArgumentTypeRequiredDefaultDescription
machinestringNo-Machine name or ID. If omitted, an interactive fuzzy-select menu is shown.

machine snapshot delete

Delete a snapshot and its associated provision runs.
malbox machine snapshot delete [machine] [snapshot_name]
ArgumentTypeRequiredDefaultDescription
machinestringNo-Machine name or ID. If omitted, an interactive fuzzy-select menu is shown.
snapshot_namestringNo-Snapshot name. If omitted, an interactive fuzzy-select menu is shown.

image

Manage VM images.

image register

Register a new VM image.
malbox image register --name <name> --platform <platform> --arch <arch> --path <path> [options]
FlagTypeRequiredDefaultDescription
--namestringYes-Image name
--platformwindows | linuxYes-Target platform
--archx64 | x86Yes-Target architecture
--pathstringYes-Path to the image file
--image-formatstringNo-Image format (for example, qcow2 or vmdk)
--descriptionstringNo-Image description

image list

List all registered images.
malbox image list

image get

Get details of a specific image.
malbox image get <name>
ArgumentTypeRequiredDescription
namestringYesImage name

image delete

Delete an image.
malbox image delete <name>
ArgumentTypeRequiredDescription
namestringYesImage name

plugin

View analysis plugins registered with the running daemon. To install, update, or remove plugins on the host, use malbox daemon plugin.

plugin list

List registered plugins.
malbox plugin list [options]
FlagTypeRequiredDefaultDescription
--typestringNo-Filter by plugin type (for example, guest or host)

completion

Generate shell completions.
malbox completion <shell>
ArgumentTypeRequiredDescription
shellbash | zsh | fish | elvish | powershellYesTarget shell
To install completions, redirect the output to the appropriate location for your shell:
# Bash
malbox completion bash > ~/.local/share/bash-completion/completions/malbox

# Zsh
malbox completion zsh > ~/.zfunc/_malbox

# Fish
malbox completion fish > ~/.config/fish/completions/malbox.fish

Configuration

The malbox CLI reads its configuration from ~/.config/malbox/cli.toml:
[api]
url = "http://127.0.0.1:8080"
This file is created automatically by malbox daemon config init.

Environment variables

VariableDescription
RUST_LOGOverride the log level filter. Takes precedence over --verbose. Uses standard tracing_subscriber::EnvFilter syntax.