Backup EnginebackupEngine
Docs/CLI Reference/Commands

Command Reference

Every BackupEngine CLI command shipped through v1.11.0, with real syntax pulled from the agent source.

Command Structure

Most commands follow the pattern backupengine <group> <action> [options]. A handful of operational commands (the Windows-service group) are flat for elevation reasons — those are called out where they appear. Add --json to any command for machine-readable output suitable for piping into jq.

General syntax
backupengine <command> [args...] [--json]
backupengine help                # Top-level usage
backupengine version             # Print agent version

ℹ Note

Sign-in is GUI-only. The CLI inherits the desktop session — once you have signed in through the desktop app, the CLI uses the same access token and device key. There is no backupengine login command.

Status & Version

backupengine status
backupengine status              # Account + plan + last backup summary
backupengine version             # Agent version (e.g. "Backup Engine Desktop Agent 1.11.0")

status prints a single-screen overview: account email, plan, device id, backup-set count, last run, and recent success/failure totals. Pair with --jsonfor monitoring scripts.

Connectivity

backupengine connectivity
backupengine connectivity test   # PUT → GET → verify → DELETE round-trip against iDrive e2

Runs the same probe the desktop GUI uses, without launching the UI. Returns exit code 0 on success, non-zero on failure. Latency and any error detail are included in the JSON output.

Backup Sets

backupengine sets
backupengine sets list                                 # List configured sets
backupengine sets email <set-name> on                  # Email after every run
backupengine sets email <set-name> off                 # Never email for this set
backupengine sets email <set-name> only-on-failure     # Email only on warnings/failures

ℹ Note

Creating, editing, and deleting backup sets is GUI-only in v1.11.0. The CLI exposessets list (read) and sets email (notification policy toggle) — that is the full surface today. Use the desktop app to add/edit/remove a set.

Run Backups

backupengine backup
backupengine backup start                      # Run all enabled sets
backupengine backup start <set-name>           # Run a specific set
backupengine backup list                       # Recent backup jobs and their status
backupengine backup stop <set-name>            # Stop an in-flight backup

The runner picks the right backend automatically based on each set's type: file-level sets stream chunks; hyperv, sql, sysstate, and bmr sets invoke their respective workload runners. The CLI prints a per-set summary before each run.

Restore

backupengine restore
backupengine restore <path>                    # Restore a single path from latest version

ℹ Note

Point-in-time restore, version-history browsing, server-workload restore (SQL chain replay, Hyper-V VM restore, BMR media), and granular file-tree pickers are GUI-only in v1.11.0. The CLI exposes the simple "restore this path now" form for headless recovery jobs. For richer flows, use the desktop Restore Wizard.

Schedules

backupengine schedule
backupengine schedule list       # All schedules with next-run + last-run

ℹ Note

Editing a schedule (cadence, time, retention) is GUI-only. The CLI is read-only here so cron jobs and monitoring scripts can audit cadence drift without modifying state.

Diagnostic Logs

backupengine logs
backupengine logs list                  # All per-run logs (newest first)
backupengine logs list <set-id>          # Filter to a single backup set
backupengine logs show <log-path>        # Print a specific log file

Logs live under <appdata>/Backup Engine/diagnostic-runs/ with names like {setId}-{epochMillis}.log. Pipe logs list --json into jq to pick a row, then logs show the path. Useful for headless support workflows.

Windows Service (background agent)

Service management — flat command names, require admin
backupengine install-service        # Install the BackupEngine Windows service
backupengine start-service          # Start the service
backupengine stop-service           # Stop the service
backupengine service-status         # Installed / state / display label
backupengine uninstall-service      # Uninstall the service

⚠ Warning

These are flat commands (install-service, not service install). They require elevation — the desktop GUI invokes them via UAC. From a regular shell you'll need to launch the terminal "as Administrator" first, or wrap with Start-Process -Verb RunAs.

Encryption

backupengine encryption
backupengine encryption status      # Configured / unlocked / KDF / DEK fingerprint

Read-only inspection of the local encryption configuration: configured y/n, unlocked y/n, verifier version (v1 legacy / v2 master-key indirection), KDF parameters, the first 8 bytes of SHA-256(active DEK) for "did the key actually rotate?" checks, and any in-progress rotation snapshot. Every emitted value is non-sensitive.

ℹ Note

Setting/changing the passphrase, scheduling DEK rotation, and triggering an immediate rotation are GUI-only — the rotation flow has a triple-confirm prompt intentionally not exposed on the CLI. Use encryption status to verify a rotation completed.

Hyper-V

backupengine hyperv
backupengine hyperv status                  # Is the Hyper-V role installed on this host?
backupengine hyperv list                    # Enumerate VMs (id, state, gen, memory, disks)
backupengine hyperv backup <set-name>       # Trigger a configured Hyper-V backup set

ℹ Note

Hyper-V backup-set creation (which VMs, RPO preset, retention) is GUI-only — the wizard writes the set to the local DB, then hyperv backup <name>can trigger it from the CLI. hyperv list is the same enumeration the GUI uses to populate the picker.

Selftest (validation harness)

backupengine selftest
backupengine selftest encryption                       # Non-destructive crypto suite
backupengine selftest service --confirm                # DESTRUCTIVE: install/start/stop/uninstall
backupengine selftest hyperv --confirm [--vm <name>]   # DESTRUCTIVE: real checkpoint + upload
backupengine selftest --all [--confirm]                # All three (skips destructive ones without --confirm)

⚠ Warning

service and hyperv suites refuse to run without --confirm. The encryption suite is non-destructive and runs anywhere. Exit codes: 0 = pass, 1 = fail, 2 = blocked (e.g. --confirm not passed).

Devices

backupengine devices
backupengine devices               # Show this device's registered id

ℹ Note

Listing and managing all registered devices on the account is done through the Customer Portal. The CLI surfaces only the local device id for scripting.

Notifications

backupengine notifications
backupengine notifications list                # All configured recipient emails
backupengine notifications add <email>         # Add a recipient
backupengine notifications remove <email>      # Remove a recipient
backupengine notifications test                # Send a test email to every recipient

Team / Users

backupengine users
backupengine users list                              # Team members + roles
backupengine users invite <email> <role>             # Invite — role: admin | operator | viewer
backupengine users remove <email>                    # Remove a team member
backupengine users role <email> <new-role>           # Change role

Plans & Billing

backupengine plans / backupengine billing
backupengine plans list                                          # Available subscription tiers
backupengine plans change <professional|server|enterprise>       # Hand off to checkout

backupengine billing status                                       # Plan + storage usage
backupengine billing upgrade <professional|server|enterprise>     # Open Stripe upgrade flow
backupengine billing addons list                                  # Active add-ons
backupengine billing invoices                                     # Recent invoices
backupengine billing portal                                       # Open the customer portal

Billing actions hand off to the Customer Portal at portal.backupengine.com/billing. The CLI prints the URL — no payment flow happens inside the terminal.

Reports

backupengine reports / backupengine usage-report
backupengine reports list                       # Per-backup reports (recent first)
backupengine reports show <id>                  # Full text of one report
backupengine reports send <id>                  # Re-send the report email

backupengine usage-report show                  # Weekly / monthly org rollup (v1.7.0+)
backupengine usage-report send                  # Email the rollup to notification recipients

usage is an alias for usage-report.

AI Infra Backup (v1.10.0)

backupengine ai-assets (alias: ai)
backupengine ai-assets scan                                  # Detect local AI assets (vector stores, model caches, ...)
backupengine ai-assets list                                  # Configured assets
backupengine ai-assets status                                # Last-run status per asset
backupengine ai-assets connect --provider <p> --api-key <k> --name <name> [--endpoint <url>]
backupengine ai-assets connections                           # Configured cloud AI connections
backupengine ai-assets backup <name>                         # Run a backup for one asset
backupengine ai-assets snapshots <name>                      # List snapshots for an asset
backupengine ai-assets restore <name> --snapshot <id>        # Restore a snapshot

ℹ Note

AI Infra Backup is the v1.10.0 tier for protecting model caches, vector databases (Pinecone, Weaviate, Qdrant, Chroma), and AI workspace exports. Local assets are discovered with scan; cloud assets are added with connect.

Restore Assistant (v1.11.0)

backupengine assistant (aliases: ask, assistant)
backupengine assistant ask "where is the latest copy of contracts.xlsx?"
backupengine ask "find files I deleted yesterday"
backupengine assistant "restore the Q3 marketing folder to my Desktop"

Natural-language restore agent. Streams events from a Claude-powered backend over SSE — finds candidate files, asks clarifying questions, and (with confirmation) triggers the restore. Falls back to a smaller model if the primary is unavailable; the fallback is announced inline.

Configuration

backupengine config
backupengine config get <key>           # Read a setting
backupengine config set <key> <value>   # Write a setting

# Known keys: language, encryption_mode, cdp_enabled, cdp_interval,
#             bandwidth_limit, theme

For settings the CLI doesn't expose (custom retention rules, schedule editing, per-set bandwidth caps, etc.) use the desktop GUI — those write multi-field structures the simple key/value CLI form doesn't cover.

Updates

backupengine update
backupengine update              # Check whether an update is available
backupengine update check        # (alias for the bare command)
backupengine update install      # Install if available

ℹ Note

The desktop GUI shows an in-app update banner that handles install-type-aware paths (MSIX via ms-appinstaller, ZIP via the bundled self-updater). The CLI reports availability — for ZIP installs you can drive the same self-updater from a script.

JSON output

Every command above accepts --json to produce machine-readable output suitable for cron-driven monitoring, audit logging, and pipeline integration. See the JSON Output page for parsing examples.