Skip to content
A Magical 🔮 Web Screenshot Project
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Crystal Ball 🔮

A Magical Web Screenshot Project

Crystal Ball 🔮 is a library that takes an array or file of URLs and returns a report with screenshots (using Puppeteer), application headers and src/href references.

For information on downloading and installing Node.js, see


Crystal Ball Command Line Install

$ npm install crystalball -g 

Crystal Ball (cli)

The first parameter is URL(s) (encapsulated in quotes, separated by commas) or a filename and followed by individual options.

  • prefix : Prefix http and https to each URL
  • port : Add additional port 8080 for HTTP and 8443 for HTTPS
  • file : Use the first parameter as a filename (instead of URLs) to parse (URLs separated by a new line)

If the last argument is a number, it will specify the number of concurrent connections (default = 10).

Note: The file argument must be included to use a filename.


Array of URLS:
crystalball ','

Array of URLS with Options:
crystalball ',' prefix ports 15

File (must include file argument):
crystalball 'example.txt' file

File with Options:
crystalball 'example.txt' file prefix ports 15

Note: The first argument should be encapsulated in quotes.

Module Install

$ npm install crystalball


Import: import * as O from "crystalball";
Require: const O = require("crystalball");


Options are passed as an object with the following properties and values.

  • file : true : Use filename as argument
  • filename: "example" : Report filename (defaults to cb)
  • prefix: true : Prefix http and https
  • ports : boolean : Add port 8080 for http and port 8443 for https
  • connections : number : Number of concurrent connections (default = 10)
O.see("example.txt", { file: true, filename: "example", prefix: true });
    => Report output in ./crystalball/example_date.html
    => Data output in ./crystalball/data/


The see function takes an array of URLS and options.

O.see(["", ""], options);
    => Report output in ./crystalball/cb_date.html
    => Data output in ./crystalball/data/

The file function takes a filename and options.

O.file("example.txt", options);
    => Report output in ./crystalball/cb_date.html
    => Data output in ./crystalball/data/


  1. HTML report with screenshots, application headers and src/href references at ./crystalball/cb_date.html. (Note: Clicking on each screenshot will toggle size)
  2. Data files with application source, headers and src/href references at ./crystalball/data/.
You can’t perform that action at this time.