Y2Z /monolith

⬛️ GUI/CLI tool and library for saving complete web pages as a single HTML file

★ 15,598⑂ 483
RustCreated 2017-02-20crates.io/crates/monolith
15,598
stars
+21+25+80
483
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

_____    _____________   __________     ___________________    ___
|     \  /             \ |          |   |                   |  |   |
|      \/       __      \|    __    |   |    ___     ___    |__|   |
|              |  |          |  |   |   |   |   |   |   |          |
|   |\    /|   |__|          |__|   |___|   |   |   |   |    __    |
|   | \__/ |          |\                    |   |   |   |   |  |   |
|___|      |__________| \___________________|   |___|   |___|  |___|


A data hoarder’s dream come true: bundle any web page into a single HTML file. You can finally replace that gazillion of open tabs with a gazillion of .html files stored somewhere on your precious little drive.

Unlike the conventional “Save page as”, monolith not only saves the target document, it embeds CSS, image, and JavaScript assets all at once, producing a single HTML5 document that is a joy to store and share.

If compared to saving websites with wget -mpk, this tool embeds all assets as data URLs and therefore lets browsers render the saved page exactly the way it was on the Internet, even when no network connection is available.

!Monolith GUI screenshot

---------------------------------------------------


 Installation

 Using Cargo (cross-platform)

console
cargo install monolith


 Via Homebrew (macOS and GNU/Linux)

console
brew install monolith


 Via Chocolatey (Windows)

console
choco install monolith


 Via Scoop (Windows)

console
scoop install main/monolith


 Via Winget (Windows)

console
winget install --id=Y2Z.Monolith -e


 Via MacPorts (macOS)

console
sudo port install monolith


 Using Snapcraft (GNU/Linux)

console
snap install monolith


 Using Guix (GNU/Linux)

console
guix install monolith


 Using NixPkgs

console
nix-env -iA nixpkgs.monolith


 Using Flox

console
flox install monolith


 Using X-CMD

console
x install monolith


 Using Pacman (Arch Linux)

console
pacman -S monolith


 Using aports (Alpine Linux)

console
apk add monolith


 Using pkg.haus APT archive (Debian)

Set up the archive per the instructions on pkg.haus, then:

console
sudo apt install monolith


 Using XBPS Package Manager (Void Linux)

console
xbps-install -S monolith


 Using FreeBSD packages (FreeBSD)

console
pkg install monolith


 Using FreeBSD ports (FreeBSD)

console
cd /usr/ports/www/monolith/
make install clean


 Using pkgsrc (NetBSD, OpenBSD, Haiku, etc)

console
cd /usr/pkgsrc/www/monolith
make install clean


 Using containers

console
docker build -t y2z/monolith .
sudo install -b dist/run-in-container.sh /usr/local/bin/monolith


 From source

Dependencies: cargo


  Install cargo (GNU/Linux)
 Check if cargo is installed

 console
 cargo -v
 

 If cargo is not already installed, install and add it to your existing $PATH (paraphrasing the official installation instructions):

 console
 curl https://sh.rustup.rs -sSf | sh
 . "$HOME/.cargo/env"
 

Proceed with installing from source:


console
git clone https://github.com/Y2Z/monolith.git
cd monoli

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON