Explore the commands.

Help · exit 0

CLI command reference

Top-level help from the actual parser, including station/device commands.

$ blinkops --help
CLI command reference. Top-level help from the actual parser, including station/device commands.
Read complete output · 29 lines
$ blinkops --help
usage: blinkops [-h] [--serial SERIAL] [--package PACKAGE]
                {tui,devel,login,show,move,add,apply-config,rename,network,jobs,arm,disarm,thumbnail,reorder,delete,rm}
                ...

Blink authentication, device inspection, and controlled camera operations.

positional arguments:
  {tui,devel,login,show,move,add,apply-config,rename,network,jobs,arm,disarm,thumbnail,reorder,delete,rm}
    tui                 Open the keyboard-driven station and device interface
    devel               Development tools for APKs, traces, cached inventory, and sessions
    login               Sign in to Blink with a private password and verification-code prompt
    show                Show devices in a station tree; uses cloud session when available
    move                Transfer a camera between stations, or resume its move
    add                 Add a new Outdoor 4 to a system, or resume its saved add job
    apply-config        Apply model defaults to a device or all cameras on a station
    rename              Rename a device or station and verify the saved name
    network             List or select available camera Wi-Fi, XR, or XR+ coverage
    jobs                List unfinished jobs or close a job and refresh inventory
    arm                 Arm a system and verify its saved state
    disarm              Disarm a system and verify its saved state
    thumbnail           Refresh a device thumbnail, download it, and open an image window
    reorder             Reorder video devices within a system, or reorder stations
    delete (rm)         Remove a Wi-Fi Outdoor 4 or an empty station

options:
  -h, --help            show this help message and exit
  --serial SERIAL       ADB device serial when multiple devices are connected
  --package PACKAGE

Inventory · exit 0

Five-station inventory tree

The same 35-device demo used for the TUI screenshots, shown as the CLI's colored tree.

$ blinkops show --cached --color always
Five-station inventory tree. The same 35-device demo used for the TUI screenshots, shown as the CLI's colored tree.
Read complete output · 55 lines
$ blinkops show --cached --color always
BLINKOPS
offline-demo · 2026-10-14T02:53:42.232589+00:00

◆ North Ridge  armed
  ├── ◇ Sync Module  sync_module · online · DEMOSYNC00000001
  ├── ● Garden Path  sedona · Wi-Fi · DEMO000000000001
  ├── ● North Boundary  sedona · ⚠ XR+ · DEMO000000000002
  ├── ● Ridge Trail  sedona · Wi-Fi · DEMO000000000003
  ├── ● Workshop  sedona · Wi-Fi · DEMO000000000004
  ├── ● Orchard Gate  sonoran · Wi-Fi · DEMO000000000005
  ├── ● Woodland Crossing  sedona · Wi-Fi · DEMO000000000006
  ├── ● Equipment Shed  sedona · Wi-Fi · DEMO000000000007
  └── ● Creek Overlook  sonoran · Wi-Fi · DEMO000000000008

◆ South Meadow  armed
  ├── ◇ Sync Module  sync_module · online · DEMOSYNC00000002
  ├── ● Meadow Entrance  sedona · Wi-Fi · DEMO000000000009
  ├── ● South Boundary  sedona · Wi-Fi · DEMO000000000010
  ├── ● Bird Feeder  sedona · Wi-Fi · DEMO000000000011
  ├── ● Camp Social Area  sedona · Wi-Fi · DEMO000000000012
  ├── ● Pond Trail  sonoran · Wi-Fi · DEMO000000000013
  ├── ● South Footbridge  sedona · Wi-Fi · DEMO000000000014
  └── ● Lower Field  sedona · Wi-Fi · DEMO000000000015

◆ Back Woods  armed
  ├── ◇ Sync Module  sync_module · online · DEMOSYNC00000003
  ├── ● Upper Trail  sedona · Wi-Fi · DEMO000000000016
  ├── ● Back Gate  sedona · ⚠ XR · DEMO000000000017
  ├── ● Forest Clearing  sedona · Wi-Fi · DEMO000000000018
  ├── ● Creek Crossing  sedona · Wi-Fi · DEMO000000000019
  ├── ● Deer Trail  sonoran · Wi-Fi · DEMO000000000020
  ├── ● West Boundary  sedona · Wi-Fi · DEMO000000000021
  ├── ● Trail Junction  sedona · Wi-Fi · DEMO000000000022
  └── ● Woodpile  sonoran · Wi-Fi · DEMO000000000023

◆ Front Drive  armed
  ├── ◇ Sync Module  sync_module · online · DEMOSYNC00000004
  ├── ● Driveway Entrance  sedona · Wi-Fi · DEMO000000000024
  ├── ● Garage  sedona · Wi-Fi · DEMO000000000025
  ├── ● Front Walk  sedona · Wi-Fi · DEMO000000000026
  ├── ● Parking Area  sedona · Wi-Fi · DEMO000000000027
  ├── ● Mailbox  sonoran · Wi-Fi · DEMO000000000028
  ├── ● Front Door  doorbell · freesia · Wi-Fi · DEMO000000000029
  └── ● Side Door  doorbell · freesia · Wi-Fi · DEMO000000000030

◆ Scheduled Indoors  disarmed
  ├── ◇ Sync Module  sync_module · online · DEMOSYNC00000005
  ├── ● Family Room  Mini · hawk · Wi-Fi · DEMO000000000031
  ├── ● Dining Room  Mini · owl · Wi-Fi · DEMO000000000032
  ├── ● Kitchen  Mini · hawk · Wi-Fi · DEMO000000000033
  ├── ● Hallway  Mini · owl · Wi-Fi · DEMO000000000034
  └── ● Basement  Mini · hawk · Wi-Fi · DEMO000000000035

35 video devices · 5 Sync Modules · 5 systems

Inventory · exit 0

Machine-readable inventory

Full inventory JSON with 33 Wi-Fi devices, one XR camera and one XR+ camera on distinct stations.

$ blinkops show --cached --json
Read complete output · 585 lines
$ blinkops show --cached --json
{
  "source": "offline-demo",
  "captured_at": "2026-10-14T02:53:42.232589+00:00",
  "warnings": [],
  "networks": [
    {
      "id": 101,
      "name": "North Ridge",
      "armed": true,
      "time_zone": "America/New_York"
    },
    {
      "id": 102,
      "name": "South Meadow",
      "armed": true,
      "time_zone": "America/New_York"
    },
    {
      "id": 103,
      "name": "Back Woods",
      "armed": true,
      "time_zone": "America/New_York"
    },
    {
      "id": 104,
      "name": "Front Drive",
      "armed": true,
      "time_zone": "America/New_York"
    },
    {
      "id": 105,
      "name": "Scheduled Indoors",
      "armed": false,
      "time_zone": "America/New_York"
    }
  ],
  "sync_modules": [
    {
      "id": 901,
      "network_id": 101,
      "serial": "DEMOSYNC00000001",
      "type": "sync_module",
      "subtype": "xr",
      "status": "online",
      "onboarded": true
    },
    {
      "id": 902,
      "network_id": 102,
      "serial": "DEMOSYNC00000002",
      "type": "sync_module",
      "subtype": "xr",
      "status": "online",
      "onboarded": true
    },
    {
      "id": 903,
      "network_id": 103,
      "serial": "DEMOSYNC00000003",
      "type": "sync_module",
      "subtype": "xr",
      "status": "online",
      "onboarded": true
    },
    {
      "id": 904,
      "network_id": 104,
      "serial": "DEMOSYNC00000004",
      "type": "sync_module",
      "subtype": "xr",
      "status": "online",
      "onboarded": true
    },
    {
      "id": 905,
      "network_id": 105,
      "serial": "DEMOSYNC00000005",
      "type": "sync_module",
      "subtype": "xr",
      "status": "online",
      "onboarded": true
    }
  ],
  "cameras": [
    {
      "id": 1001,
      "network_id": 101,
      "name": "Garden Path",
      "type": "sedona",
      "serial": "DEMO000000000001",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1002,
      "network_id": 101,
      "name": "North Boundary",
      "type": "sedona",
      "serial": "DEMO000000000002",
      "status": "done",
      "onboarded": true,
      "network_type": "vo9_mcs_2",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    },
    {
      "id": 1003,
      "network_id": 101,
      "name": "Ridge Trail",
      "type": "sedona",
      "serial": "DEMO000000000003",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 5
      }
    },
    {
      "id": 1004,
      "network_id": 101,
      "name": "Workshop",
      "type": "sedona",
      "serial": "DEMO000000000004",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1005,
      "network_id": 101,
      "name": "Orchard Gate",
      "type": "sonoran",
      "serial": "DEMO000000000005",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    },
    {
      "id": 1006,
      "network_id": 101,
      "name": "Woodland Crossing",
      "type": "sedona",
      "serial": "DEMO000000000006",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 5
      }
    },
    {
      "id": 1007,
      "network_id": 101,
      "name": "Equipment Shed",
      "type": "sedona",
      "serial": "DEMO000000000007",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1008,
      "network_id": 101,
      "name": "Creek Overlook",
      "type": "sonoran",
      "serial": "DEMO000000000008",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    },
    {
      "id": 1009,
      "network_id": 102,
      "name": "Meadow Entrance",
      "type": "sedona",
      "serial": "DEMO000000000009",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1010,
      "network_id": 102,
      "name": "South Boundary",
      "type": "sedona",
      "serial": "DEMO000000000010",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    },
    {
      "id": 1011,
      "network_id": 102,
      "name": "Bird Feeder",
      "type": "sedona",
      "serial": "DEMO000000000011",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 5
      }
    },
    {
      "id": 1012,
      "network_id": 102,
      "name": "Camp Social Area",
      "type": "sedona",
      "serial": "DEMO000000000012",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1013,
      "network_id": 102,
      "name": "Pond Trail",
      "type": "sonoran",
      "serial": "DEMO000000000013",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    },
    {
      "id": 1014,
      "network_id": 102,
      "name": "South Footbridge",
      "type": "sedona",
      "serial": "DEMO000000000014",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 5
      }
    },
    {
      "id": 1015,
      "network_id": 102,
      "name": "Lower Field",
      "type": "sedona",
      "serial": "DEMO000000000015",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1016,
      "network_id": 103,
      "name": "Upper Trail",
      "type": "sedona",
      "serial": "DEMO000000000016",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1017,
      "network_id": 103,
      "name": "Back Gate",
      "type": "sedona",
      "serial": "DEMO000000000017",
      "status": "done",
      "onboarded": true,
      "network_type": "vo9_mcs_4",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    },
    {
      "id": 1018,
      "network_id": 103,
      "name": "Forest Clearing",
      "type": "sedona",
      "serial": "DEMO000000000018",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 5
      }
    },
    {
      "id": 1019,
      "network_id": 103,
      "name": "Creek Crossing",
      "type": "sedona",
      "serial": "DEMO000000000019",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1020,
      "network_id": 103,
      "name": "Deer Trail",
      "type": "sonoran",
      "serial": "DEMO000000000020",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    },
    {
      "id": 1021,
      "network_id": 103,
      "name": "West Boundary",
      "type": "sedona",
      "serial": "DEMO000000000021",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 5
      }
    },
    {
      "id": 1022,
      "network_id": 103,
      "name": "Trail Junction",
      "type": "sedona",
      "serial": "DEMO000000000022",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1023,
      "network_id": 103,
      "name": "Woodpile",
      "type": "sonoran",
      "serial": "DEMO000000000023",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    },
    {
      "id": 1024,
      "network_id": 104,
      "name": "Driveway Entrance",
      "type": "sedona",
      "serial": "DEMO000000000024",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1025,
      "network_id": 104,
      "name": "Garage",
      "type": "sedona",
      "serial": "DEMO000000000025",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    },
    {
      "id": 1026,
      "network_id": 104,
      "name": "Front Walk",
      "type": "sedona",
      "serial": "DEMO000000000026",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 5
      }
    },
    {
      "id": 1027,
      "network_id": 104,
      "name": "Parking Area",
      "type": "sedona",
      "serial": "DEMO000000000027",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1028,
      "network_id": 104,
      "name": "Mailbox",
      "type": "sonoran",
      "serial": "DEMO000000000028",
      "status": "done",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    }
  ],
  "owls": [
    {
      "id": 1031,
      "network_id": 105,
      "name": "Family Room",
      "type": "hawk",
      "serial": "DEMO000000000031",
      "status": "online",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1032,
      "network_id": 105,
      "name": "Dining Room",
      "type": "owl",
      "serial": "DEMO000000000032",
      "status": "online",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    },
    {
      "id": 1033,
      "network_id": 105,
      "name": "Kitchen",
      "type": "hawk",
      "serial": "DEMO000000000033",
      "status": "online",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 5
      }
    },
    {
      "id": 1034,
      "network_id": 105,
      "name": "Hallway",
      "type": "owl",
      "serial": "DEMO000000000034",
      "status": "online",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    },
    {
      "id": 1035,
      "network_id": 105,
      "name": "Basement",
      "type": "hawk",
      "serial": "DEMO000000000035",
      "status": "online",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 4
      }
    }
  ],
  "doorbells": [
    {
      "id": 1029,
      "network_id": 104,
      "name": "Front Door",
      "type": "freesia",
      "serial": "DEMO000000000029",
      "status": "online",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 4,
        "lfr": 5
      }
    },
    {
      "id": 1030,
      "network_id": 104,
      "name": "Side Door",
      "type": "freesia",
      "serial": "DEMO000000000030",
      "status": "online",
      "onboarded": true,
      "network_type": "wifi",
      "signals": {
        "wifi": 5,
        "lfr": 3
      }
    }
  ],
  "sirens": [],
  "chimes": [],
  "doorbell_buttons": [],
  "accessories": []
}

Help · exit 0

Move command help

The CLI documents dry runs, exact selectors, forced XR/XR+ moves and restoration behavior.

$ blinkops move --help
Move command help. The CLI documents dry runs, exact selectors, forced XR/XR+ moves and restoration behavior.
Read complete output · 25 lines
$ blinkops move --help
usage: blinkops move [-h] [--dry-run] [--cached] [--inventory-file INVENTORY_FILE] [--yes] [--force]
                     camera destination

Perform an ordered batch that moves a camera from its current station to another: save settings, remove it
from the source, register the same serial at the destination, restore settings, and verify the camera and
intended armed states. Outdoor 4, Outdoor 2K+, Mini, and Mini 2 keep the name and apply LED Always Off, Best
quality, 10-second clips, and Photo Capture off where supported. Mini setup happens in the Blink app; resume
to apply saved settings and finish. Other settings may reset on Outdoor 2K+ and Minis. XR/XR+ requires
--force and is re-registered on Wi-Fi; physical recovery may be needed. Unknown transports are blocked.
Outdoor 4 requires restorable settings unless --force accepts losing untested settings.

positional arguments:
  camera                Exact camera name or full serial
  destination           Exact system name or Sync Module serial

options:
  -h, --help            show this help message and exit
  --dry-run             Plan without changing devices
  --cached              Use saved inventory without a cloud request
  --inventory-file INVENTORY_FILE
                        Plan from an exported inventory JSON file
  --yes                 Confirm the transfer without prompting
  --force               Allow XR/XR+ moves onto Wi-Fi with physical recovery risk, and allow untested
                        Outdoor 4 settings to reset without restoration

Dry-run preview · exit 0

Wi-Fi move preview

Garden Path moves from North Ridge to South Meadow; this is only a preflight preview.

$ blinkops move 'Garden Path' 'South Meadow' --dry-run
Read complete output · 98 lines
$ blinkops move 'Garden Path' 'South Meadow' --dry-run
{
  "operation": "move",
  "preview_only": true,
  "camera": {
    "id": 1001,
    "network_id": 101,
    "name": "Garden Path",
    "type": "sedona",
    "serial": "DEMO000000000001",
    "status": "done",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 5,
      "lfr": 3
    }
  },
  "source": {
    "id": 101,
    "name": "North Ridge",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "settings_backup": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "id": 1001,
    "network_id": 101,
    "serial": "DEMO000000000001",
    "name": "Garden Path",
    "network_type": "wifi",
    "network": 101,
    "led_state": "recording",
    "video_quality": "standard",
    "video_length": 5,
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true
  },
  "already_absent": false,
  "armed_state_changes": false,
  "destination": {
    "id": 102,
    "name": "South Meadow",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "move_settings": {
    "led_state": "off",
    "video_quality": "best",
    "video_length": 10,
    "snapshot_enabled": false
  },
  "force": false,
  "unrestored_settings": [],
  "execution_available": true,
  "restored_settings": [
    "video_quality",
    "video_length",
    "snapshot_enabled",
    "early_termination",
    "auto_update_thumbnail_enabled",
    "name",
    "led_state"
  ],
  "warnings": [],
  "blockers": [],
  "source_empty": false,
  "resume": false
}

Dry-run preview · exit 0

Forced XR+ move preview

The sole XR+ camera's force preview retains the original transport and warns about Wi-Fi re-registration and physical recovery.

$ blinkops move 'North Boundary' 'South Meadow' --force --dry-run
Read complete output · 100 lines
$ blinkops move 'North Boundary' 'South Meadow' --force --dry-run
{
  "operation": "move",
  "preview_only": true,
  "camera": {
    "id": 1002,
    "network_id": 101,
    "name": "North Boundary",
    "type": "sedona",
    "serial": "DEMO000000000002",
    "status": "done",
    "onboarded": true,
    "network_type": "vo9_mcs_2",
    "signals": {
      "wifi": 4,
      "lfr": 4
    }
  },
  "source": {
    "id": 101,
    "name": "North Ridge",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "settings_backup": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "id": 1002,
    "network_id": 101,
    "serial": "DEMO000000000002",
    "name": "North Boundary",
    "network_type": "vo9_mcs_2",
    "network": 101,
    "led_state": "recording",
    "video_quality": "standard",
    "video_length": 5,
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true
  },
  "already_absent": false,
  "armed_state_changes": false,
  "destination": {
    "id": 102,
    "name": "South Meadow",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "move_settings": {
    "led_state": "off",
    "video_quality": "best",
    "video_length": 10,
    "snapshot_enabled": false
  },
  "force": true,
  "unrestored_settings": [],
  "execution_available": true,
  "restored_settings": [
    "video_quality",
    "video_length",
    "snapshot_enabled",
    "early_termination",
    "auto_update_thumbnail_enabled",
    "name",
    "led_state"
  ],
  "warnings": [
    "Warning: forced XR/XR+ move re-registers the camera on Wi-Fi. Outside Wi-Fi range it may fail to re-add after deletion and require physical recovery in the Blink app."
  ],
  "blockers": [],
  "source_empty": false,
  "resume": false
}

Dry-run preview · exit 0

Forced XR move preview

The sole XR camera is on Back Woods, a different station from the XR+ camera; its forced move is reviewed without execution.

$ blinkops move 'Back Gate' 'South Meadow' --force --dry-run
Read complete output · 100 lines
$ blinkops move 'Back Gate' 'South Meadow' --force --dry-run
{
  "operation": "move",
  "preview_only": true,
  "camera": {
    "id": 1017,
    "network_id": 103,
    "name": "Back Gate",
    "type": "sedona",
    "serial": "DEMO000000000017",
    "status": "done",
    "onboarded": true,
    "network_type": "vo9_mcs_4",
    "signals": {
      "wifi": 4,
      "lfr": 4
    }
  },
  "source": {
    "id": 103,
    "name": "Back Woods",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "settings_backup": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "id": 1017,
    "network_id": 103,
    "serial": "DEMO000000000017",
    "name": "Back Gate",
    "network_type": "vo9_mcs_4",
    "network": 103,
    "led_state": "recording",
    "video_quality": "standard",
    "video_length": 5,
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true
  },
  "already_absent": false,
  "armed_state_changes": false,
  "destination": {
    "id": 102,
    "name": "South Meadow",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "move_settings": {
    "led_state": "off",
    "video_quality": "best",
    "video_length": 10,
    "snapshot_enabled": false
  },
  "force": true,
  "unrestored_settings": [],
  "execution_available": true,
  "restored_settings": [
    "video_quality",
    "video_length",
    "snapshot_enabled",
    "early_termination",
    "auto_update_thumbnail_enabled",
    "name",
    "led_state"
  ],
  "warnings": [
    "Warning: forced XR/XR+ move re-registers the camera on Wi-Fi. Outside Wi-Fi range it may fail to re-add after deletion and require physical recovery in the Blink app."
  ],
  "blockers": [],
  "source_empty": false,
  "resume": false
}

Blocked as expected · exit 1

XR+ move blocked without force

The CLI rejects the XR+ camera's default move before any deletion.

$ blinkops move 'North Boundary' 'South Meadow' --dry-run
XR+ move blocked without force. The CLI rejects the XR+ camera's default move before any deletion.
Read complete output · 3 lines
$ blinkops move 'North Boundary' 'South Meadow' --dry-run
blinkops: XR/XR+, extended-range, or unknown transport: automatic deletion is blocked
[exit status 1]

Dry-run preview · exit 0

App-assisted Mini move

Family Room's preview explains the Blink-app setup/resume workflow.

$ blinkops move 'Family Room' 'Front Drive' --dry-run
Read complete output · 158 lines
$ blinkops move 'Family Room' 'Front Drive' --dry-run
{
  "camera": {
    "id": 1031,
    "network_id": 105,
    "name": "Family Room",
    "type": "hawk",
    "serial": "DEMO000000000031",
    "status": "online",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 5,
      "lfr": 3
    }
  },
  "source": {
    "id": 105,
    "name": "Scheduled Indoors",
    "armed": false,
    "time_zone": "America/New_York"
  },
  "destination": {
    "id": 104,
    "name": "Front Drive",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "settings_backup": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "id": 1031,
    "network_id": 105,
    "serial": "DEMO000000000031",
    "name": "Family Room",
    "network_type": "wifi",
    "network": 105,
    "led_state": "recording",
    "video_quality": "standard",
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true,
    "clip_length": 5,
    "button_led_mode": "on"
  },
  "move_mode": "app_assisted",
  "current_camera": {
    "id": 1031,
    "network_id": 105,
    "name": "Family Room",
    "type": "hawk",
    "serial": "DEMO000000000031",
    "status": "online",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 5,
      "lfr": 3
    }
  },
  "current_config": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "id": 1031,
    "network_id": 105,
    "serial": "DEMO000000000031",
    "name": "Family Room",
    "network_type": "wifi",
    "network": 105,
    "led_state": "recording",
    "video_quality": "standard",
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true,
    "clip_length": 5,
    "button_led_mode": "on"
  },
  "app_setup_complete": false,
  "source_empty": false,
  "restore_destination_armed": true,
  "move_settings": {
    "led_state": "off",
    "video_quality": "best",
    "clip_length": 10,
    "snapshot_enabled": false
  },
  "restored_settings": [
    "name",
    "led_state",
    "video_quality",
    "clip_length",
    "snapshot_enabled"
  ],
  "skipped_settings": {},
  "warnings": [
    "The original name and listed move settings are applied; other settings may reset.",
    "Mini removal and Wi-Fi setup must be completed in the Blink app; resume here to finish the saved move."
  ],
  "operation": "move",
  "preview_only": true,
  "execution_available": true,
  "blockers": [],
  "resume": false
}

Dry-run preview · exit 0

Outdoor 2K+ move

The Outdoor 2K+ camera's move preview documents its supported restoration and reset caveats.

$ blinkops move 'Orchard Gate' 'South Meadow' --dry-run
Read complete output · 96 lines
$ blinkops move 'Orchard Gate' 'South Meadow' --dry-run
{
  "camera": {
    "id": 1005,
    "network_id": 101,
    "name": "Orchard Gate",
    "type": "sonoran",
    "serial": "DEMO000000000005",
    "status": "done",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 4,
      "lfr": 4
    }
  },
  "source": {
    "id": 101,
    "name": "North Ridge",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "settings_backup": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "id": 1005,
    "network_id": 101,
    "serial": "DEMO000000000005",
    "name": "Orchard Gate",
    "network_type": "wifi",
    "network": 101,
    "led_state": "recording",
    "video_quality": "standard",
    "video_length": 5,
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true
  },
  "destination": {
    "id": 102,
    "name": "South Meadow",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "move_settings": {
    "led_state": "off",
    "video_quality": "best",
    "video_length": 10,
    "snapshot_enabled": false
  },
  "force": false,
  "unrestored_settings": [],
  "operation": "move",
  "preview_only": true,
  "execution_available": true,
  "restored_settings": [
    "name",
    "led_state",
    "video_quality",
    "video_length",
    "snapshot_enabled"
  ],
  "warnings": [
    "The name and preferred move settings are applied; other settings may reset."
  ],
  "blockers": [],
  "source_empty": false,
  "resume": false
}

