Skip to content

Release history

MikkoParkkola/nab releases

Ultra-fast web fetcher and MCP server with HTTP/3, JS rendering, anti-fingerprinting, browser cookie auth, and 1Password integration. Fetches any URL as clean Markdown for AI context.

All releases

22 shown

Upgrade now
v0.11.0 Mixed
Dependencies Breaking upgrade

Harden fetch + dep updates + site‑rules routing

v0.10.3 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.10.2...v0.10.3

v0.10.1 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.10.0...v0.10.1

v0.9.0 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.8.5...v0.9.0

v0.8.5 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.8.4...v0.8.5

v0.8.4 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.8.3...v0.8.4

v0.8.0 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.7.2...v0.8.0

v0.7.2 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.7.1...v0.7.2

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.8 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.6.7...v0.6.8

v0.6.7 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.6.6...v0.6.7

v0.6.6 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.6.5...v0.6.6

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
v0.6.4 New feature
Notable features
  • MCP tools `submit`, `login`, `validate` return `structured_content` alongside text
  • MCP `benchmark` tool reports error count per URL instead of silently dropping failures
Full changelog

Fixed

  • Dockerfile: Rust 1.93 (was 1.87), add build-essential/cmake/clang for crypto deps
  • Dockerfile: --no-default-features to skip BoringSSL/QUIC for faster Docker builds

Changed

  • MCP tools submit, login, validate now return structured_content alongside text
  • MCP benchmark tool reports error count per URL instead of silently dropping failures
  • CHANGELOG entries for 0.6.1–0.6.4
v0.6.3 Breaking risk
Notable features
  • Hidden section stripping (removes whitespace sections), noise section stripping (security advisories, cookie banners, newsletter signups), smarter fallback to direct html2md when readability drops tables, and markdown cleanup (strips base64 data URIs and empty link artefacts)
  • Added `glama.json` for server ownership verification
  • Added Dockerfile for server inspection and tool detection
Full changelog

What's New

Improved HTML-to-Markdown Pipeline

  • Hidden section stripping: <details>, <noscript>, <dialog> removed before readability
  • Noise section stripping: Security advisories, cookie banners, newsletter signups stripped
  • Smarter fallback: Falls back to direct html2md when readability drops tables
  • Markdown cleanup: Strips base64 data URIs and empty link artefacts

Glama MCP Directory

  • Added glama.json for server ownership verification
  • Added Dockerfile for server inspection and tool detection
  • Added Glama score badge to README

Full Changelog

https://github.com/MikkoParkkola/nab/compare/v0.6.2...v0.6.3

v0.6.2 Maintenance

Minor fixes and improvements.

Full changelog

Transitive dependency updates via cargo update. All direct + transitive
dependencies at latest versions. Zero outdated on deps.rs.

Full changelog: https://github.com/MikkoParkkola/nab/compare/v0.6.1...v0.6.2

v0.6.1 Breaking risk
⚠ Upgrade required
  • All dependencies updated; ensure code aligns with new versions (especially `rand` 0.10 and `rust-mcp-sdk` 0.9).
  • Contact emails in CODE_OF_CONDUCT.md and SECURITY.md replaced with actual address.
Breaking changes
  • `rand` API migration from 0.9 to 0.10 (RngExt changes)
  • `rust-mcp-sdk` schema and message_observer updates from 0.8.3 to 0.9
Full changelog

Fixes

  • All dependencies updated — 0 outdated (was 7), including breaking changes:
    • rand 0.9→0.10 (RngExt API migration)
    • rust-mcp-sdk 0.8.3→0.9 (BTreeMap schemas, message_observer)
    • coset 0.3→0.4 (WebAuthn types)
    • roxmltree 0.20→0.21, tungstenite 0.24→0.28, rquickjs 0.9→0.11, criterion 0.6→0.8
  • CI green — fixed rustfmt compliance for Rust 2024 edition
  • Contact emails — replaced non-existent *@parkkola.dev with actual address in CODE_OF_CONDUCT.md and SECURITY.md
  • SECURITY.md — added v0.6.x to supported versions

Install

cargo install nab
# or
brew install nab
# or
cargo binstall nab

Full changelog: https://github.com/MikkoParkkola/nab/compare/v0.6.0...v0.6.1

v0.6.0 Breaking risk
Breaking changes
  • Public functions now return `Result<(), NabError>` instead of generic error types.
  • 13 internal re-exports removed from `lib.rs`.
  • SSRF validation returns `NabError::SsrfBlocked` instead of a generic error.
Notable features
  • `NabError` typed error hierarchy with 9 semantic variants (e.g., `InvalidUrl`, `SsrfBlocked`).
  • Config structs replace positional parameters across all CLI commands.
  • Structural refactoring: monolithic files split into focused submodules, none exceeding 800 LOC.
Full changelog

Highlights

Typed error hierarchyNabError with 9 semantic variants replaces bare anyhow::Error at public API boundaries. Consumers can now match on InvalidUrl, SsrfBlocked, ProviderError, AuthError, etc.

Structural refactoring — 5 monolithic files (up to 2172 LOC) decomposed into focused submodules. No file exceeds 800 LOC. Public API surface reduced (13 internal re-exports removed).

Safety hardening — ~10 unwrap()/expect() calls replaced with proper error propagation. UTF-8 truncation panics eliminated.

What's New

  • NabError typed error hierarchy (9 variants)
  • Config structs replace positional parameters across all CLI commands
  • 6 shared helpers consolidated in cmd/mod.rs

Breaking Changes (Library API)

  • Public functions now return Result<T, NabError> instead of Result<T, anyhow::Error>
  • 13 internal re-exports removed from lib.rs
  • SSRF validation returns NabError::SsrfBlocked instead of generic error

Bug Fixes

  • Silent TOML field mismatch in concurrent_fetch_custom_item_limit
  • UTF-8 truncation panics across cmd/ layer
  • SPA status messages moved from stdout to stderr

Install

cargo install nab
# or
brew install nab
# or
cargo binstall nab

Full changelog: https://github.com/MikkoParkkola/nab/blob/main/CHANGELOG.md

v0.4.0 New feature
Notable features
  • Arena allocator implementation
  • PDF support added
  • Content router introduced
Full changelog

What's Changed

  • feat: arena allocator, PDF support, content router, submit & login by @MikkoParkkola in https://github.com/MikkoParkkola/nab/pull/18

New Contributors

  • @MikkoParkkola made their first contribution in https://github.com/MikkoParkkola/nab/pull/18

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.3.0...v0.4.0

v0.3.0 Maintenance

Routine maintenance release for MikkoParkkola/nab.

Changelog

Full Changelog: https://github.com/MikkoParkkola/nab/compare/v0.2.0...v0.3.0

v0.1.0 New feature
Notable features
  • HTTP/3 support
  • JavaScript execution
  • Cookie authentication
Full changelog

Initial release - Ultra-minimal browser engine

Features

  • HTTP/3 support
  • JavaScript execution
  • Cookie authentication
  • Anti-fingerprinting

Binaries

  • microfetch-aarch64-apple-darwin - CLI tool
  • microfetch-mcp-aarch64-apple-darwin - MCP server
  • libhtml2md-aarch64-apple-darwin.dylib - HTML to Markdown library

Checksums

See checksums-sha256.txt

Beta — feedback welcome: [email protected]