Why the Project Is Called BXM
BXM started as a three-letter name looking for a project, and ended up with two projects that each claim it.
Read one way, it’s Binary eXchange Messages: values written as bytes, passed between programs and languages, and agreed on byte for byte at both ends. That’s Canon.
Read the other way, it’s Build eXecution Memo: a note of what a build step did, kept so the step never has to do it again with the same inputs. That’s Memo.
The two readings came after the tools, not before, and that’s fine. What the tools share is the idea on the front page, same input, same bytes, same result, and a short name holds that better than a long one.
Short on purpose
The name is also the command prefix, and you type it a lot. bxm-canon and bxm-memo are quick to type, easy to tab-complete and unlikely to collide with anything already on your PATH. Three letters keep the tool names readable in scripts and CI configs, where they sit in front of other people’s commands.
One roof
The tools are separate binaries, with separate jobs and even separate languages, Rust for Canon and Go for Memo. Putting them under one name says they belong to one project with one set of habits: small tools, one main promise each, every number measured and recorded, and releases that are tested on every platform before anyone downloads them.