CLI tool for saving a faithful copy of a complete web page in a single HTML file (based on SingleFile)
See the codeSingleFile can be launched from the command line by running it into a (headless) browser.
It runs through Deno as a standalone script injected into the web page via the Chrome DevTools Protocol, or via WebDriver BiDi when using Firefox, instead of being embedded into a WebExtension.
SingleFile can be run without installing it, just download the executable file and save it in the directory of your choice here: https://github.com/gildas-lormeau/single-file-cli/releases
Make sure Chrome or a Chromium-based browser is installed in the default folder. Installations for the current user are also found (%LOCALAPPDATA% on Windows, ~/Applications on macOS, snap and the PATH on Linux). Otherwise you might need to set the --browser-executable-path option to help SingleFile locating the path of the executable file. Firefox can be used instead by setting the --browser-engine firefox option, with some limitations described in the help. The Flatpak version of Firefox needs access to /tmp, where the temporary profile is created. Allow it with flatpak override --user --filesystem=/tmp org.mozilla.firefox and set --browser-executable-path to /var/lib/flatpak/exports/bin/org.mozilla.firefox, or to ~/.local/share/flatpak/exports/bin/org.mozilla.firefox for a per-user installation.
Installation from Docker Hub
docker pull capsulecode/singlefile
docker tag capsulecode/singlefile singlefile
Manual installation
git clone --depth 1 --recursive https://github.com/gildas-lormeau/single-file-cli.git
cd single-file-cli
docker build --no-cache -t singlefile .
Run
docker run singlefile "https://www.wikipedia.org"
Run with Firefox
docker run singlefile "https://www.wikipedia.org" --browser-engine firefox
Run and redirect the result into a file
docker run singlefile "https://www.wikipedia.org" > wikipedia.html
Run and mount a volume to get the saved file in the current directory
Save one page
docker run -v %cd%:/usr/src/app/out singlefile "https://www.wikipedia.org" wikipedia.html
(Windows)
docker run -v $(pwd):/usr/src/app/out singlefile "https://www.wikipedia.org" wikipedia.html
(Linux/UNIX)
Save one or multiple pages by using the filename template (see
--filename-template option)
docker run -v %cd%:/usr/src/app/out singlefile "https://www.wikipedia.org" --dump-content=false
(Windows)
docker run -v $(pwd):/usr/src/app/out singlefile "https://www.wikipedia.org" --dump-content=false
(Linux/UNIX)
An alternative docker file can be found here https://github.com/screenbreak/SingleFile-dockerized. It allows you to save pages from the command line interface or through an HTTP server.
Install Deno
There are 3 ways to download the code of SingleFile, choose the one you prefer:
Install with npm and run single-file via npx (npm and npx are installed with Node.js)
npm install "single-file-cli"
npx single-file ...
You can also install SingleFile globally with -g when running npm install.
Download and unzip manually the master archive provided by Github
unzip master.zip .
cd single-file-cli-master
Download with git
git clone --depth 1 --recursive https://github.com/gildas-lormeau/single-file-cli.git
cd single-file-cli
Make single-file executable (Linux/Unix/BSD etc.).
chmod +x single-file
Syntax
single-file <url> [output] [options ...]
Display help
single-file --help
Record what was observed while saving, for later verification: see MANIFEST.md
single-file https://www.wikipedia.org wikipedia.html --manifest
Examples
single-file https://www.wikipedia.org --dump-content
wikipedia.html in the current foldersingle-file https://www.wikipedia.org wikipedia.html
single-file --create-browser-profile ./profiles/example https://www.example.com/login
single-file https://www.example.com/account account.html --browser-profile=./profiles/example
single-file https://www.wikipedia.org wikipedia.html --browser-engine firefox
list-urls.txt in the current foldersingle-file --urls-file=list-urls.txt
single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=true --crawl-max-depth=1 --crawl-rewrite-rule="^(.*)\\?.*$ $1"
single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=false --crawl-external-links-max-depth=1 --crawl-rewrite-rule="^.*wikipedia.*$"
single-file http://info.cern.ch first-website.html --crawl-links=true --crawl-max-depth=2 --crawl-save-archive=true --crawl-save-archive-mark-unarchived-links=true --compress-content=true
Exit code
The exit code is 0 when all the pages have been saved, 1 when at least one capture failed (the other pages of the batch or the crawl are still saved), and 255 when an error prevented the process from running.
/dist./compile.sh
SingleFile and SingleFile CLI are licensed under AGPL. Code derived from third-party projects is licensed under MIT. Please contact me at gildas.lormeau <at> gmail.com if you are interested in licensing the SingleFile code for a commercial service or product.
17,254 followers · starred Apr 2026
929 followers · starred Jun 2026
277 followers · starred Aug 2024
217 followers · starred Sep 2026
CLI tool for saving a faithful copy of a complete web page in a single HTML file (based on SingleFile)
See the codeSingleFile can be launched from the command line by running it into a (headless) browser.
It runs through Deno as a standalone script injected into the web page via the Chrome DevTools Protocol, or via WebDriver BiDi when using Firefox, instead of being embedded into a WebExtension.
SingleFile can be run without installing it, just download the executable file and save it in the directory of your choice here: https://github.com/gildas-lormeau/single-file-cli/releases
Make sure Chrome or a Chromium-based browser is installed in the default folder. Installations for the current user are also found (%LOCALAPPDATA% on Windows, ~/Applications on macOS, snap and the PATH on Linux). Otherwise you might need to set the --browser-executable-path option to help SingleFile locating the path of the executable file. Firefox can be used instead by setting the --browser-engine firefox option, with some limitations described in the help. The Flatpak version of Firefox needs access to /tmp, where the temporary profile is created. Allow it with flatpak override --user --filesystem=/tmp org.mozilla.firefox and set --browser-executable-path to /var/lib/flatpak/exports/bin/org.mozilla.firefox, or to ~/.local/share/flatpak/exports/bin/org.mozilla.firefox for a per-user installation.
Installation from Docker Hub
docker pull capsulecode/singlefile
docker tag capsulecode/singlefile singlefile
Manual installation
git clone --depth 1 --recursive https://github.com/gildas-lormeau/single-file-cli.git
cd single-file-cli
docker build --no-cache -t singlefile .
Run
docker run singlefile "https://www.wikipedia.org"
Run with Firefox
docker run singlefile "https://www.wikipedia.org" --browser-engine firefox
Run and redirect the result into a file
docker run singlefile "https://www.wikipedia.org" > wikipedia.html
Run and mount a volume to get the saved file in the current directory
Save one page
docker run -v %cd%:/usr/src/app/out singlefile "https://www.wikipedia.org" wikipedia.html
(Windows)
docker run -v $(pwd):/usr/src/app/out singlefile "https://www.wikipedia.org" wikipedia.html
(Linux/UNIX)
Save one or multiple pages by using the filename template (see
--filename-template option)
docker run -v %cd%:/usr/src/app/out singlefile "https://www.wikipedia.org" --dump-content=false
(Windows)
docker run -v $(pwd):/usr/src/app/out singlefile "https://www.wikipedia.org" --dump-content=false
(Linux/UNIX)
An alternative docker file can be found here https://github.com/screenbreak/SingleFile-dockerized. It allows you to save pages from the command line interface or through an HTTP server.
Install Deno
There are 3 ways to download the code of SingleFile, choose the one you prefer:
Install with npm and run single-file via npx (npm and npx are installed with Node.js)
npm install "single-file-cli"
npx single-file ...
You can also install SingleFile globally with -g when running npm install.
Download and unzip manually the master archive provided by Github
unzip master.zip .
cd single-file-cli-master
Download with git
git clone --depth 1 --recursive https://github.com/gildas-lormeau/single-file-cli.git
cd single-file-cli
Make single-file executable (Linux/Unix/BSD etc.).
chmod +x single-file
Syntax
single-file <url> [output] [options ...]
Display help
single-file --help
Record what was observed while saving, for later verification: see MANIFEST.md
single-file https://www.wikipedia.org wikipedia.html --manifest
Examples
single-file https://www.wikipedia.org --dump-content
wikipedia.html in the current foldersingle-file https://www.wikipedia.org wikipedia.html
single-file --create-browser-profile ./profiles/example https://www.example.com/login
single-file https://www.example.com/account account.html --browser-profile=./profiles/example
single-file https://www.wikipedia.org wikipedia.html --browser-engine firefox
list-urls.txt in the current foldersingle-file --urls-file=list-urls.txt
single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=true --crawl-max-depth=1 --crawl-rewrite-rule="^(.*)\\?.*$ $1"
single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=false --crawl-external-links-max-depth=1 --crawl-rewrite-rule="^.*wikipedia.*$"
single-file http://info.cern.ch first-website.html --crawl-links=true --crawl-max-depth=2 --crawl-save-archive=true --crawl-save-archive-mark-unarchived-links=true --compress-content=true
Exit code
The exit code is 0 when all the pages have been saved, 1 when at least one capture failed (the other pages of the batch or the crawl are still saved), and 255 when an error prevented the process from running.
/dist./compile.sh
SingleFile and SingleFile CLI are licensed under AGPL. Code derived from third-party projects is licensed under MIT. Please contact me at gildas.lormeau <at> gmail.com if you are interested in licensing the SingleFile code for a commercial service or product.
17,254 followers · starred Apr 2026
929 followers · starred Jun 2026
277 followers · starred Aug 2024
217 followers · starred Sep 2026