Skip to content

MikkoParkkola/nab

MCP Browser & Automation

A single Rust binary that fetches URLs as clean markdown, performs on‑device multilingual ASR and speaker diarization, and watches web pages for changes – all locally with no API keys.

Rust Latest v0.12.0 · 1mo ago Security brief →

Features

  • Fetch any URL as concise markdown using real browser cookies and anti‑bot evasion
  • On‑device multilingual audio/video transcription and speaker diarization (FluidAudio, Parakeet TDT, Apple Neural Engine)
  • Local web change monitoring with MCP‑compliant notifications

Recent releases

View all 23 releases →
Upgrade now
v0.12.0 Breaking risk
Dependencies

CI, LinkedIn, Fingerprint, Task Engine, Python, Deps

Upgrade now
v0.11.0 Mixed
Dependencies Breaking upgrade

Harden fetch + dep updates + site‑rules routing

v0.7.1 Bug fix

Fixed deserialization of `speakerId` emitted as a JSON string by FluidAudio v0.13+.

Full changelog

Patch release for the speakerId JSON deserialization fix found during the post-v0.7.0 live smoke test of the nab + hebb composition.

The bug

FluidAudio v0.13+ emits speakerId as a JSON string ("1") instead of an integer (1). This broke nab analyze --diarize on fresh FluidAudio installations.

The fix

Custom serde Visitor that accepts i64, u64, or str/String. Both forms deserialize to the same i32 speaker_id. Regression tests added.

Affected

All v0.7.0 users running FluidAudio v0.13+ (the current version installed by nab models fetch fluidaudio). Upgrade to v0.7.1.

Verification

nab analyze /tmp/test_30s.wav --audio-only --diarize --format json
# → 30s audio, 0.24s wall, 123x realtime, 2 speakers identified

Full smoke test of the nab + hebb composition passed after this fix.

v0.7.0 New feature
⚠ Upgrade required
  • Cross‑platform backends (sherpa‑onnx + whisper‑rs) are available behind feature flags for Linux/Windows/Intel macOS
  • nab models fetch fluidaudio now installs the FluidAudio Swift CLI persistently, surviving reboots
Notable features
  • nab analyze v2: FluidAudio (Parakeet TDT v3) on Apple Neural Engine delivering 131× realtime at 97.18% confidence across 25 EU languages plus opt‑in Qwen3‑ASR for zh/ja/ko/vi, with optional speaker diarization and word‑level timestamps
  • URL watch: any URL can be subscribed as an MCP resource; background poller uses conditional GETs, semantic diff, adaptive backoff and emits notifications/resources/updated on change
  • Active reading via MCP sampling: during transcription nab invokes the host LLM to identify references, recursively fetches them with nab fetch, and inlines citations as footnotes
Full changelog

Highlights

nab analyze v2 — multilingual SOTA ASR via FluidAudio (Parakeet TDT v3 on Apple Neural Engine). Live-tested at 131× realtime on a 2h 09m English interview with 97.18% confidence. Optional speaker diarization (PyAnnote community-1), word-level timestamps, and multilingual support across 25 EU languages + opt-in Qwen3-ASR for zh/ja/ko/vi.

URL watch — nab is now RSS for the entire web. Any URL can be a subscribable MCP resource. Background poller with conditional GETs, semantic diff, adaptive backoff. Clients receive `notifications/resources/updated` on change.

Active reading via MCP sampling — during transcription, nab asks the host LLM to identify references and recursively looks them up via `nab fetch`. Inlines citations as footnotes. Novel pattern — no other ASR pipeline does this.

Full MCP 2025-11-25 spec closure — Streamable HTTP transport, structured logging, argument completion, sampling helper, roots helper, `list_changed` notifications, elicitation form + URL mode. Top 1% of MCP servers in the wild.

Apple Vision OCR — 15 languages, ANE-accelerated, zero model download. Integrated into nab fetch (auto-OCRs images with thin/missing alt text, inlines `[Image: ]` annotations in the markdown output).

Cross-platform backends — sherpa-onnx + whisper-rs behind feature flags for Linux/Windows/Intel macOS.

nab + hebb composition — `nab analyze --diarize --include-embeddings` auto-matches speakers against hebb's voiceprint database. `nab fetch` auto-saves URLs to hebb's `kv:urls` namespace. Full sovereign multimodal stack.

nab models fetch fluidaudio — persistent install of the FluidAudio Swift CLI. Survives reboots (no more `/private/tmp` fragility).

Stats

  • 13 commits in this release
  • ~20,000 lines of Rust added
  • 1187 tests passing, 0 errors, 0 deprecation warnings
  • 0 commercial API dependencies in the default composition path

Full changelog

See CHANGELOG.md for the complete list.

Installation

```bash
cargo install nab --version 0.7.0
nab models fetch fluidaudio # one-time: clone + build FluidAudio Swift CLI
nab analyze my-video.mp4 --diarize
```

See docs/getting-started.md for full installation options.

Companion repo

Works standalone, but unlocks more when paired with hebb v0.4.0 (voiceprint DB + MCP-as-database) for named speakers and personal web memory.

v0.6.5 New feature
Notable features
  • All 8 MCP tools advertise outputSchema and return structured_content
Full changelog

Changed

  • All 8 MCP tools now advertise outputSchema + return structured_content
  • Extract truncation constants, consolidate schema helpers
  • Benchmark tool reports error count per URL
  • README: remove unlisted Windows binary, update test count to 907

Fixed

  • Dockerfile: Rust 1.93 + proper build deps for Glama
  • CHANGELOG: correct rust-mcp-sdk version reference

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
7
Forks
0
Languages
Rust Python YARA

Install & Platforms

Install via
brew
Platforms
macos arm64

Beta — feedback welcome: [email protected]