How to program Arduino Nano BLE without IDE?

I have Arduino Nano BLE and I would like to send just bin/hex to my friend who does not need IDE. I am using ATOM/PlatformIO - I found the BIN file after compilation and I would like to send it.

Here is the command the Arduino IDE uses to program the Nano 33 BLE:

C:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino1/bossac.exe -d --port=COM14 -U -i -e -w C:\Users\per\AppData\Local\Temp\arduino_build_195940/sketch_apr03a.ino.bin -R

Your friend can adapt that command to the path to bossac, port of their Nano 33 BLE, and the .bin filename.

It seems Arduino has made some modification to BOSSA, because if I try to use the stock BOSSA the upload fails. So you need to have your friend use Arduino's version of bossac. You can extract the download URLs for each OS from the platform index:
https://downloads.arduino.cc/packages/package_index.json

        {
          "name": "bossac",
          "version": "1.9.1-arduino1",
          "systems": [
            {
              "host": "i686-mingw32",
              "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-windows.tar.gz",
              "archiveFileName": "bossac-1.9.1-arduino1-windows.tar.gz",
              "checksum": "SHA-256:fe2d6ef78ca711c78e104e258357ed06b09e95e9356dc72d8d2c9f6670af4b7a",
              "size": "1260118"
            },
            {
              "host": "x86_64-apple-darwin",
              "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-osx.tar.gz",
              "archiveFileName": "bossac-1.9.1-arduino1-osx.tar.gz",
              "checksum": "SHA-256:c356632f98d5bae9b4f5d3ad823a5ee89b23078c2b835e8ac39a208f4855b0e6",
              "size": "47835"
            },
            {
              "host": "x86_64-pc-linux-gnu",
              "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux64.tar.gz",
              "archiveFileName": "bossac-1.9.1-arduino1-linux64.tar.gz",
              "checksum": "SHA-256:d3d324a3503a8db825c01f3b38519e4d4824c4d0e42cb399a16c1e074f9a9a86",
              "size": "399453"
            },
            {
              "host": "i686-pc-linux-gnu",
              "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux32.tar.gz",
              "archiveFileName": "bossac-1.9.1-arduino1-linux32.tar.gz",
              "checksum": "SHA-256:eec622b8b5a8642af94ec23febfe14c928edd734f144db73b146bf6708d2057f",
              "size": "384792"
            },
            {
              "host": "arm-linux-gnueabihf",
              "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxarm.tar.gz",
              "archiveFileName": "bossac-1.9.1-arduino1-linuxarm.tar.gz",
              "checksum": "SHA-256:b42061d2fa2dbd6910d0d295e024f2cff7bb44f3e2ecc0bc2fe71a1f31b0ecba",
              "size": "361799"
            },
            {
              "host": "aarch64-linux-gnu",
              "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxaarch64.tar.gz",
              "archiveFileName": "bossac-1.9.1-arduino1-linuxaarch64.tar.gz",
              "checksum": "SHA-256:b271013841e1e25ee55f241e8c50a56ed775d3b322844e1e3099231ba17f3868",
              "size": "442657"
            }
          ]
        }

Before running the command, your friend will need to press the reset button on the Nano 33 BLE board twice quickly to put the board in bootloader mode (which is indicated by the pulsing "L" LED). Note that this may cause the port number to change, so check it after putting the board in bootloader mode.

pert:
Here is the command the Arduino IDE uses to program the Nano 33 BLE:

C:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino1/bossac.exe -d --port=COM14 -U -i -e -w C:\Users\per\AppData\Local\Temp\arduino_build_195940/sketch_apr03a.ino.bin -R

Your friend can adapt that command to the path to bossac, port of their Nano 33 BLE, and the .bin filename.

Thanks @pert. This is what I am looking for. Base on your advise, I captured what command line argument bossacexe takes using Process Explorer from MS. Having quite big code to download gave me couple of seconds to check properties of bossac.exe process - this is the command bossac.exe use :
bossac --port "COM4" --write --erase -U --reset ".\firmware.bin" I copied bossca.exe with its config file to separate folder , then I built new code with the new "Hello' Serial.print, thus I was sure it downloads new version of my code. I am using ATOM + platformio (which is nearly equivalent of Arduino) due to project size and my convince. For Arduino IDE bin file will be the name you mentioned.
Thanks Again @pert

You're welcome. I'm glad if I was able to be of assistance. Enjoy!
Per