# @epaperjs/cli

> CLI for rendering URL onto ePaper display on Raspberry Pi

Latest version **2.1.3** (published 2022-10-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install @epaperjs/cli
pnpm add @epaperjs/cli
yarn add @epaperjs/cli
bun add @epaperjs/cli
```

Provides the command `ejs`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.1.3 |
| Published | 2022-10-02 |
| First published | 2022-01-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 24 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | samsonmking |
| Maintainers | samsonmking |

## Links

- npm: https://www.npmjs.com/package/@epaperjs/cli
- Repository: https://github.com/samsonmking/epaper.js
- Homepage: https://github.com/samsonmking/epaper.js#readme
- Issues: https://github.com/samsonmking/epaper.js/issues
- npm.io page: https://npm.io/package/@epaperjs/cli

## Dependencies (2)

- [yargs](https://npm.io/package/yargs.md) ^17.3.0
- [@epaperjs/core](https://npm.io/package/@epaperjs/core.md) ^2.2.2

## Recent versions

- 2.1.3 (latest) — 2022-10-02
- 2.1.2 — 2022-09-12
- 2.1.1 — 2022-02-17
- 2.1.0 — 2022-02-06
- 2.0.3 — 2022-02-02
- 2.0.2 — 2022-01-30
- 2.0.1 — 2022-01-29
- 2.0.0 — 2022-01-29

## README

# @epaperjs/cli

Command line interface for displaying a URL on an ePaper display on a Raspberry Pi

## Usage

```
ejs <command> [options] <deviceType>
```

For example, the following command will update the Waveshare 7.5" v2 screen with the contents of `http://localhost:8080` every 10 minutes.

```
ejs refresh rpi-7in5-v2 "http://localhost:8080"
```

For available devices types, see [supported hardware](#supported-hardware). The different [commands](#commands) and suggested [workflows](#workflows) are described below.

### Commands

**Display**: display a single rendition of a URL

```
ejs display [options] <deviceType> <url>
```

| Option               | Description                                                                                            | Allowed Values        |
| -------------------- | ------------------------------------------------------------------------------------------------------ | --------------------- |
| `-o / --orientation` | Use (h)orizontal or (v)ertical orientation                                                             | `[h, v]`              |
| `-c / --colorMode`   | Desired color mode                                                                                     | `[black, 4gray, red]` |
| `--screenshotDelay`  | Wait an additional amount of time after loading the URL before displaying. Useful for client side apps | Time in milliseconds  |
| `--dither`           | Use a dithering algorithm to approximate grayscale / mid-tones on black and white displays             |                       |
| `--username`         | Username for basic authentication                                                                      | username as string    |
| `--password`         | Password for basic authentication                                                                      | password as string    |
| `--debug`            | Print additional log info and stacktraces                                                              |                       |
| `--version`          | Show version number                                                                                    |                       |
| `--help`             | Show help                                                                                              |                       |

**Refresh**: continuously update and display the URL

```
ejs refresh [options] <deviceType> <url>
```

| Option               | Description                                                                                            | Allowed Values                   |
| -------------------- | ------------------------------------------------------------------------------------------------------ | -------------------------------- |
| `-i / --interval`    | Amount of time between refreshes                                                                       | Time in seconds (default 10 min) |
| `-o / --orientation` | Use (h)orizontal or (v)ertical orientation                                                             | `[h, v]`                         |
| `-c / --colorMode`   | Desired color mode                                                                                     | `[black, 4gray, red]`            |
| `--screenshotDelay`  | Wait an additional amount of time after loading the URL before displaying. Useful for client side apps | Time in milliseconds             |
| `--dither`           | Use a dithering algorithm to approximate grayscale / mid-tones on black and white displays             |                                  |
| `--username`         | Username for basic authentication                                                                      | username as string               |
| `--password`         | Password for basic authentication                                                                      | password as string               |
| `--debug`            | Print additional log info and stacktraces                                                              |                                  |
| `--version`          | Show version number                                                                                    |                                  |
| `--help`             | Show help                                                                                              |                                  |

**Clear**: clear the display

```
ejs clear [options] <deviceType>
```

| Option      | Description                               | Allowed Values |
| ----------- | ----------------------------------------- | -------------- |
| `--debug`   | Print additional log info and stacktraces |                |
| `--version` | Show version number                       |                |
| `--help`    | Show help                                 |                |

### Workflows

**Self-Hosting**

-   Create a web app and store it on your Raspberry Pi
-   Host the web app with [http-server](https://www.npmjs.com/package/http-server)
-   Run ePaper.js with `ejs refresh <deviceType> "http://localhost:8080" (or whatever port you configure http-server to run on)`

**Cloud Hosting**

-   Create a web app and host it on a service like [GitHub Pages](https://pages.github.com/) or [Netlify](https://www.netlify.com/)
-   Run ePaper.js with `ejs refresh <deviceType> "<URL of your app>"`

**Running As a Daemon** \
There are several methods of automatically launching ePaper.js on startup and restarting in case of failures

-   Run with [pm2](https://pm2.keymetrics.io/)
-   Create a [systemd service](https://blog.r0b.io/post/running-node-js-as-a-systemd-service/)

## Installation

```
npm i -g @epaperjs/cli
```

---
_Source: https://npm.io/package/@epaperjs/cli · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
