Skip to main content
MonoFetch is the static-web ingestion edge of the Monomento stack. It handles one HTML, Markdown, or text response; llms.txt and llms-full.txt; and ordinary sitemap.xml files. Converted pages are stored in Monomento as doc_type=web. Published contract: monofetch 0.3.15, OpenCLIs build 2026-05-27-231822. The installed-state row, immutable payload, public CDN pointer, and CDN release metadata agree on this identity. The exact installed payload was also code-signature verified on macOS.

Quick Start

Use --no-index for first inspection. Use MonoSurf instead when content depends on JavaScript, a browser login, or challenge handling.

Published Command Surface

The current public build has 5 operational root commands plus help and version aliases.
toc is not uniformly read-only. monofetch toc https://… calls the normal indexing fetch path. A short/CJK query can also fall back to a stored HTTP URL and recursively invoke that write path.

Parser and Help Boundary

MonoFetch uses a hand-written dispatcher. There is no command-specific help:
search consumes only its first positional token as the query. Quote phrases:
An absent or invalid -n value falls back to 10. Unknown extra flags are not systematically rejected, so use only the documented forms.
Repository HEAD contains a docs [topic] dispatcher for a future build. The immutable 0.3.15 / 2026-05-27-231822 payload rejects docs with a non-zero exit, so it is not part of the current public contract.

Fetch Output Modes

Mode selection is ordered: --raw wins over --no-index, and --pretty has an effect only inside the raw branch.
Despite the wording in the current embedded help, --raw is not a byte-for-byte archive mode. The implementation decodes response bytes using the HTTP charset, then an HTML <meta charset> hint, then UTF-8; it prints the result as text and adds a line ending. It preserves the unconverted response body semantically, but it cannot serve as cryptographic byte evidence. Binary content types such as images, audio, PDF, ZIP, gzip, tar, WASM, and application/octet-stream are rejected. Redirects are followed up to 10 hops; the final normalized URL, without a fragment, becomes the index key.

Crawl Strategies

HTTP fetches use MONOFETCH_CONCURRENCY with a default of 8 and a minimum of
  1. Index writes remain serialized inside one transaction. Individual fetch or index errors are counted while successful pages are committed, so a crawl can partially succeed.
There is no robots.txt enforcement, host-aware rate limiter, or retry/backoff loop. Inspect unfamiliar manifests and choose considerate concurrency.

Search and Deduplication

search asks the shared Monomento engine for an over-fetched candidate window, filters that window to doc_type=web, and takes the requested limit. If no trigram results remain, it runs a web-scoped SQL substring fallback over names and content. This makes short and CJK queries practical, but it is not a guarantee that every lower-ranked web result survives the first candidate window. Index replacement is keyed by the final normalized URL and compares stored content. An unchanged page is skipped; changed content replaces the row. Fragments do not create separate entries.

Static-Web Boundary

MonoFetch does not execute JavaScript. When a page contains scripts but yields very little extracted text, the no-index path warns and recommends MonoSurf. There is no browser cookie jar or interactive authentication surface. Charset resolution is HTTP header, then an HTML meta declaration in the first 1 KB, then UTF-8. Unsupported labels fall back to UTF-8, so malformed or misdeclared pages can still produce mojibake.

Storage

MonoFetch uses Monomento’s shared global database resolution: $MONOMENTO_HOME/monomento.db when explicitly set, then the current ~/.monolex/monomento.db, then the legacy Monolex application-support path. Use monofetch search for the web-scoped view and Monomento for cross-source search and section reads.

Published Platforms

The public 0.3.15 metadata does not contain a Windows ARM64 artifact.

Relationships