CLI tool for saving a faithful copy of a complete web page in a single HTML file (based on SingleFile) https://www.getsinglefile.com
Find a file
2025-12-10 15:40:13 +01:00
.github/workflows fix platforms 2024-10-01 16:13:02 +02:00
lib bump up version 2025-11-30 00:33:39 +01:00
resources add icon for windows executables 2024-09-21 22:52:29 +02:00
.gitignore remove obsolete paths 2024-03-20 02:01:20 +01:00
build.sh update single-file-core 2025-11-30 00:28:22 +01:00
compile.sh update script 2025-02-21 00:50:30 +01:00
deno.json bump up version 2025-11-30 00:33:39 +01:00
deno.lock update lock file 2025-11-11 00:38:34 +01:00
dev-build.sh fix interpreter 2024-06-18 13:23:22 +02:00
Dockerfile use npx to run single-file 2024-09-21 00:50:33 +02:00
eslint.config.mjs fix eslint integration 2025-02-19 22:51:43 +01:00
LICENSE add license 2022-06-02 00:12:06 +02:00
options.js add link in --filename-template description (see 185) 2025-12-10 15:40:13 +01:00
package-lock.json bump up version 2025-11-30 00:33:39 +01:00
package.json bump up version 2025-11-30 00:33:39 +01:00
README.MD update link 2025-03-27 16:21:01 +01:00
single-file separate node and deno entry points (fix #70) 2024-03-26 17:39:58 +01:00
single-file-cli-api.js update template 2025-11-04 23:12:27 +01:00
single-file-launcher.js do not overwrite global options (see #135) 2024-11-09 23:24:07 +01:00
single-file-node.bat fix filename 2024-04-05 02:10:46 +02:00
single-file-node.js separate node and deno entry points (fix #70) 2024-03-26 17:39:58 +01:00
single-file.bat add perrmissions 2024-04-04 18:40:51 +02:00

SingleFile CLI (Command Line Interface)

Introduction

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.

Installation

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 with Docker

  • 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.

Manual installation

  • 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
    

Run

  • Syntax

    single-file <url> [output] [options ...]
    
  • Display help

    single-file --help
    
  • Examples

    single-file https://www.wikipedia.org --dump-content
    
    single-file https://www.wikipedia.org wikipedia.html
    
    • Save a list of URLs stored into list-urls.txt in the current folder
    single-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.*$"
    

Compile executables

  • Compile executables into /dist
./compile.sh

License

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.