memprobe is in free beta. Sign up now during beta to get 40% off Pro for life. See pricing

CLI reference

Commands

Authenticate with the stored API key (or MEMPROBE_API_KEY). Add --json to most commands for machine-readable output.

memprobe analyze <file>
$memprobe analyze build/firmware.elf

Size summary for an ELF: Flash/RAM totals and the biggest sections and symbols. Saves a build to your history.

OptionMeaning
--project <name>Save the build under a project.
--top <n>How many top symbols to print (default 10).
--jsonPrint raw JSON instead of a table.
memprobe check <file>
$memprobe check build/firmware.elf

The CI gate. Compares the build against the flash/RAM budgets in memprobe.toml and exits non-zero if any are exceeded.

memprobe diff <old> <new>
$memprobe diff old/firmware.elf new/firmware.elf

Size change between two builds, with per-symbol deltas.

OptionMeaning
--format markdownOutput formatted for a PR comment.
--fail-on <rule>Exit non-zero if flash/RAM grows past a threshold.
--top <n>How many symbol changes to show (default 15).
memprobe account
$memprobe account

Show your plan and this month's usage: analyses used, builds, and projects.

memprobe init
$memprobe init

Scaffold a memprobe.toml with flash/RAM budgets to use with check.

memprobe config set / show
$memprobe config set --key mp_live_xxxxxxxx

config set stores your key (and optional --server); config show prints the current (masked) config.

Exit codes

CodeMeaning
0Success. For check and diff --fail-on, all budgets passed.
1A budget or threshold was exceeded, or an error occurred (bad file, auth, quota, network).

So check is drop-in for a CI step: a non-zero exit fails the job.

Privacy

The CLI extracts only the section and symbol table locally and sends that metadata. Your compiled binary, source, and any other file contents never leave your machine. The metadata is the same information readelf -S and nm print.

Analyze your own firmware
Drop in an ELF and see exactly where your flash and RAM go.
Open the analyzer