Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

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