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

Set up the library

Install the CLI, connect your account, and run your first analysis from the terminal or CI.

The memprobe package is a small thin client. It reads the section and symbol table out of your ELF locally and sends only that metadata to the API, which returns the analysis. Your binary never leaves your machine: only the sizes and symbol names it contains are sent, the same information readelf and nm print.

1. Install

$pip install memprobe

Requires Python 3.9 or newer. The package has no proprietary analysis code; it is a wrapper around pyelftools plus an HTTP client.

2. Create an API key

  1. Sign in and open Account settings.
  2. Under API keys, click Create key.
  3. Copy the key. It is shown once; only a hash is stored, so it cannot be retrieved later.

3. Connect the CLI

$memprobe config set --key mp_live_xxxxxxxx

The key is stored in ~/.memprobe/config.json. In CI, set MEMPROBE_API_KEY as an environment variable instead, which overrides the stored config. Check it any time with memprobe config show.

4. Run your first analysis

$memprobe analyze build/firmware.elf

You will see Flash/RAM totals and the largest sections and symbols. Check your remaining monthly quota with memprobe account.

5. Gate a build in CI

Set flash/RAM budgets and fail the job when they are exceeded:

$memprobe init # writes memprobe.toml with budgets $memprobe check build/firmware.elf # exits non-zero if over budget

Because check exits non-zero on a breach, it works as a gate in any CI system: run it as a build step with MEMPROBE_API_KEY set as a secret.

Next: the CLI reference covers every command and its options; the API reference covers the HTTP endpoints and response formats.

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