SingleFile 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 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. Otherwise you might need to set the --browser-executable-path
option to help SingleFile locating the path of the executable file.
-
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 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:
-
Download and install with
npm
(npm
is installed with Node.js)npm install "single-file-cli" cd single-file-cli-master
You can also install SingleFile globally with
-g
when runningnpm 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
-
Examples
- Dump the HTML content of https://www.wikipedia.org into the console
single-file https://www.wikipedia.org --dump-content
- Save https://www.wikipedia.org into
wikipedia.html
in the current folder
single-file https://www.wikipedia.org wikipedia.html
- Save https://www.wikipedia.org into
wikipedia.html
in the current folder with Firefox instead of Chrome
single-file https://www.wikipedia.org wikipedia.html --back-end=webdriver-gecko
- Save a list of URLs stored into
list-urls.txt
in the current folder
single-file --urls-file=list-urls.txt
- Save https://www.wikipedia.org and crawl its internal links with the query parameters removed from the URL
single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=true --crawl-max-depth=1 --crawl-rewrite-rule="^(.*)\\?.*$ $1"
- Save https://www.wikipedia.org and external links only
single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=false --crawl-external-links-max-depth=1 --crawl-rewrite-rule="^.*wikipedia.*$"
- Compile executables into
/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.