SingleFile helps you to save a complete web page into a single HTML file. SingleFile is a Web Extension (and a CLI tool) compatible with Chrome, Firefox (Desktop and Mobile), Microsoft Edge, Safari, Vivaldi, Brave, Waterfox, Yandex browser, and Opera.
- SingleFile
- Table of Contents
- Demo
- Install
- Getting started
- Additional notes
- FAQ
- Release notes
- Known Issues and Troubleshooting
- Command Line Interface (SingleFile CLI)
- Integration with user scripts
- File format comparison
- Projects using/compatible with SingleFile
- Privacy Policy
- Contributors
- Code derived from third party projects
- Icons
- License
Demo.SingleFile.mp4
SingleFile can be installed from the store of:
- Firefox: https://addons.mozilla.org/firefox/addon/single-file
- Firefox for Android: https://addons.mozilla.org/android/addon/single-file
- Chrome: https://chrome.google.com/extensions/detail/mpiodijhokgodhhofbcjdecpffjipkle
- Safari (macOS and iOS): https://apps.apple.com/us/app/singlefile-for-safari/id6444322545
- Microsoft Edge: https://microsoftedge.microsoft.com/addons/detail/efnbkdcfmcmnhlkaijjjmhjjgladedno
You can also download the zip file (https://github.com/gildas-lormeau/SingleFile/archive/master.zip) of the project and install it manually by unzipping it somewhere on your disk and following these instructions:
- Firefox: https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox
- Chrome and Microsoft Edge: https://github.com/gildas-lormeau/SingleFile-MV3
- Safari: https://github.com/gildas-lormeau/SingleFile-Safari-Extension
- Click on the SingleFile button in the extension toolbar to save the page.
- You can click again on the button to cancel the action when processing a page.
- Open the context menu by right-clicking the SingleFile button in the extension
toolbar or on the webpage. It allows you to save:
- the current tab,
- the selected content,
- the selected frame.
- You can also process multiple tabs in one click and save:
- the selected tabs,
- the unpinned tabs,
- all the tabs.
- Select "Annotate and save the page..." in the context menu to:
- highlight text,
- add notes,
- remove content.
- The context menu also allows you to activate the auto-save of:
- the current tab,
- the unpinned tabs,
- all the tabs.
- With auto-save active, pages are automatically saved every time after being loaded (or before being unloaded if not).
- Right-click on the SingleFile button and select "Manage extension" (Firefox) / "Options" (Chrome) to open the options page.
- Enable the option "Destination > save to Google Drive" or "Destination > upload to GitHub" to upload pages to Google Drive or GitHub respectively.
- Enable the option "Misc. > add proof of existence" to prove the existence of saved pages by linking the SHA256 of the pages into the blockchain.
- You can use the customizable shortkey Ctrl+Shift+Y to save the current tab or the selected tabs. Go to about:addons and select "Manage extension shortcuts" in the cogwheel menu to change it in Firefox. Go to chrome://extensions/shortcuts to change it in Chrome.
- The default save folder is the download folder configured in your browser, cf. about:addons in Firefox and chrome://settings in Chrome.
- See the extension help in the options page for more detailed information about the options and technical notes.
See https://github.com/gildas-lormeau/SingleFile/blob/master/faq.md
See https://addons.mozilla.org/firefox/addon/single-file/versions/
See https://github.com/gildas-lormeau/SingleFile/blob/master/known-issues.md
You can save web pages to HTML from the command line interface. See here for more info: https://github.com/gildas-lormeau/single-file-cli.
You can execute a user script just before (and after) SingleFile saves a page. For more info, see https://github.com/gildas-lormeau/SingleFile/wiki/How-to-execute-a-user-script-before-a-page-is-saved.
HTML | Self-extracting ZIP | MHTML | Webarchive (Safari) | HTML+folder | |
---|---|---|---|---|---|
Pages are saved as a single file | ✓ | ✓ | ✓ | ✓ | |
HTML and styles are minified | ✓ | ✓ | |||
Unused HTML and styles are removed from files | ✓ | ✓ | |||
Binary resources are not encoded in base 64 | ✓ | ✓ | ✓ | ||
Files are compressed | ✓ | ||||
Files can be viewed without installing any extension | ✓ | ✓¹ | ✓² | ✓³ | ✓ |
Files can be viewed without running JavaScript | ✓ | ✓ | ✓ | ✓ | |
Files can be unzipped to extract page resources | ✓ | n/a | |||
Files contains the text of the page (plain or formatted) which can be indexed | ✓ | ✓⁴ | ✓ | ✓ | ✓ |
Footnotes:
¹ When using the "universal" self-extracting file format
² Only in Chromium-based browsers, and Internet Explorer
³ Only in Safari
⁴ An option must be enabled in the extension
- ArchiveBox - Open-source self-hosted web archiving: https://github.com/ArchiveBox/ArchiveBox
- hoarder - Self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search: https://github.com/hoarder-app/hoarder
- htmls-to-datasette - Tool to index HTML files into a Sqlite database: https://github.com/pjamar/htmls-to-datasette
- linkding - Bookmark manager that you can host yourself. It's designed be to be minimal, fast, and easy to set up using Docker: https://github.com/sissbruecker/linkding
- obsidian-html-plugin - Plugin for reading HTML pages in Obsidian: https://github.com/nuthrash/obsidian-html-plugin
- Petal Cite Web Importer - Browser extension to save PDFs and capture web pages in Petal Cite: https://github.com/ks-collab/cite-extension
- singlefile2trilium - Tool to save faithful copy of a web page as a Trilium note with SingleFile: https://github.com/nil0x42/singlefile2trilium
- SingleFileMac - Integration of SingleFile in a swift application using webkit: https://github.com/david-littlefield/SingleFileMac
- Trilium-SingleFile - An addon for Trilium Notes to easily import SingleFile html pages: https://github.com/rauenzi/Trilium-SingleFile
- Trilium Simple SingleFile Renderer - A plugin to add a new Template note to Trilium for render file created by SingleFile: https://github.com/xnohat/trilium-simple-singlefile-renderer
- web document - Browser extension for saving web documents locally, allowing you to access them offline and quickly search for webpage: https://github.com/wvit/web-document
- Zotero Connector - Browser extension for Zotero, a tool to help you collect, organize, cite, and share your research sources: https://github.com/zotero/zotero-connectors
See https://github.com/gildas-lormeau/SingleFile/blob/master/privacy.md
See https://github.com/gildas-lormeau/SingleFile/blob/master/contributors.md
- csstree: https://github.com/csstree/csstree
- postcss-media-query-parser: https://github.com/dryoma/postcss-media-query-parser
- postcss-selector-parser: https://github.com/postcss/postcss-selector-parser
- UglifyCSS: https://github.com/fmarcia/UglifyCSS
- parse-srcset: https://github.com/albell/parse-srcset
- parse-css-font: https://github.com/jedmao/parse-css-font
- Readability: https://github.com/mozilla/readability
- whatwg-mimetype: https://github.com/jsdom/whatwg-mimetype
- Icon made by Kiranshastry from Flaticon is licensed by CC 3.0 BY
SingleFile is 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.
Suggestions are welcome :)