How to Bulk-Save Web Pages with SingleFile for Research Notes
Save several web pages as searchable research notes with SingleFile. Compare tab capture, URL lists, and CLI workflows, then organize the resulting files.
SingleFile saves a complete web page and its captured resources as one HTML file. To bulk-save pages, use its browser extension to process selected, unpinned, or all open tabs; use its URL-list batch feature when starting from a list; or use SingleFile CLI for a scripted workflow. These methods save the pages you specify. They are not a recursive download of every page linked from those sources.
For research notes, keep the saved HTML alongside a record of the original URL and capture date. SingleFile’s annotation editor can add highlights and notes or remove content before saving. See the SingleFile project README and its official site for the current feature and setup details.
1. Choose a bulk capture route
| Route | Start with | Best fit |
|---|---|---|
| Browser extension | Pages already open in a browser | Quickly saving a set of tabs |
| URL-list batch | A prepared list of URLs | Collecting sources from a list |
| SingleFile CLI | A command-line workflow | Repeatable or scripted capture |
The official project documents all three routes, including a CLI for Windows, macOS, and Linux. Choose based on where your URLs are and how repeatable the job needs to be. The official materials do not establish a universal maximum batch size or comparative speed, so split very large jobs into manageable groups and inspect the results.
2. Bulk-save tabs with the browser extension
- Install SingleFile from the browser’s extension store or the official project site.
- Open the pages you want to preserve, and wait until each page is fully loaded. Dynamic sites may continue changing after the initial load.
- Open the extension’s context menu and choose the action for selected tabs, unpinned tabs, or all tabs, depending on which pages you intend to save.
- Let the extension finish processing before closing tabs or ending the browser session.
- Check the output folder and open a few files to confirm that the important page content and resources were captured.
The Chrome listing advises waiting until the page is fully loaded before using the toolbar button. The context-menu actions let you process multiple tabs. If tabs include unrelated work, choose selected tabs rather than all tabs.
3. Save a list of URLs or use the CLI
When your sources are in a list instead of already-open tabs, the SingleFile site advertises batch saving a list of URLs. For a repeatable command-line process, use SingleFile CLI, available for Windows, macOS, and Linux. Follow the current official instructions for installing and invoking the CLI; the research sources do not specify a stable command syntax or a universal URL-list limit, so this article does not guess at either.
Before processing a large list, try a small representative group. Check whether redirects, authentication, delayed content, or site-specific browser behavior affect the captured output. A saved page is a snapshot of what was available to the capture process, not a guarantee that all content on every site can be preserved.
4. Pick an output format and destination
SingleFile documents several output formats: HTML, self-extracting ZIP, MHTML, Safari webarchive, and HTML plus a folder. Ordinary HTML is the most direct choice for research notes: the project says it can be viewed in a browser without the extension, and its text can be indexed. Other formats differ in compatibility and how resources are packaged, so check the project’s format comparison and make sure your intended browser or archive workflow supports your choice.
By default, the maintainer README says files go to the browser’s configured downloads folder. The README documents Google Drive and GitHub upload settings; the current Chrome Web Store listing also describes Dropbox and WebDAV destinations. Options can vary by installed version, so inspect the extension settings and use a destination available in your installation.
- Choose a stable folder or configured destination so later batches are easy to find.
- Keep filenames identifiable; use a consistent naming convention if you are organizing many sources.
- Record the original URL and capture date in your research notes. This is a useful filing practice, not an automatic bibliography feature.
- Back up an important archive using your normal storage process.
5. Turn saved pages into research notes
SingleFile’s annotation editor can highlight text, add notes, and remove content before saving. Use it when the purpose of the capture is to retain specific evidence or context. Preserve enough surrounding material to understand a quotation later, and keep the source URL and capture date in your separate note system.
After capture, open the saved HTML in a browser and verify the parts that matter to your research. The file represents a captured page, not a complete site mirror. The documented features do not establish that arbitrary linked pages, linked PDFs, login-protected content, or live interactions are included automatically.
6. Troubleshooting
| Problem | Likely cause | What to do |
|---|---|---|
| A page is missing or incomplete | It was not fully loaded, or content appeared later through scripts | Wait for the page to finish loading before capture; inspect the saved file and try again when the needed content is visible. |
| Some tabs were not saved | The chosen action did not include those tabs, or processing was interrupted | Check whether you chose selected, unpinned, or all tabs. Retry the missing pages and wait for processing to finish. |
| Images, styles, or frames look different | Resources may not have been available or captured as expected | Compare the saved file with the live page and retain the source URL for reference. The project describes resource capture, but does not guarantee identical results on every site. |
| A linked PDF or another page is absent | Capturing a page does not mean recursively downloading its links | Save that document or page separately using an appropriate workflow, then record its URL and capture date. |
| The file is hard to find | It was saved to the browser’s configured download folder or another selected destination | Check the browser download location and SingleFile’s destination settings. |
| A protected page is blank or incomplete | The capture process may not have access to the same authenticated or interactive state | Confirm the page is accessible in the browser before capture. Verify the saved result rather than assuming protected content was preserved. |
7. Performance, reliability, and cost
SingleFile is described by its project as free and open source, with code under the AGPL license. The ordinary extension is available at no charge. The maintainer README says to contact them about licensing the code for a commercial service or product; that is a separate consideration from using the extension for personal research.
The documented sources do not provide a benchmark, a guaranteed capture time, or universal behavior for dynamic and protected sites. Pages with many resources or delayed content can take longer to process, so allow time for a batch and check representative outputs. For important research, retain source URLs and dates and verify the saved files. The Chrome Web Store listing’s developer disclosure says data is not collected or used by the developer; that is the store disclosure, not an independent security audit.
8. Or skip the browser setup
If you need screenshots for notes, reports, or an agent workflow rather than a single-file HTML archive, ScreenshotNeo is a website screenshot API and MCP server. A GET request returns a PNG, JPEG, WebP, or PDF. See the API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo accepts cookie and consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers report the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots. Every feature is available on every plan.
Sign up for 1,000 free screenshots a month with no card.
Frequently asked questions
Can I open a SingleFile HTML capture without the extension?
According to the project’s format comparison, ordinary saved HTML can be viewed in a browser without installing SingleFile.
Does bulk-saving a URL list archive every link on each page?
No. The documented batch feature saves a list of URLs; it does not establish recursive downloading of pages linked from those URLs.
Can I search the text in saved pages?
The maintainer’s format comparison says saved HTML text can be indexed. Your local search tools and filing workflow determine how you search across files.
What should I do if a source matters later?
Keep the original URL and capture date with the saved file, then open the file to verify that the relevant content is present.


