PAGES
← all tools
◆ Wireless & RF

multimon-ng

1.6.0 open-source

Multimon-ng decodes and displays digital radio signals including POCSAG, DTMF, and other modes from audio input or SDR receivers.

Summary

multimon-ng is an open-source command-line decoder for digital radio transmission modes, taking audio from a live feed or raw samples piped in from tools like rtl_fm or sox and decoding formats such as POCSAG, FLEX, EAS, AFSK, DTMF, GSC, and Morse. It's built for people working directly with SDR hardware and captured signal data, such as radio hobbyists and researchers monitoring paging and public-safety traffic, rather than for general network security teams. It runs on Linux, macOS, Windows, and FreeBSD, and can output structured JSON or timestamped logs for feeding into a separate analysis pipeline. As the successor to the original multimon, it fills a fairly specific niche and isn't positioned by its README against any named alternative. Development is active: 56 contributors, 44 commits and 15 releases in the past year, with the last release only 25 days old.

Multimon-ng decodes and displays digital radio signals including POCSAG, DTMF, and other modes from audio input or SDR receivers.

How multimon-ng helps

What is actually being transmitted on this frequency I'm capturing?

listens to the demodulated audio stream and decodes it against the supported modes (POCSAG, FLEX, EAS, AFSK, DTMF, Morse, and others), printing the recovered messages as they arrive

Which pager messages went out over this capture, and can I feed them into something else?

reconstructs paging traffic from POCSAG, FLEX, and GSC streams, correcting errors as it decodes, and can emit that as structured JSON instead of plain text for a downstream pipeline to parse

Can I tell exactly when each decoded message came in, in a way that lines up across time zones?

tags each decoded line with a timestamp, with an option to use UTC ISO-8601 form so logs from different sites or runs stay comparable

Is my SDR setup and antenna actually working before I go monitor something live?

generates POCSAG and FLEX test tones that can be fed back into the decoder or another receiver to confirm the chain decodes correctly before relying on it

Was that recorded capture from a paging channel worth digging through, or is it silence and noise?

replays a recorded audio file (WAV, FLAC, or raw) through the same decoders used for live input and prints whatever valid messages it finds, so a capture can be triaged after the fact

all 9 features, with the evidence for each →

Languages

Not documented

Features

9 capabilities across 5 areas · 1 backed by code, an API document or a real run

Built from multimon-ng's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What multimon-ng offers you

  • JSON data export3
  • Command-line interface2
Paging Signal Decoding 3 capabilities The core purpose of multimon-ng is to decode digital paging protocols transmitted over radio. It handles POCSAG, FLEX, and GSC formats, applying error correction and producing structured output from raw signal input.
FLEX signal decoding shipped Decodes FLEX paging transmissions, reassembling multi-frame messages and outputting results as JSON. 8 releases · 3 other sources · first seen Sep 2020

Also counts toward: JSON data export

release 8 total

  • Improves FLEX_NEXT decoding robustness including timestamp insertion and validation. 1.6.0 · Jul 2026 · source · release history
  • Adds FLEX_NEXT decoder improvements based on ARIB STD-43A: more robust decoding, message reassembly, validation, timestamps, and JSON output. 1.6.0 · Jul 2026 · source · release history
  • Adds --json flag to enable JSON-formatted output for decoded messages. 1.6.0 · Jul 2026 · source · release history
  • FLEX decoder now estimates total offset based on estimated elapsed full cycles. 1.4.0 · Feb 2025 · source · release history
  • Adds --flex-no-ts flag to suppress timestamps in FLEX decoder output. 1.4.0 · Feb 2025 · source · release history
  • Adds partial JSON output mode for structured, machine-readable decoding results. 1.4.0 · Feb 2025 · source · release history

example

  • Replay a recorded FLAC capture through FLEX_NEXT with automatic input format detection to extract reassembled multi-frame messages with timestamps. flac -d --stdout ~/recordings/rtlfm.1725033204.flac | multimon-ng -r -v 0 -a FLEX_NEXT -t flac - 1.6.0 · Jul 2026 · source
  • Suppress per-message timestamps in FLEX output when your log aggregator adds its own timestamps, reducing noise. rtl_fm -f 929.0125M -s 22050 | multimon-ng -t raw -a FLEX --flex-no-ts - 1.4.0 · Feb 2025 · source
  • Record and decode FLEX with RTL-SDR and flac rtl_fm -s 22050 -f 123.456M -g -9.9 | tee >(flac -8 --endian=little --channels=1 --bps=16 --sample-rate=22050 --sign=signed - -o ~/recordings/rtlfm.$EPOCHSECONDS.flac -f) | multimon-ng -v 0 -a FLEX…
POCSAG signal decoding shipped Decodes POCSAG paging transmissions, recovering message content even from signals with polarity issues or encoding errors. 4 releases · 2 other sources · first seen Jul 2019

Also counts toward: Command-line interface, JSON data export

release

  • Adds --json flag to enable JSON-formatted output for decoded messages. 1.6.0 · Jul 2026 · source · release history
  • Improves POCSAG polarity detection, BCH error correction, charset support, and malformed-message handling. 1.6.0 · Jul 2026 · source · release history
  • The default POCSAG message type detection behavior has changed from heuristic to standard-based; users relying on the old behavior must now explicitly use -f auto. 1.1.8 · Jul 2019 · source · release history
  • Adds POCSAG support for the Swedish charset and changes default message type detection to follow the POCSAG standard (use -f auto for old heuristic behavior) 1.1.8 · Jul 2019 · source · release history

example

  • Generate a POCSAG test signal and a FLEX test signal using gen-ng to validate your receive chain or feed a decoder under test. gen-ng -P "Test page message" -A 1234567 -B 1200 -t raw - | multimon-ng -t raw -a POCSAG1200 - 1.6.0 · Jul 2026 · source
  • Decode POCSAG messages using the new Swedish charset and explicit standard-compliant type detection. multimon-ng -a POCSAG -f auto input.raw 1.1.8 · Jul 2019 · source
GSC paging decoder shipped Decodes GSC paging transmissions with automatic polarity detection and JSON-formatted output. 1 release · 1 other source · first seen Jul 2026

Also counts toward: JSON data export

release

  • Adds GSC (Golay Sequential Code) paging decoder with error correction, auto-polarity, batch message support, and JSON output. 1.6.0 · Jul 2026 · source · release history

example

  • Decode a live RTL-SDR feed for GSC paging traffic alongside FLEX_NEXT, capturing both with JSON-structured output for downstream parsing. rtl_fm -f 929612500 -s 22050 | multimon-ng -t raw -a GSC -a FLEX_NEXT /dev/stdin 1.6.0 · Jul 2026 · source
Signal Input and Detection 2 capabilities multimon-ng handles the ingestion side of the signal pipeline, accepting audio from the local system and identifying the signal format without user intervention. This reduces setup friction when the protocol is unknown or mixed.
Native macOS audio capture shipped Captures audio directly from macOS system hardware without needing additional audio routing software. 1 release · 4 other sources · first seen Jul 2026

release

docs

  • Decodes digital transmission modes (POCSAG, FLEX, EAS, AFSK, DTMF, MORSE, etc.) from raw audio input or piped SDR streams.

example

  • Decode RTL-SDR stream with multimon-ng rtl_fm -f 403600000 -s 22050 | multimon-ng -t raw -a FMSFSK -a AFSK1200 /dev/stdin
  • Convert WAV to multimon-ng raw format sox -R -t wav pocsag_short.wav -esigned-integer -b16 -r 22050 -t raw pocsag_short.raw
  • Pipe sox output into multimon-ng sox -R -t wav pocsag_short.wav -esigned-integer -b16 -r 22050 -t raw - | ./multimon-ng -
Automatic input format detection shipped Automatically identifies the incoming signal format so the user does not need to specify the protocol manually. 2 releases · 1 other source · first seen Jul 2026

release

example

  • Replay a recorded FLAC capture through FLEX_NEXT with automatic input format detection to extract reassembled multi-frame messages with timestamps. flac -d --stdout ~/recordings/rtlfm.1725033204.flac | multimon-ng -r -v 0 -a FLEX_NEXT -t flac - 1.6.0 · Jul 2026 · source
Test Signal Generation 2 capabilities multimon-ng can produce synthetic paging and selective-call signals for validating receive chains and decoder behaviour. This lets operators confirm a setup is working without requiring a live transmission.
Test signal generation shipped Generates POCSAG and FLEX test signals to verify that a receive or decoding pipeline is functioning correctly. 2 releases · 1 other source · first seen Jul 2026

release

  • Adds built-in FLEX and POCSAG message generation capability. 1.6.0 · Jul 2026 · source · release history
  • Adds FLEX and POCSAG signal generation via the new gen-ng binary. 1.6.0 · Jul 2026 · source · release history

example

  • Generate a POCSAG test signal and a FLEX test signal using gen-ng to validate your receive chain or feed a decoder under test. gen-ng -P "Test page message" -A 1234567 -B 1200 -t raw - | multimon-ng -t raw -a POCSAG1200 - 1.6.0 · Jul 2026 · source
ZVEI selective call tone generation verified Generates ZVEI selective call tones from a digit string for testing tone-based alerting systems. 1 release · 1 other source · first seen Jul 2026

Also counts toward: Command-line interface

release

  • Adds built-in GSC message generation capability with auto-polarity and batch support. 1.6.0 · Jul 2026 · source · release history

command line

  • -z — Generate ZVEI selective call tones for the given digit string. 1.6.0 · Jul 2026 · command-line history
Signal Visualisation 1 capability multimon-ng includes an optional display mode that renders incoming signals as a digital phosphor oscilloscope view. This gives operators a real-time visual representation of signal quality and shape during capture.
Digital phosphor oscilloscope display shipped Displays incoming signals as a real-time oscilloscope trace to help operators assess signal quality visually. 1 release · first seen Jul 2026

release

  • Adds optional SDL3 digital phosphor oscilloscope (SDL_SCOPE mode). 1.6.0 · Jul 2026 · source · release history
Other 1 capability
DTMF decoding shipped Decodes DTMF signals from audio or input streams and applies false positive filtering to improve extraction accuracy. 1 release · first seen Jul 2019

release

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for multimon-ng, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail multimon-ng puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

4 entries

  1. July 20261
  2. February 20251
  3. September 20201
  4. July 20191
    Show

    4 entries

    Project health

    Issue, contributor and maintainer activity in EliasOenal/multimon-ng, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 7 +5 vs prior 12 months
    2. Maintainers 2 +1 joined · −1 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 100% of issues opened, last 12 months
    5. Median time to close 67 days first maintainer reply 29 days
    6. Open backlog 65 of 160 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 65
    3. Contributors / month 1
    4. Commits / month 2
    5. Stars 1,137
    Issue themes, last 12 months
    • other 100%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →