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

https://github.com/binary-blazer/shbrw

A headless CLI browser made for screenshots
https://github.com/binary-blazer/shbrw

browser cli frameless headless scb screencapture screenshot

Last synced: 11 months ago
JSON representation

A headless CLI browser made for screenshots

Awesome Lists containing this project

README

          





Screenshot Browser (shbrw)


Screenshot Browser (shbrw) is a frameless CLI browser designed for taking screenshots of websites. It provides both a CLI and an API for capturing screenshots.















## Usage

Looking for one-time usage? Check the commands below!

```bash
npx shbrw --url=https://binaryblazer.me
# or
pnpm dlx shbrw --url=https://binaryblazer.me
# or
bunx shbrw --url=https://binaryblazer.me
```

> [!TIP]
> Make sure to replace the **``https://binaryblazer.me``** (the value of the the url flag) with your desired URL.

## Installation

To install the package, use npm:

```bash
npm install -g shbrw
# or
yarn global add shbrw
# or
pnpm add -g shbrw
# or
bun install -g shbrw
```

## CLI Usage

To open a headless and frameless browser window, use the following command:

```bash
shbrw --url= [--size=WxH] [--optimized] [--noJS]
```

Then, right-click on the page and select "Take Screenshot" from the context menu.

Context menu

### CLI Options

- `--url`: The URL of the website to open.
- `--size`: The size of the window in the format `WxH` (default: `1280x720`).
- `--optimized`: Run the website in optimized mode.
- `--noJS`: Disable JavaScript on the website.

## API Usage

You can also use the API to take screenshots programmatically.

### Example

```js
import { takeScreenshot } from 'shbrw';

const url = 'https://example.com';
const options = {
width: 1920,
height: 1080,
x: 0,
y: 0,
noJS: false
};

takeScreenshot(url, options)
.then(buffer => {
// Do something with the screenshot buffer
})
.catch(error => {
console.error('Error taking screenshot:', error);
});
```

### API Options

- `url`: The URL of the website to take a screenshot of.
- `options`: An object containing the following properties:
- `width`: The width of the screenshot (default: `1280`).
- `height`: The height of the screenshot (default: `720`).
- `x`: The x-coordinate of the screenshot (default: `0`).
- `y`: The y-coordinate of the screenshot (default: `0`).
- `noJS`: Disable JavaScript on the website (default: `false`).