Repolode
Y2Z

Y2Z/monolith

A Rust GUI and CLI tool that bundles a complete web page, including its CSS, images and JavaScript, into one self-contained HTML file.

Open-source alternative to:Pocket

Stars
15,523
Forks
480
Open issues
51
Last commit
6 days ago

What is it?

Monolith saves a web page as a single HTML file. Unlike the browser's built-in "Save page as", it embeds stylesheets, images, scripts and other assets directly into the document as data URLs, so the saved copy renders as it did online and works without a network connection.

It ships as both a command-line tool and a GUI, and can also be used as a Rust library. It can read HTML from standard input, write to standard output, and accept custom base URLs and cookies. Options let you exclude specific asset types such as images, videos, audio, fonts or JavaScript, restrict asset downloads to chosen domains, and set a custom User-Agent or timeout.

Monolith does not include a JavaScript engine, so pages that load content after the initial render need a headless browser to dump the DOM first. Packages are available for Windows, macOS, Linux, BSD and through Docker.

Key features

  • 01Embeds CSS, images, and JavaScript into one HTML5 file.
  • 02Works as a command-line tool, a GUI, and a Rust library.
  • 03Reads from stdin and writes to stdout for use in pipelines.
  • 04Lets you exclude audio, video, fonts, images, or scripts.
  • 05Restricts or blocks asset downloads by domain.
  • 06Supports cookies, basic authentication, and custom encodings.

Use cases

  • Archiving articles or pages before they disappear.
  • Sharing a single file that displays a page offline.
  • Replacing browser tab hoarding with a local library of saved pages.
  • Automating page capture in shell scripts or pipelines.

Quick start

  1. 1

    Install via Cargo (cross-platform)

    cargo install monolith
  2. 2

    Save a web page as a single HTML file

    monolith https://lyrics.github.io/db/P/Portishead/Dummy/Roads/ -o %title%.%timestamp%.html

Things to know

  • The README mentions no JavaScript engine, so pages that load content dynamically may need an extra tool such as headless Chromium.

Topics

FAQ

What is monolith?
A Rust GUI and CLI tool that bundles a complete web page, including its CSS, images and JavaScript, into one self-contained HTML file. Monolith saves a web page as a single HTML file. Unlike the browser's built-in "Save page as", it embeds stylesheets, images, scripts and other assets directly into the document as data URLs, so the saved copy renders as it did online and works without a network connection.
Is monolith free to use? What license does it have?
monolith is open source under the CC0-1.0 license. Check the license terms before using it in commercial products.
Is monolith still maintained?
Actively maintained. The last commit to monolith was on Oct 16, 2026.
What can I use monolith for?
Archiving articles or pages before they disappear. Sharing a single file that displays a page offline. Replacing browser tab hoarding with a local library of saved pages. Automating page capture in shell scripts or pipelines.
How do I install monolith?
Install via Cargo (cross-platform): cargo install monolith Save a web page as a single HTML file: monolith https://lyrics.github.io/db/P/Portishead/Dummy/Roads/ -o %title%.%timestamp%.html
Where can I get monolith?
The source code and installation instructions are on GitHub: https://github.com/Y2Z/monolith

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects