bcmr / better copy move removeone verb for local + sshv0.6.3 · 2026.05.13
§ 01 · overview█
copy.move.remove.
a modern replacement for cp, mv, and scp. blake3 checksums streamed during every write.
crash-safe resume. one cli for local paths and ssh paths — same flags, same guarantees.
every byte hashed on both ends as it's written. --verify promotes it to a full 2-pass re-read.
02
kill the process, pull the cable. rerun the same command. pick up from the last verified chunk.
03
bcmr copy a.txt user@host:/b/ is the same verb as bcmr copy a.txt /b/. same flags, same guarantees.
04
copy_file_range on linux, clone_file on apfs, sparse file detection, content-addressed dedup ≥ 16 mib.
§ 02 · one cli
local, ssh, same command.
cp and scp treat local and remote as two different universes.
bcmr treats them as two different paths. bcmr copy works
the same way whether you are moving 3 mb across a disk or
300 gb across a datacenter.
zsh · bcmr 0.6.3
~/work
§ 03 · features
six things it does right.
these are promises, not descriptions. if you find one violated,
that is a bug i want to hear about.
01
blake3 everywhere
every chunk is hashed on both ends. a verified transfer is the only kind of transfer bcmr will tell you succeeded.
02
crash · resume
kill the process, pull the cable, lose the ssh session. run the same command again and bcmr picks up at the last verified byte.
03
local + ssh
one verb, two universes. paths look like cp. remote paths look like scp. no mental tax for which tool to reach for.
04
reflink · sparse
on apfs, btrfs, xfs and zfs, bcmr uses clone_file / reflink / copy_file_range. a 100 gb copy takes milliseconds if the fs supports it.
05
lz4 · zstd · dedup
optional on-the-wire compression with lz4 or zstd. content-addressed dedup avoids sending bytes you already have.
06
json + tui
use it in a script with --json. use it in a terminal with --tui. same binary. same commands. different skins.