Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sindresorhus/pageres-cli

Capture website screenshots
https://github.com/sindresorhus/pageres-cli

capture-screenshots command-line-app nodejs npm-package

Last synced: 27 days ago
JSON representation

Capture website screenshots

Awesome Lists containing this project

README

        

# pageres-cli

![](screenshot.png)

![](screenshot-output.png)

Capture screenshots of websites in various resolutions. A good way to make sure your websites are responsive. It's speedy and generates 100 screenshots from 10 different websites in just over a minute. It can also be used to render SVG images.

*See [pageres](https://github.com/sindresorhus/pageres) for the programmatic API and issues tracker.*

## Install

```sh
npm install --global pageres-cli
```

Note to Linux users: If you get a "No usable sandbox!" error, you need to enable [system sandboxing](https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#setting-up-chrome-linux-sandbox).

## Usage

Specify urls and screen resolutions as arguments. Order doesn't matter.

If no resolution is specified it will default to `1366x768` which is the most popular resolution.

```sh
pageres
pageres

# can also be a local file path.
pageres
```

List multiple urls and resolutions for pageres to capture all combinations.

```sh
pageres ...

pageres https://sindresorhus.com 1024x768 1366x768 # 2 screenshots
pageres https://sindresorhus.com https://example.com 1024x768 # 2 screenshots
pageres https://sindresorhus.com https://example.com 1024x768 1366x768 # 4 screenshots
```

Group arguments with square brackets.

```sh
pageres [ ] [ ]
pageres [ ... ]

# Mix grouped and single arguments
pageres [ https://example.com 1024x768 1600x900 ] https://sindresorhus.com 1366x768

# Options defined inside a group will override the outer ones.
pageres [ https://example.com 1024x768 --no-crop ] https://sindresorhus.com 1366x768 --crop
```

Screenshots are saved in the current directory.

### Examples

```sh
# Basic multi-url, multi-resolution usage
pageres https://sindresorhus.com https://example.com 1366x768 1600x900

# Override outer option within group
pageres [ https://example.com 1366x768 1600x900 --no-crop ] [ https://sindresorhus.com 1024x768 480x320 ] --crop

# Provide a custom filename template
pageres https://sindresorhus.com 1024x768 --filename='<%= date %> - <%= url %>'

# Capture a specific element
pageres https://example.com 1366x768 --selector='.page-header'

# Hide a specific element
pageres https://example.com 1366x768 --hide='.page-header'

# Capture a local file
pageres unicorn.html 1366x768
```

### Options

##### `--verbose`, `-v`

Verbose output to see errors if you need to troubleshoot.

##### `--crop`, `-c`

Crop to the set height.

```sh
pageres https://sindresorhus.com 1024x768 --crop
```

##### `--delay=`, `-d`

Delay screenshot capture.

```sh
pageres https://sindresorhus.com 1024x768 --delay=3
```

##### `--filename=`

Custom filename.

```sh
pageres https://sindresorhus.com 1024x768 --filename='<%= date %> - <%= url %>'
```

##### `--overwrite`

Overwrite destination file if it exists. Defaults to appending ` (n)` to the file name if `--overwrite` is not set.

```sh
pageres https://sindresorhus.com 1366x768 --overwrite
```

##### `--selector=`

Capture DOM element.

```sh
pageres https://example.com 1366x768 --selector='.page-header'
```

##### `--hide=`

Hide DOM element. Can be set multiple times.

```sh
pageres https://example.com 1366x768 --hide='.page-header'
```

##### `--no-crop`

Override a global crop option within a group.

```sh
pageres [ https://example.com 1366x768 --no-crop ] https://sindresorhus.com 1024x768 --crop
```

##### `--css=`

Apply custom CSS to the webpage. Specify some CSS or the path to a CSS file.

```sh
pageres https://sindresorhus.com --css='body { background: red; }'
pageres https://sindresorhus.com --css='style.css'
```

##### `--cookie=`

Browser cookie. Can be set multiple times.

```sh
pageres https://example.com --cookie='foo=bar'
```

##### `--header=`

Custom HTTP request header. Can be set multiple times.

```sh
pageres https://example.com --header='Cache-Control: no-cache'
```

##### `--username=`

Username for HTTP auth.

##### `--password=`

Password for HTTP auth.

##### `--scale=`

Scale webpage `n` of times.

##### `--format=`

Image format. Either `png` *(default)* or `jpg`.

##### `--user-agent=`

Custom user agent.

##### `--transparent`

Set background color to `transparent` instead of `white` if no background is set.

##### `--darkMode`

Emulate preference of dark color scheme.

## Config file

You can persist your commands into a file and run it whenever with eg. `sh .pageres`:

```sh
# .pageres
pageres [ https://sindresorhus.com 1000x1000 --crop ] [ https://example.com 500x500 ]
pageres [ https://google.com 1000x1000 --crop ] [ https://github.com 500x500 ]
```

## Related

- [pageres](https://github.com/sindresorhus/pageres) - API for this module
- [capture-website-cli](https://github.com/sindresorhus/capture-website-cli) - A different take on screenshotting websites