npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ombrix

v0.1.4

Published

Zero-telemetry steganography & visual cryptanalysis suite. Includes CLI and MCP 2.0 Code Mode server.

Readme

OMBRIX

Zero-Knowledge Steganography & Visual Cryptanalysis Suite

Offline-first steganographic suite engineered for client-side execution — no network, no telemetry, no traces.

Live App npm ombrix-cli npm mcp-server M8ven Trust CI License: MIT Zero Telemetry

OMBRIX Studio Interface


Overview

OMBRIX is an offline-first steganographic suite that conceals data inside carrier PNG images without leaving statistical or visual traces. All operations run entirely in the browser or locally — nothing ever leaves your device.

Why Not Plain LSB?

Classic LSB tools overwrite sequential bits, introducing a Pair-of-Values (PoV) anomaly: even pixel values $2k$ shift only to $2k+1$ and vice-versa. This flattens the pixel histogram ($h(2k) \approx h(2k+1)$), making hidden data instantly detectable by Chi-Square ($\chi^2$), RS Steganalysis, and Sample Pair Analysis (SPA).

OMBRIX counters this across multiple domains:

  • ±1 LSB Matching — randomly increments or decrements pixels by 1 ($p' = p \pm 1$ where $p' \equiv m \pmod{2}$), preserving natural histogram contours
  • Pixel Value Differencing (PVD) — allocates more bits to complex edge regions, fewer to smooth gradients
  • 2D Haar DWT — embeds into high-frequency wavelet subbands ($LH$, $HL$, $HH$) where human vision and steganalysis tools are least sensitive

Pipeline Architecture

 CONCEALMENT (EMBED)                              EXTRACTION (EXTRACT)
 ┌──────────────────────────┐                    ┌──────────────────────────┐
 │     Plaintext / File     │                    │   Stego Carrier PNG      │
 └────────────┬─────────────┘                    └────────────┬─────────────┘
              │                                               │
              ▼                                               ▼
 ┌──────────────────────────┐                    ┌──────────────────────────┐
 │  OMB1 Envelope + Deflate │                    │  Lossless PNG Decode     │
 └────────────┬─────────────┘                    └────────────┬─────────────┘
              │                                               │
              ▼                                               ▼
 ┌──────────────────────────┐                    ┌──────────────────────────┐
 │  Argon2id KDF + ChaCha20 │                    │  Multi-Method Auto-Probe │
 │  + Poly1305 MAC          │                    │  (all 6 algorithms)      │
 └────────────┬─────────────┘                    └────────────┬─────────────┘
              │                                               │
              ▼                                               ▼
 ┌──────────────────────────┐                    ┌──────────────────────────┐
 │  Steganographic Engine   │                    │  Authenticated Decrypt   │
 │  (6 algorithms)          │                    │  + Heap Zeroize          │
 └────────────┬─────────────┘                    └────────────┬─────────────┘
              │                                               │
              ▼                                               ▼
 ┌──────────────────────────┐                    ┌──────────────────────────┐
 │  Lossless PNG Export     │                    │  Plaintext Recovered     │
 │  (EXIF & Metadata Purged)│                    │                          │
 └──────────────────────────┘                    └──────────────────────────┘

6 Steganography Algorithms

| Algorithm | Method | Best For | Capacity | | :--- | :--- | :--- | :---: | | hyper-matrix | 2D Haar DWT + PVD + ±1 Matching | Documents, photos, large payloads | ~15–25% | | robust-resilient | YCbCr luminance blocks + 5× FEC | WhatsApp/Telegram as Photo (survives JPEG) | ~1.5–3 KB | | matching | ±1 LSB Modulo | General photos, low distortion | ~12–20% | | pvd | Pixel Value Differencing | High-contrast & urban photos | ~20–35% | | dwt | Haar Wavelet subband | Camera captures, textures | ~10–18% | | lsb | Sequential LSB | Synthetic test images | ~100% |