Dry-run preview · exit 0

Rename an outdoor camera

Preview the current and proposed device names while preserving captured settings.

$ blinkops rename 'Garden Path' 'North Garden Path' --dry-run
Rename an outdoor camera. Preview the current and proposed device names while preserving captured settings.
Read complete output · 34 lines
$ blinkops rename 'Garden Path' 'North Garden Path' --dry-run
{
  "operation": "rename",
  "preview_only": true,
  "camera": {
    "id": 1001,
    "network_id": 101,
    "name": "Garden Path",
    "type": "sedona",
    "serial": "DEMO000000000001",
    "status": "done",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 5,
      "lfr": 3
    }
  },
  "changes": {
    "name": {
      "before": "Garden Path",
      "after": "North Garden Path"
    }
  },
  "preserved_settings": {
    "video_quality": "standard",
    "video_length": 5,
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true,
    "led_state": "recording"
  },
  "armed_state_changes": false
}

Dry-run preview · exit 0

Rename a Mini 2

Portable camera rename preflight uses the Mini config route.

$ blinkops rename 'Family Room' 'Family Room East' --dry-run
Read complete output · 65 lines
$ blinkops rename 'Family Room' 'Family Room East' --dry-run
{
  "operation": "rename",
  "preview_only": true,
  "camera": {
    "id": 1031,
    "network_id": 105,
    "name": "Family Room",
    "type": "hawk",
    "serial": "DEMO000000000031",
    "status": "online",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 5,
      "lfr": 3
    }
  },
  "changes": {
    "name": {
      "before": "Family Room",
      "after": "Family Room East"
    }
  },
  "preserved_settings": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "network_type": "wifi",
    "led_state": "recording",
    "video_quality": "standard",
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true,
    "clip_length": 5,
    "button_led_mode": "on"
  },
  "armed_state_changes": false
}

Dry-run preview · exit 0

Rename a doorbell

Doorbell name-only rename preflight preserves its captured settings.

$ blinkops rename 'Front Door' 'Front Porch' --dry-run
Read complete output · 65 lines
$ blinkops rename 'Front Door' 'Front Porch' --dry-run
{
  "operation": "rename",
  "preview_only": true,
  "camera": {
    "id": 1029,
    "network_id": 104,
    "name": "Front Door",
    "type": "freesia",
    "serial": "DEMO000000000029",
    "status": "online",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 4,
      "lfr": 5
    }
  },
  "changes": {
    "name": {
      "before": "Front Door",
      "after": "Front Porch"
    }
  },
  "preserved_settings": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "network_type": "wifi",
    "led_state": "recording",
    "video_quality": "standard",
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true,
    "clip_length": 5,
    "button_led_mode": "on"
  },
  "armed_state_changes": false
}

Dry-run preview · exit 0

Rename a station

The station rename diff identifies the exact system and keeps its arming and membership intact.

$ blinkops rename station 'North Ridge' 'North Garden' --dry-run
Rename a station. The station rename diff identifies the exact system and keeps its arming and membership intact.
Read complete output · 30 lines
$ blinkops rename station 'North Ridge' 'North Garden' --dry-run
{
  "operation": "rename-station",
  "preview_only": true,
  "station": {
    "id": 101,
    "name": "North Ridge",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "sync_modules": [
    {
      "id": 901,
      "network_id": 101,
      "serial": "DEMOSYNC00000001",
      "type": "sync_module",
      "subtype": "xr",
      "status": "online",
      "onboarded": true
    }
  ],
  "changes": {
    "name": {
      "before": "North Ridge",
      "after": "North Garden"
    }
  },
  "armed_state_changes": false,
  "resume": false
}

Dry-run preview · exit 0

Apply camera defaults

Preview LED off, Best quality, 10-second clips and Photo Capture off for Garden Path.

$ blinkops apply-config 'Garden Path' --dry-run
Apply camera defaults. Preview LED off, Best quality, 10-second clips and Photo Capture off for Garden Path.
Read complete output · 52 lines
$ blinkops apply-config 'Garden Path' --dry-run
{
  "operation": "apply-config",
  "preview_only": true,
  "camera": {
    "id": 1001,
    "network_id": 101,
    "name": "Garden Path",
    "type": "sedona",
    "serial": "DEMO000000000001",
    "status": "done",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 5,
      "lfr": 3
    }
  },
  "config_file": "/tmp/blinkops-cli-demo-cnm8u7ix/config/camera-defaults.json",
  "changes": {
    "led_state": {
      "before": "recording",
      "after": "off"
    },
    "video_quality": {
      "before": "standard",
      "after": "best"
    },
    "video_length": {
      "before": 5,
      "after": 10
    },
    "snapshot_enabled": {
      "before": true,
      "after": false
    }
  },
  "template": {
    "source": "/tmp/blinkops-cli-demo-cnm8u7ix/config/camera-defaults.json",
    "model": "outdoor4",
    "settings": {
      "led_state": "off",
      "video_quality": "best",
      "video_length": 10,
      "snapshot_enabled": false
    },
    "skipped_settings": {}
  },
  "skipped_settings": {},
  "preserve_name": "Garden Path",
  "armed_state_changes": false
}

Dry-run preview · exit 0

Apply Mini 2 defaults

Preview the model-specific Mini 2 configuration while retaining its name.

$ blinkops apply-config 'Family Room' --dry-run
Read complete output · 52 lines
$ blinkops apply-config 'Family Room' --dry-run
{
  "operation": "apply-config",
  "preview_only": true,
  "camera": {
    "id": 1031,
    "network_id": 105,
    "name": "Family Room",
    "type": "hawk",
    "serial": "DEMO000000000031",
    "status": "online",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 5,
      "lfr": 3
    }
  },
  "config_file": "/tmp/blinkops-cli-demo-cnm8u7ix/config/camera-defaults.json",
  "changes": {
    "led_state": {
      "before": "recording",
      "after": "off"
    },
    "video_quality": {
      "before": "standard",
      "after": "best"
    },
    "clip_length": {
      "before": 5,
      "after": 10
    },
    "snapshot_enabled": {
      "before": true,
      "after": false
    }
  },
  "template": {
    "source": "/tmp/blinkops-cli-demo-cnm8u7ix/config/camera-defaults.json",
    "model": "mini2",
    "settings": {
      "led_state": "off",
      "video_quality": "best",
      "clip_length": 10,
      "snapshot_enabled": false
    },
    "skipped_settings": {}
  },
  "skipped_settings": {},
  "preserve_name": "Family Room",
  "armed_state_changes": false
}

Dry-run preview · exit 0

Apply defaults to a station

The complete batch preview includes all eight North Ridge cameras and skipped non-camera devices.

$ blinkops apply-config station 'North Ridge' --dry-run
Read complete output · 358 lines
$ blinkops apply-config station 'North Ridge' --dry-run
{
  "operation": "apply-config-station",
  "station": {
    "id": 101,
    "name": "North Ridge",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "devices": [
    {
      "camera": {
        "id": 1001,
        "network_id": 101,
        "name": "Garden Path",
        "type": "sedona",
        "serial": "DEMO000000000001",
        "status": "done",
        "onboarded": true,
        "network_type": "wifi",
        "signals": {
          "wifi": 5,
          "lfr": 3
        }
      },
      "changes": {
        "led_state": {
          "before": "recording",
          "after": "off"
        },
        "video_quality": {
          "before": "standard",
          "after": "best"
        },
        "video_length": {
          "before": 5,
          "after": 10
        },
        "snapshot_enabled": {
          "before": true,
          "after": false
        }
      },
      "settings": {
        "led_state": "off",
        "video_quality": "best",
        "video_length": 10,
        "snapshot_enabled": false
      },
      "skipped_settings": {},
      "complete": false
    },
    {
      "camera": {
        "id": 1002,
        "network_id": 101,
        "name": "North Boundary",
        "type": "sedona",
        "serial": "DEMO000000000002",
        "status": "done",
        "onboarded": true,
        "network_type": "vo9_mcs_2",
        "signals": {
          "wifi": 4,
          "lfr": 4
        }
      },
      "changes": {
        "led_state": {
          "before": "recording",
          "after": "off"
        },
        "video_quality": {
          "before": "standard",
          "after": "best"
        },
        "video_length": {
          "before": 5,
          "after": 10
        },
        "snapshot_enabled": {
          "before": true,
          "after": false
        }
      },
      "settings": {
        "led_state": "off",
        "video_quality": "best",
        "video_length": 10,
        "snapshot_enabled": false
      },
      "skipped_settings": {},
      "complete": false
    },
    {
      "camera": {
        "id": 1003,
        "network_id": 101,
        "name": "Ridge Trail",
        "type": "sedona",
        "serial": "DEMO000000000003",
        "status": "done",
        "onboarded": true,
        "network_type": "wifi",
        "signals": {
          "wifi": 4,
          "lfr": 5
        }
      },
      "changes": {
        "led_state": {
          "before": "recording",
          "after": "off"
        },
        "video_quality": {
          "before": "standard",
          "after": "best"
        },
        "video_length": {
          "before": 5,
          "after": 10
        },
        "snapshot_enabled": {
          "before": true,
          "after": false
        }
      },
      "settings": {
        "led_state": "off",
        "video_quality": "best",
        "video_length": 10,
        "snapshot_enabled": false
      },
      "skipped_settings": {},
      "complete": false
    },
    {
      "camera": {
        "id": 1004,
        "network_id": 101,
        "name": "Workshop",
        "type": "sedona",
        "serial": "DEMO000000000004",
        "status": "done",
        "onboarded": true,
        "network_type": "wifi",
        "signals": {
          "wifi": 5,
          "lfr": 3
        }
      },
      "changes": {
        "led_state": {
          "before": "recording",
          "after": "off"
        },
        "video_quality": {
          "before": "standard",
          "after": "best"
        },
        "video_length": {
          "before": 5,
          "after": 10
        },
        "snapshot_enabled": {
          "before": true,
          "after": false
        }
      },
      "settings": {
        "led_state": "off",
        "video_quality": "best",
        "video_length": 10,
        "snapshot_enabled": false
      },
      "skipped_settings": {},
      "complete": false
    },
    {
      "camera": {
        "id": 1005,
        "network_id": 101,
        "name": "Orchard Gate",
        "type": "sonoran",
        "serial": "DEMO000000000005",
        "status": "done",
        "onboarded": true,
        "network_type": "wifi",
        "signals": {
          "wifi": 4,
          "lfr": 4
        }
      },
      "changes": {
        "led_state": {
          "before": "recording",
          "after": "off"
        },
        "video_quality": {
          "before": "standard",
          "after": "best"
        },
        "video_length": {
          "before": 5,
          "after": 10
        },
        "snapshot_enabled": {
          "before": true,
          "after": false
        }
      },
      "settings": {
        "led_state": "off",
        "video_quality": "best",
        "video_length": 10,
        "snapshot_enabled": false
      },
      "skipped_settings": {},
      "complete": false
    },
    {
      "camera": {
        "id": 1006,
        "network_id": 101,
        "name": "Woodland Crossing",
        "type": "sedona",
        "serial": "DEMO000000000006",
        "status": "done",
        "onboarded": true,
        "network_type": "wifi",
        "signals": {
          "wifi": 4,
          "lfr": 5
        }
      },
      "changes": {
        "led_state": {
          "before": "recording",
          "after": "off"
        },
        "video_quality": {
          "before": "standard",
          "after": "best"
        },
        "video_length": {
          "before": 5,
          "after": 10
        },
        "snapshot_enabled": {
          "before": true,
          "after": false
        }
      },
      "settings": {
        "led_state": "off",
        "video_quality": "best",
        "video_length": 10,
        "snapshot_enabled": false
      },
      "skipped_settings": {},
      "complete": false
    },
    {
      "camera": {
        "id": 1007,
        "network_id": 101,
        "name": "Equipment Shed",
        "type": "sedona",
        "serial": "DEMO000000000007",
        "status": "done",
        "onboarded": true,
        "network_type": "wifi",
        "signals": {
          "wifi": 5,
          "lfr": 3
        }
      },
      "changes": {
        "led_state": {
          "before": "recording",
          "after": "off"
        },
        "video_quality": {
          "before": "standard",
          "after": "best"
        },
        "video_length": {
          "before": 5,
          "after": 10
        },
        "snapshot_enabled": {
          "before": true,
          "after": false
        }
      },
      "settings": {
        "led_state": "off",
        "video_quality": "best",
        "video_length": 10,
        "snapshot_enabled": false
      },
      "skipped_settings": {},
      "complete": false
    },
    {
      "camera": {
        "id": 1008,
        "network_id": 101,
        "name": "Creek Overlook",
        "type": "sonoran",
        "serial": "DEMO000000000008",
        "status": "done",
        "onboarded": true,
        "network_type": "wifi",
        "signals": {
          "wifi": 4,
          "lfr": 4
        }
      },
      "changes": {
        "led_state": {
          "before": "recording",
          "after": "off"
        },
        "video_quality": {
          "before": "standard",
          "after": "best"
        },
        "video_length": {
          "before": 5,
          "after": 10
        },
        "snapshot_enabled": {
          "before": true,
          "after": false
        }
      },
      "settings": {
        "led_state": "off",
        "video_quality": "best",
        "video_length": 10,
        "snapshot_enabled": false
      },
      "skipped_settings": {},
      "complete": false
    }
  ],
  "skipped_devices": [
    {
      "kind": "Sync Module",
      "name": "DEMOSYNC00000001"
    }
  ],
  "count": 8,
  "armed_state_changes": false,
  "resume": false,
  "preview_only": true
}

Dry-run preview · exit 0

Arm the indoor station

Preview Scheduled Indoors changing from disarmed to armed without sending a request.

$ blinkops arm 'Scheduled Indoors' --dry-run
Arm the indoor station. Preview Scheduled Indoors changing from disarmed to armed without sending a request.
Read complete output · 26 lines
$ blinkops arm 'Scheduled Indoors' --dry-run
{
  "operation": "arm",
  "preview_only": true,
  "station": {
    "id": 105,
    "name": "Scheduled Indoors",
    "armed": false,
    "time_zone": "America/New_York"
  },
  "sync_modules": [
    {
      "id": 905,
      "network_id": 105,
      "serial": "DEMOSYNC00000005",
      "type": "sync_module",
      "subtype": "xr",
      "status": "online",
      "onboarded": true
    }
  ],
  "before": false,
  "after": true,
  "changed": true,
  "resume": false
}

Dry-run preview · exit 0

Disarm North Ridge

Preview the armed-to-disarmed transition for the selected system.

$ blinkops disarm 'North Ridge' --dry-run
Disarm North Ridge. Preview the armed-to-disarmed transition for the selected system.
Read complete output · 26 lines
$ blinkops disarm 'North Ridge' --dry-run
{
  "operation": "disarm",
  "preview_only": true,
  "station": {
    "id": 101,
    "name": "North Ridge",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "sync_modules": [
    {
      "id": 901,
      "network_id": 101,
      "serial": "DEMOSYNC00000001",
      "type": "sync_module",
      "subtype": "xr",
      "status": "online",
      "onboarded": true
    }
  ],
  "before": true,
  "after": false,
  "changed": true,
  "resume": false
}

Network options · exit 0

Available camera networks

List Wi-Fi, XR and XR+ options for North Boundary, the account's one XR+ camera.

$ blinkops network 'North Boundary'
Read complete output · 83 lines
$ blinkops network 'North Boundary'
{
  "operation": "network",
  "preview_only": true,
  "camera": {
    "id": 1002,
    "network_id": 101,
    "name": "North Boundary",
    "type": "sedona",
    "serial": "DEMO000000000002",
    "status": "done",
    "onboarded": true,
    "network_type": "vo9_mcs_2",
    "signals": {
      "wifi": 4,
      "lfr": 4
    }
  },
  "current": "xr+",
  "target": null,
  "options": {
    "wifi": {
      "network_type": "wifi",
      "label": "Wi-Fi",
      "available": true,
      "selected": false
    },
    "xr": {
      "network_type": "vo9_mcs_4",
      "label": "XR",
      "available": true,
      "selected": false
    },
    "xr+": {
      "network_type": "vo9_mcs_2",
      "label": "XR+",
      "available": true,
      "selected": true
    }
  },
  "changes": {},
  "preserved_settings": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "name": "North Boundary",
    "led_state": "recording",
    "video_quality": "standard",
    "video_length": 5,
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true
  },
  "armed_state_changes": false,
  "warnings": [],
  "resume": false
}

Dry-run preview · exit 0

XR+ to Wi-Fi preview

Preview switching the existing XR+ camera to Wi-Fi; no third extended-range camera is introduced.

$ blinkops network 'North Boundary' wifi --dry-run
Read complete output · 90 lines
$ blinkops network 'North Boundary' wifi --dry-run
{
  "operation": "network",
  "preview_only": true,
  "camera": {
    "id": 1002,
    "network_id": 101,
    "name": "North Boundary",
    "type": "sedona",
    "serial": "DEMO000000000002",
    "status": "done",
    "onboarded": true,
    "network_type": "vo9_mcs_2",
    "signals": {
      "wifi": 4,
      "lfr": 4
    }
  },
  "current": "xr+",
  "target": "wifi",
  "options": {
    "wifi": {
      "network_type": "wifi",
      "label": "Wi-Fi",
      "available": true,
      "selected": false
    },
    "xr": {
      "network_type": "vo9_mcs_4",
      "label": "XR",
      "available": true,
      "selected": false
    },
    "xr+": {
      "network_type": "vo9_mcs_2",
      "label": "XR+",
      "available": true,
      "selected": true
    }
  },
  "changes": {
    "network_type": {
      "before": "XR+",
      "after": "Wi-Fi"
    }
  },
  "preserved_settings": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "name": "North Boundary",
    "led_state": "recording",
    "video_quality": "standard",
    "video_length": 5,
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true
  },
  "armed_state_changes": false,
  "warnings": [
    "Keep the camera within Wi-Fi range while switching coverage. An unreachable camera may require physical recovery in Blink. XR/XR+ coverage can limit video quality and other camera features."
  ],
  "resume": false
}

Dry-run preview · exit 0

Wi-Fi camera deletion preview

Review exact camera identity and supported settings before removal; nothing is deleted.

$ blinkops delete 'Garden Path' --dry-run
Read complete output · 70 lines
$ blinkops delete 'Garden Path' --dry-run
{
  "operation": "delete",
  "preview_only": true,
  "camera": {
    "id": 1001,
    "network_id": 101,
    "name": "Garden Path",
    "type": "sedona",
    "serial": "DEMO000000000001",
    "status": "done",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 5,
      "lfr": 3
    }
  },
  "source": {
    "id": 101,
    "name": "North Ridge",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "settings_backup": {
    "motion_sensitivity": 6,
    "enabled": true,
    "alert_tone_volume": 0,
    "alert_interval": 10,
    "temp_alarm_enable": false,
    "temp_min": null,
    "temp_max": null,
    "illuminator_enable": 2,
    "illuminator_duration": 1,
    "illuminator_intensity": 1,
    "light_brightness": 5,
    "lfr_sync_interval": 8,
    "record_audio_enable": true,
    "motion_regions": 33554431,
    "motion_alert": true,
    "zone_version": "v2",
    "early_notification": true,
    "night_vision_exposure": 1,
    "flip_video": false,
    "video_recording_enable": true,
    "snapshot_period_minutes": 60,
    "detection_modes": {
      "motion_detection": true,
      "person_detection": true,
      "vehicle_detection": true
    },
    "motion_record_and_alert": {
      "record_type": "motion_detection"
    },
    "id": 1001,
    "network_id": 101,
    "serial": "DEMO000000000001",
    "name": "Garden Path",
    "network_type": "wifi",
    "network": 101,
    "led_state": "recording",
    "video_quality": "standard",
    "video_length": 5,
    "snapshot_enabled": true,
    "early_termination": true,
    "auto_update_thumbnail_enabled": true
  },
  "already_absent": false,
  "armed_state_changes": false
}

Blocked as expected · exit 1

Standalone XR+ deletion blocked

Standalone deletion remains Wi-Fi-only, even though forced extended-range moves have a separate opt-in.

$ blinkops delete 'North Boundary' --dry-run
Read complete output · 3 lines
$ blinkops delete 'North Boundary' --dry-run
blinkops: XR/XR+, extended-range, or unknown transport: automatic deletion is blocked
[exit status 1]

Blocked as expected · exit 1

Occupied station deletion blocked

A station with registered devices fails preflight.

$ blinkops delete station 'North Ridge' --dry-run
Occupied station deletion blocked. A station with registered devices fails preflight.
Read complete output · 3 lines
$ blinkops delete station 'North Ridge' --dry-run
blinkops: Station is not empty; move or remove its devices first
[exit status 1]

Dry-run preview · exit 0

Reorder a device

Preview moving Garden Path down within North Ridge using the signed-in client's display preferences.

$ blinkops reorder 'Garden Path' down --dry-run
Reorder a device. Preview moving Garden Path down within North Ridge using the signed-in client's display preferences.
Read complete output · 49 lines
$ blinkops reorder 'Garden Path' down --dry-run
{
  "operation": "reorder",
  "camera": {
    "id": 1001,
    "network_id": 101,
    "name": "Garden Path",
    "type": "sedona",
    "serial": "DEMO000000000001",
    "status": "done",
    "onboarded": true,
    "network_type": "wifi",
    "signals": {
      "wifi": 5,
      "lfr": 3
    }
  },
  "station": {
    "id": 101,
    "name": "North Ridge",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "direction": "down",
  "before": [
    1001,
    1002,
    1003,
    1004,
    1005,
    1006,
    1007,
    1008
  ],
  "after": [
    1002,
    1001,
    1003,
    1004,
    1005,
    1006,
    1007,
    1008
  ],
  "changed": true,
  "position": 2,
  "count": 8,
  "blockers": []
}

Dry-run preview · exit 0

Reorder stations

Preview moving North Ridge down without changing device assignments or arming.

$ blinkops reorder station 'North Ridge' down --dry-run
Read complete output · 29 lines
$ blinkops reorder station 'North Ridge' down --dry-run
{
  "operation": "reorder-station",
  "station": {
    "id": 101,
    "name": "North Ridge",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "direction": "down",
  "before": [
    101,
    102,
    103,
    104,
    105
  ],
  "after": [
    102,
    101,
    103,
    104,
    105
  ],
  "changed": true,
  "position": 2,
  "count": 5,
  "blockers": []
}

Dry-run preview · exit 0

Register an Outdoor 4 preview

Review a new synthetic serial, optional name, destination and model defaults without registering it.

$ blinkops add outdoor4 DEMO000000009999 --station 'South Meadow' --name 'Meadow Watch' --dry-run
Register an Outdoor 4 preview. Review a new synthetic serial, optional name, destination and model defaults without registering it.
Read complete output · 37 lines
$ blinkops add outdoor4 DEMO000000009999 --station 'South Meadow' --name 'Meadow Watch' --dry-run
{
  "operation": "add",
  "device_type": "outdoor4",
  "serial": "DEMO000000009999",
  "name": "Meadow Watch",
  "transport": "wifi",
  "destination": {
    "id": 102,
    "name": "South Meadow",
    "armed": true,
    "time_zone": "America/New_York"
  },
  "restore_armed": true,
  "blockers": [],
  "inventory_source": "cloud",
  "steps": [
    "identify_outdoor4",
    "save_progress",
    "disarm_if_needed",
    "register_camera",
    "wait_for_onboarding",
    "select_wifi",
    "verify_camera",
    "apply_camera_defaults",
    "restore_armed_state",
    "verify_inventory"
  ],
  "preview_only": true,
  "template_overrides": {
    "led_state": "off",
    "video_quality": "best",
    "video_length": 10,
    "snapshot_enabled": false
  },
  "config_file": "/tmp/blinkops-cli-demo-cnm8u7ix/config/camera-defaults.json"
}

Jobs · exit 0

List unfinished jobs

The isolated demo has no unfinished jobs; the real CLI prints an empty list. No fake recovery journal is invented.

$ blinkops jobs
Read complete output · 2 lines
$ blinkops jobs
[]

blinkops CLI

Open original PNG ↗