Repolode
membrowse

membrowse/membrowse-action

A GitHub Action and Python CLI that tracks flash and RAM footprint of embedded firmware from ELF files and comments memory diffs on pull requests.

Stars
50
Forks
2
Open issues
0
Last commit
yesterday

What is it?

MemBrowse measures how much flash and RAM an embedded firmware image uses. It reads the ELF file and linker script, maps symbols back to their source files, and reports usage per memory region, along with the largest symbols. The CLI can run locally with no account, which makes it useful for checking a build on a developer's own machine.

In CI, the GitHub Action uploads each analysis to the MemBrowse service, where it keeps history across commits. Pull requests can receive a comment showing the memory diff, and the build can fail when a configured budget is exceeded. Those cloud features require a free API key.

The tool supports any toolchain that emits ELF files with DWARF debug info, including ARM, Xtensa and RISC-V. It parses GNU LD scripts, IAR ICF files and SEGGER Embedded Studio project files, detecting the format from file content.

Key features

  • 01Reports flash and RAM usage per memory region from ELF files
  • 02Maps symbols to their definition source files
  • 03Reads memory layouts from GNU LD, IAR ICF and SEGGER emProject files
  • 04Posts memory diffs as pull request comments through a GitHub Action
  • 05Can fail CI builds when memory budgets are exceeded

Use cases

  • Catching firmware size regressions during code review
  • Checking whether a new feature still fits in a microcontroller's flash
  • Comparing memory usage across commits for an embedded project
  • Running local memory analysis without creating an account

Quick start

  1. 1

    Install the MemBrowse CLI from PyPI

    pip install membrowse
  2. 2

    Analyze your firmware ELF file with its linker script locally

    membrowse report build/firmware.elf "src/linker.ld"
  3. 3

    Optionally add the GitHub Action workflow to track memory in CI

Things to know

  • PR comments, historical tracking and CI budget gating require a free MemBrowse API key and account.
  • Licensed under GPL-3.0, a copyleft license that may restrict some proprietary uses.

In collections

Topics

FAQ

What is membrowse-action?
A GitHub Action and Python CLI that tracks flash and RAM footprint of embedded firmware from ELF files and comments memory diffs on pull requests. MemBrowse measures how much flash and RAM an embedded firmware image uses. It reads the ELF file and linker script, maps symbols back to their source files, and reports usage per memory region, along with the largest symbols. The CLI can run locally with no account, which makes it useful for checking a build on a developer's own machine.
Is membrowse-action free to use? What license does it have?
membrowse-action is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
Is membrowse-action still maintained?
Actively maintained. The last commit to membrowse-action was on Nov 6, 2026.
What can I use membrowse-action for?
Catching firmware size regressions during code review Checking whether a new feature still fits in a microcontroller's flash Comparing memory usage across commits for an embedded project Running local memory analysis without creating an account
How do I install membrowse-action?
Install the MemBrowse CLI from PyPI: pip install membrowse Analyze your firmware ELF file with its linker script locally: membrowse report build/firmware.elf "src/linker.ld" Optionally add the GitHub Action workflow to track memory in CI
Where can I get membrowse-action?
The source code and installation instructions are on GitHub: https://github.com/membrowse/membrowse-action

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects