The solution was simply to ask an LLM to write a Python command-line interface!
Write a python script run with uv that will use the macos camera to take a picture of a QR code and then show the associated data encoded in the QR code.
A second later I have qr_scanner.py.
I have been using this technique often, especially with Claude Code. When the data needed is deterministic and frequently used I prefer to create a CLI and then direct Claude Code to use it. Generally this leads to fewer tokens, round trips, and quicker results. I use Python for these because a script + uv makes these tools single-file, standalone CLIs.
(And before you ask, yes, it took far longer to write this post than to create, use, and discard the script.)