For WhatsApp/Telegram photos: Use robust-resilient (survives recompression). For everything else: use hyper-matrix via Send as Document.


Cryptographic Architecture

  • Key Derivation: Argon2id (memory-hard, side-channel resistant)
  • Encryption: ChaCha20-Poly1305 (authenticated encryption)
  • Integrity: Poly1305 MAC per payload block
  • Passkeys: Diceware 4-word phrases or 32-char crypto random
  • Memory: Keys and plaintext are explicitly zeroized after use (sodium.memzero)
  • Privacy: EXIF, GPS, camera serial, and device fingerprints stripped on export

Security Guarantees

  • Zero network calls — all processing runs in browser WebAssembly or local Node.js
  • Strict CSP — connect-src 'none' blocks all outbound connections
  • Air-gapped by design — no analytics, no telemetry, no crash reporting
  • PNG-only output — JPEG is never written (lossy formats destroy hidden data)

Getting Started

Prerequisites

  • Node.js v20.0.0 or higher
  • pnpm v12.5.1 (corepack enable && corepack install)

Install & Run

git clone https://github.com/SanthaKumar-K-2004/OMBRIX.git
cd OMBRIX
pnpm install
pnpm run dev

Build

pnpm run build

Command Line Interface (CLI)

# Embed a secret message
npx ombrix-cli embed cover.png -p "Secret message" -k "my-passkey" -m hyper-matrix -o stego.png

# Extract hidden message
npx ombrix-cli extract stego.png -k "my-passkey"

# Check capacity across 6 algorithms
npx ombrix-cli inspect cover.png

# Run forensic steganalysis (Chi-Square, RS, SPA)
npx ombrix-cli scan candidate.png

# Benchmark all algorithms on an image
npx ombrix-cli benchmark cover.png

# Generate a secure diceware passkey
npx ombrix-cli keygen diceware

# Run sandboxed Code Mode script
npx ombrix-cli eval "const cap = ombrix.inspect('cover.png'); return cap;"

# Register MCP server with Claude Desktop / Cursor / Antigravity
npx ombrix-cli mcp install

MCP Server (AI Agents)

OMBRIX includes a zero-telemetry MCP 2.0 server for AI assistants (Claude Desktop, Cursor, Antigravity, Windsurf).

Quick Start

npx ombrix-mcp-server

Manual Config

Add to ~/.config/Claude/claude_desktop_config.json (or your client's MCP config):

{
  "mcpServers": {
    "ombrix": {
      "command": "npx",
      "args": ["-y", "ombrix-mcp-server"]
    }
  }
}

11 Available Tools

| Tool | Description | |------|-------------| | stego_embed | Hide data in a PNG (6 algorithms, optional passkey) | | stego_extract | Extract hidden data with auto-detect or explicit method | | stego_inspect | Capacity analysis per algorithm | | stego_scan | Chi-square + RS steganalysis | | stego_benchmark | Performance benchmark all 6 algorithms | | stego_keygen | Generate diceware or crypto32 passkeys | | stego_plan | Recommend algorithm based on channel (WhatsApp, email, print) | | stego_hide | Simplified embed alias | | stego_reveal | Simplified extract alias | | stego_code_mode | Execute sandboxed Node.js steganography scripts | | stego_api_docs | Return Code Mode API reference |

Code Mode Example

const carrier = ombrix.createCarrier(256, 256);
const key = await ombrix.keygen('diceware');
const result = await ombrix.embed(carrier, 'Secret message', {
  method: 'hyper-matrix',
  passkey: key.passkey
});
const scan = ombrix.scan(result.carrier);
return { verified: result.verified, anomalyScore: scan.overallAnomalyScore };

Published npm Packages

| Package | Install | Description | |---------|---------|-------------| | ombrix-mcp-server | npx ombrix-mcp-server | MCP 2.0 server (stdio) | | ombrix-cli | npx ombrix-cli | Command line interface |