Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Sigmeta

FreeNot checked

Parse and classify signal metadata (freq, modulation, bandwidth) into a normalized catalog.

GitHubEmbed

About

Parse and classify signal metadata (freq, modulation, bandwidth) into a normalized catalog.

README

SIGMETA

SIGMETA

Parse and classify signal metadata (freq, modulation, bandwidth) into a normalized catalog.

PyPI CI License: COCL 1.0 Suite

Part of the Cognis Neural Suite.


pip install cognis-sigmeta

sigmeta classify capture.log         # → normalized signal catalog in ms

🔎 Example output

Real, reproducible output from the tool — runs offline:

$ sigmeta-emit --version
sigmeta 0.6.6
$ sigmeta-emit --help
usage: sigmeta [-h] [--version] [--format {table,json,csv}] {classify} ...

Parse and classify signal metadata into a normalized catalog.

positional arguments:
  {classify}
    classify            parse a signal log into a normalized catalog

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --format {table,json,csv}
                        output format (default: table)

Blocks above are real sigmeta output — reproduce them from a clone.

Sample result format (illustrative values — run on your own data for real findings):

{
"findings": [
    {
        "id": "1234567890",
        "title": "Suspicious Network Traffic",
        "description": "Anomalous network traffic detected from IP 192.168.1.100",
        "created_by": "John Doe",
        "created_at": "2023-02-15T14:30:00Z"
    },
    {
        "id": "2345678901",
        "title": "Malware Detection",
        "description": "Malware detected on machine with IP 192.168.1.101",
        "created_by": "Jane Smith",
        "created_at": "2023-02-16T10:45:00Z"
    }
]
}

Contents

Usage — step by step

sigmeta parses textual signal-metadata logs into a normalized catalog (frequency, band, modulation, bandwidth, service hint). Analysis-only — no transmit or hardware control. Exits 1 when no records parse.

  1. Install

    pip install sigmeta
    
  2. Classify a log file into a catalog table:

    sigmeta classify capture.log
    
  3. Pipe from stdin (the input arg defaults to -):

    cat capture.log | sigmeta classify -
    
  4. Read JSON output for downstream processing, CSV for spreadsheets/SIEM, or just the rollup with --summary-only:

    sigmeta --format json classify capture.log | jq '.summary'
    sigmeta --format csv  classify capture.log > catalog.csv
    sigmeta classify capture.log --summary-only
    
  5. Gate automation/CI — use --strict to fail on the first unparseable line, and rely on the non-zero exit when nothing parses:

    sigmeta classify capture.log --strict || echo "no usable signal records"
    

Why sigmeta?

Parse and classify signal metadata (freq, modulation, bandwidth) into a normalized catalog. — without standing up heavyweight infrastructure.

sigmeta is single-purpose, scriptable, and self-hostable: point it at a log, get a normalized catalog in the format your workflow already speaks (table · JSON · CSV), gate CI on the exit code, and let agents drive it over MCP.

Features

  • ✅ Normalize Modulation

  • ✅ Classify Band

  • ✅ Service Hint

  • ✅ Parse Line

  • ✅ Parse Lines

  • ✅ Catalog Summary

  • ✅ Table · JSON · CSV output (--format csv for spreadsheets/SIEM)

  • ✅ Runs on Linux/macOS/Windows · Docker · devcontainer

  • ✅ Ports in Python, JavaScript, Go, and Rust (ports/)

Quick start


pip install cognis-sigmeta

sigmeta --version

sigmeta classify capture.log                 # normalized catalog (table)

sigmeta --format json classify capture.log   # machine-readable

sigmeta --format csv  classify capture.log   # spreadsheet / SIEM import

cat capture.log | sigmeta classify -         # stdin

sigmeta classify capture.log --strict        # CI gate (non-zero exit)

Example


$ sigmeta classify demos/02-airband-scan/airband.log

LABEL      FREQ        BAND  MOD  BW        SERVICE HINT
---------  ----------  ----  ---  --------  -----------------------------
TWR        118.3 MHz   VHF   AM   8.33 kHz  Aeronautical (AM voice / nav)
GND        121.9 MHz   VHF   AM   25 kHz    Aeronautical (AM voice / nav)
EMERGENCY  121.5 MHz   VHF   AM   25 kHz    Aeronautical (AM voice / nav)

records=6  bands={'VHF': 6}  mods={'AM': 6}  warnings=0

Try the demos

demos/ ships realistic, ready-to-run signal logs in the tool's real input format, each with a SCENARIO.md (where the data came from, the exact run command, and what to expect):

Demo Scenario
01-basic Heterogeneous mixed-style log (kv + positional, mixed units)
02-airband-scan VHF aeronautical airband (118-137 MHz AM)
03-ism-survey ISM / U-NII unlicensed-band spectrum survey
04-hf-utility HF utility / shortwave monitoring (3-30 MHz)
05-empty-strict No usable records → exit-code / CI gate
06-marine-vhf Marine VHF channel plan (156-162 MHz)
07-pmr-landmobile UHF land-mobile / FRS-GMRS / DMR inventory
08-satellite-downlink Satellite / weather downlink tracking
09-mixed-units-csv Every unit/style → --format csv export
python -m sigmeta classify demos/03-ism-survey/ism.log
python -m sigmeta --format csv classify demos/09-mixed-units-csv/capture.log

Architecture

flowchart LR
  IN[sources] --> P[sigmeta<br/>curate + validate]
  P --> OUT[query / analysis]

Use it from any AI stack

sigmeta is interoperable with every popular way of using AI:

  • MCP serversigmeta mcp (Claude Desktop, Cursor, Cognis.Studio, uncensored-fleet)

  • OpenAI-compatible / JSON — pipe sigmeta --format json classify capture.log into any agent or LLM

  • LangChain · CrewAI · AutoGen · LlamaIndex — wrap the CLI/JSON as a tool in one line

  • CI / scripts — exit codes + CSV/JSON for non-AI pipelines

How it compares

| | Cognis sigmeta | typical tools |

|---|:---:|:---:|

| Self-hostable, no account | ✅ | varies |

| Single command, zero config | ✅ | ⚠️ |

| JSON + CSV for CI | ✅ | varies |

| MCP-native (AI agents) | ✅ | ❌ |

| Polyglot ports (JS/Go/Rust) | ✅ | ❌ |

| Open license | ✅ COCL | varies |

Integrations

Pipes into your stack: CSV for spreadsheets/SIEM, JSON for anything, an MCP server (sigmeta mcp) for AI agents, and a webhook forwarder for SIEM/Slack/Jira. See docs/INTEGRATIONS.md.

Install — every way, every platform


pip install "git+https://github.com/cognis-digital/sigmeta.git"    # pip (works today)

pipx install "git+https://github.com/cognis-digital/sigmeta.git"   # isolated CLI

uv tool install "git+https://github.com/cognis-digital/sigmeta.git" # uv

pip install cognis-sigmeta                                          # PyPI (when published)

docker run --rm ghcr.io/cognis-digital/sigmeta:latest --help        # Docker

brew install cognis-digital/tap/sigmeta                             # Homebrew tap

curl -fsSL https://raw.githubusercontent.com/cognis-digital/sigmeta/main/install.sh | sh

| Linux | macOS | Windows | Docker | Cloud |

|---|---|---|---|---|

| scripts/setup-linux.sh | scripts/setup-macos.sh | scripts/setup-windows.ps1 | docker run ghcr.io/cognis-digital/sigmeta | DEPLOY.md (AWS/Azure/GCP/k8s) |

Related Cognis tools

Explore the suite → 🗂️ all 170+ tools · ⭐ awesome-cognis · 🔗 cognis-sources · 🤖 uncensored-fleet · 🧠 engram

Contributing

PRs, new rules, and demo scenarios are welcome under the collaboration-pull model — see CONTRIBUTING.md and SECURITY.md.

⭐ If sigmeta saved you time, star it — it genuinely helps others find it.

Interoperability

{} composes with the 300+ tool Cognis suite — JSON in/out and a shared OpenAI-compatible /v1 backbone. See INTEROP.md for the suite map, composition patterns, and reference stacks.

License

Source-available under the Cognis Open Collaboration License (COCL) v1.0 — free for personal, internal-evaluation, research, and educational use; commercial / production use requires a license ([email protected]). See LICENSE.


Cognis Digital · one of 170+ tools in the Cognis Neural Suite · Making Tomorrow Better Today

from github.com/cognis-digital/sigmeta

Install Sigmeta in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install sigmeta

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add sigmeta -- uvx --from git+https://github.com/cognis-digital/sigmeta cognis-sigmeta

Step-by-step: how to install Sigmeta

FAQ

Is Sigmeta MCP free?

Yes, Sigmeta MCP is free — one-click install via Unyly at no cost.

Does Sigmeta need an API key?

No, Sigmeta runs without API keys or environment variables.

Is Sigmeta hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Sigmeta in Claude Desktop, Claude Code or Cursor?

Open Sigmeta on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Sigmeta with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs