Capture website screenshots

Related tags

Command Line pageres
Overview

pageres

Coverage Status XO code style

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-cli for the command-line tool.

Install

$ npm install pageres

Note to Linux users: If you get a "No usable sandbox!" error, you need to enable system sandboxing.

Usage

const Pageres = require('pageres');

(async () => {
	await new Pageres({delay: 2})
		.src('https://github.com/sindresorhus/pageres', ['480x320', '1024x768', 'iphone 5s'], {crop: true})
		.src('https://sindresorhus.com', ['1280x1024', '1920x1080'])
		.src('data:text/html,<h1>Awesome!</h1>', ['1024x768'])
		.dest(__dirname)
		.run();

	console.log('Finished generating screenshots!');
})();

API

Pageres(options?)

options

Type: object

delay

Type: number (Seconds)
Default: 0

Delay capturing the screenshot.

Useful when the site does things after load that you want to capture.

timeout

Type: number (Seconds)
Default: 60

Number of seconds after which the request is aborted.

crop

Type: boolean
Default: false

Crop to the set height.

css

Type: string

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

script

Type: string

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

cookies

Type: Array<string | object>

A string with the same format as a browser cookie or an object.

Tip: Go to the website you want a cookie for and copy-paste it from DevTools.

filename

Type: string

Define a customized filename using Lo-Dash templates.
For example: <%= date %> - <%= url %>-<%= size %><%= crop %>.

Available variables:

  • url: The URL in slugified form, eg. http://yeoman.io/blog/ becomes yeoman.io!blog
  • size: Specified size, eg. 1024x1000
  • width: Width of the specified size, eg. 1024
  • height: Height of the specified size, eg. 1000
  • crop: Outputs -cropped when the crop option is true
  • date: The current date (YYYY-MM-DD), eg. 2015-05-18
  • time: The current time (HH-mm-ss), eg. 21-15-11
incrementalName

Type: boolean
Default: false

When a file exists, append an incremental number.

selector

Type: string

Capture a specific DOM element matching a CSS selector.

hide

Type: string[]

Hide an array of DOM elements matching CSS selectors.

username

Type: string

Username for authenticating with HTTP auth.

password

Type: string

Password for authenticating with HTTP auth.

scale

Type: number
Default: 1

Scale webpage n times.

format

Type: string
Default: png
Values: 'png' | 'jpg'

Image format.

userAgent

Type: string

Custom user agent.

headers

Type: object

Custom HTTP request headers.

transparent

Type: boolean
Default: false

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

darkMode

Type: boolean
Default: false

Emulate preference of dark color scheme.

launchOptions

Type: object
Default: {}

Options passed to puppeteer.launch().

pageres.src(url, sizes, options?)

Add a page to screenshot.

url

Required
Type: string

URL or local path to the website you want to screenshot. You can also use a data URI.

sizes

Required
Type: string[]

Use a <width>x<height> notation or a keyword.

A keyword is a version of a device from this list.

You can also pass in the w3counter keyword to use the ten most popular resolutions from w3counter.

options

Type: object

Options set here will take precedence over the ones set in the constructor.

pageres.dest(directory)

Set the destination directory.

directory

Type: string

pageres.run()

Run pageres. Returns Promise<Buffer[]>.

Task runners

Check out grunt-pageres if you're using Grunt.

For Gulp and Broccoli, just use the API directly. No need for a wrapper plugin.

Built with Pageres

  • Break Shot - Desktop app for capturing screenshots of responsive websites.

Related

Comments
  • Use async functions in the module code and tests

    Use async functions in the module code and tests

    Re: https://github.com/sindresorhus/pageres/pull/212/files#r41089180

    @kevva @SamVerschueren Comment here before doing it so we don't have any conflict ;)

    enhancement 
    opened by sindresorhus 26
  • PhantomJS 2

    PhantomJS 2

    The current WebKit in PhantomJS is ancient. We should upgrade to PhantomJS 2 as soon as it is available. Hopefully within this month or next.

    https://groups.google.com/forum/#!topic/phantomjs/z6Xy1f0Xqhc

    This is currently blocked by the PhantomJS 2.0 release being broken... We have to wait for the phantomjs module to upgrade: https://github.com/Medium/phantomjs/issues/288

    enhancement 
    opened by sindresorhus 26
  • yacks out on cli.js, line 91

    yacks out on cli.js, line 91

    Hello! Cool tool, I'm excited about using it. I installed it and PhantomJS (via macports) and get this result:

    $ pageres http://www.nationalgeographic.com 320x480 1024x768 1366x768

    /usr/local/lib/node_modules/pageres/cli.js:91 throw err; ^ Error: }

        };
    
        // 15. If the [[Class]] internal property of Target is "Function", then
        //     a. Let L be the length property of Target minus the length of A.
        //     b. Set the length own property of F to either 0 or L, whichever is
        //       larger.
        // 16. Else set the length own property of F to 0.
    
        var boundLength = Math.max(0, target.length - args.length);
    
        // 17. Set the attributes of the length own property of F to the values
        //   specified in 15.3.5.1.
        var boundArgs = [];
        for (var i = 0; i < boundLength; i++) {
            boundArgs.push("$" + i);
        }
    
        // XXX Build a dynamic function with desired amount of arguments is the only
        // way to set the length property of a function.
        // In environments where Content Security Policies enabled (Chrome extensions,
        // for ex.) all use of eval or Function costructor throws an exception.
    
    opened by combs 21
  • WebFonts not rendering yet

    WebFonts not rendering yet

    I have already followed the other issues ( e.g. https://github.com/sindresorhus/pageres/issues/152 ) but both API and cli are not rendering webfonts, both widh font-face and link inclusion. I have not phantomjs installed globally, I re-installed multiple times pageres and made sure it was the right version. Any thought?

    opened by steoo 20
  • Linux encrypted home: TypeError for any URL above 104 characters

    Linux encrypted home: TypeError for any URL above 104 characters

    Any URL above 104 characters makes pageres choke immediately (before even sending any web request it seems):

    $ pageres "https://tools.wmflabs.org/wikivoyage/w/poimap2.php?lat=42.333333&lon=12.283333&zoom=13&layer=O&lang=en&name=Fabrica_di_Roma" 1680x1080
    
    events.js:74
            throw TypeError('Uncaught, unspecified "error" event.');
                  ^
    TypeError: Uncaught, unspecified "error" event.
        at TypeError (<anonymous>)
        at EventEmitter.emit (events.js:74:15)
        at cleanupSync (/usr/local/lib/node_modules/pageres/node_modules/fs-write-stream-atomic/index.js:46:42)
        at WriteStream.emit (/usr/local/lib/node_modules/pageres/node_modules/fs-write-stream-atomic/index.js:53:12)
        at WriteStream.<anonymous> (evalmachine.<anonymous>:1660:12)
        at OpenReq.Req.done (/usr/local/lib/node_modules/pageres/node_modules/fs-write-stream-atomic/node_modules/graceful-fs/graceful-fs.js:141:5)
        at OpenReq.done (/usr/local/lib/node_modules/pageres/node_modules/fs-write-stream-atomic/node_modules/graceful-fs/graceful-fs.js:61:22)
        at Object.oncomplete (evalmachine.<anonymous>:107:15)
    

    pageres 1.1.0 Ubuntu 2014.04 nodejs v0.10.25 http_parser: '1.0' node: '0.10.25' v8: '3.14.5.9' ares: '1.10.0' uv: '0.10.23' zlib: '1.2.8' modules: '11' openssl: '1.0.1f' npm: '1.3.10'

    Difference between URLs of respectively 105 and 104 characters:

    $ pageres "http://123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123.com" 1680x1080
    
    events.js:74
            throw TypeError('Uncaught, unspecified "error" event.');
                  ^
    TypeError: Uncaught, unspecified "error" event.
        at TypeError (<anonymous>)
        at EventEmitter.emit (events.js:74:15)
        at cleanupSync (/usr/local/lib/node_modules/pageres/node_modules/fs-write-stream-atomic/index.js:46:42)
        at WriteStream.emit (/usr/local/lib/node_modules/pageres/node_modules/fs-write-stream-atomic/index.js:53:12)
        at WriteStream.<anonymous> (evalmachine.<anonymous>:1660:12)
        at OpenReq.Req.done (/usr/local/lib/node_modules/pageres/node_modules/fs-write-stream-atomic/node_modules/graceful-fs/graceful-fs.js:141:5)
        at OpenReq.done (/usr/local/lib/node_modules/pageres/node_modules/fs-write-stream-atomic/node_modules/graceful-fs/graceful-fs.js:61:22)
        at Object.oncomplete (evalmachine.<anonymous>:107:15)
    
    $ pageres "http://12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012.com" 1680x1080
    Couldn't load url: http://12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012.com
    
    opened by nicolas-raoul 18
  • Error: spawn EACCES

    Error: spawn EACCES

    Running the example command …

    ❯ pageres todomvc.com yeoman.io 1366x768 1600x900
    

    Gives this error:

    events.js:72
            throw er; // Unhandled 'error' event
                  ^
    Error: spawn EACCES
        at errnoException (child_process.js:980:11)
        at Process.ChildProcess._handle.onexit (child_process.js:771:34)
    

    And …

    ❯ sudo !!
    

    … gives the following warning:

    You are not allowed to run this app with root permissions.
    If running without sudo doesn't work, you can either fix your permission problems or change where npm stores global packages by putting ~/npm/bin in your PATH and running:
    npm config set prefix ~/npm
    

    … in which I did the latter part, i.e. adding ~/npm/bin in my $home (had to create the directory) and include it in my $PATH.

    Still the same error. Any clues?


    Versions of binaries

    node 0.10.24 npm 1.3.21 pageres 0.2.3 phantomjs 1.9.7 (The one that came as a dependency when installing pageres)

    OS

    Mac OS X 10.9.1

    opened by hced 18
  • Add support for data URI

    Add support for data URI

    So I tried this using a data URI but it didn't work due to protocolify prepending http:// before the URL. This fixes that.

    Will also need to be fixed in the CLI.

    Fixes #254.

    opened by kevva 17
  • Google font

    Google font

    First Thank you very much for this.

    I used last time but it dose not display google font.

    <link rel='stylesheet' type='text/css' href='http://fonts.googleapis.com/css?family=Open+Sans:400,800,300'>
    

    but result image dose not display Open Sans font.. If you know this already I am so sorry.

    opened by wanybae 16
  • 100% coverage

    100% coverage

    Now that we have coverage checking we should get it to 100%.

    https://coveralls.io/r/sindresorhus/pageres

    We just run the following and dig into the report:

    npm run coverage -- --reporter=lcov
    

    Pull requests to improve this would be much appreciated :rabbit:

    enhancement 
    opened by sindresorhus 15
  • Improve docs

    Improve docs

    • [x] Document CLI more than just a --help dump. Do a tutorial or something
    • [x] Document the keywords that can be used instead of sizes. https://github.com/kevva/viewport-list/issues/2

    Feedback welcome on what else.

    enhancement help wanted 
    opened by sindresorhus 15
  • Added ability to specify cookies

    Added ability to specify cookies

    Using a .JSON file (see cookies.json), you can attach cookies to the phantom page request. This will allow you to capture pages that are behind a login wall.

    An issue exists for this at: https://github.com/sindresorhus/pageres/issues/41

    opened by green-arrow 15
  • ERR_CERT_AUTHORITY_INVALID

    ERR_CERT_AUTHORITY_INVALID

    hi, when i want to connect on resource with self signer certificate, i receive error:

    C:\Users\user>pageres --overwrite -d 10 --format=png --filename=image123.png "https://127.0.0.1
    file:///C:/Users/user/AppData/Roaming/npm/node_modules/pageres-cli/node_modules/puppeteer-core/lib/esm/puppeteer/common/Frame.js:210
                        ? new Error(`${response.errorText} at ${url}`)
                          ^
    
    Error: net::ERR_CERT_AUTHORITY_INVALID at https://127.0.0.1
        at navigate (file:///C:/Users/user/AppData/Roaming/npm/node_modules/pageres-cli/node_modules/puppeteer-core/lib/esm/puppeteer/common/Frame.js:210:23)
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
        at async Frame.goto (file:///C:/Users/user/AppData/Roaming/npm/node_modules/pageres-cli/node_modules/puppeteer-core/lib/esm/puppeteer/common/Frame.js:180:21)
        at async CDPPage.goto (file:///C:/Users/user/AppData/Roaming/npm/node_modules/pageres-cli/node_modules/puppeteer-core/lib/esm/puppeteer/common/Page.js:437:16)
        at async internalCaptureWebsiteCore (file:///C:/Users/user/AppData/Roaming/npm/node_modules/pageres-cli/node_modules/capture-website/index.js:282:2)
        at async internalCaptureWebsite (file:///C:/Users/user/AppData/Roaming/npm/node_modules/pageres-cli/node_modules/capture-website/index.js:162:10)
        at async Pageres.create (file:///C:/Users/user/AppData/Roaming/npm/node_modules/pageres-cli/node_modules/pageres/dist/index.js:226:28)
        at async file:///C:/Users/user/AppData/Roaming/npm/node_modules/pageres-cli/node_modules/p-map/index.js:141:20
    
    Node.js v18.12.1
    

    how to fix it?

    opened by ghost 0
  • Support for vercel

    Support for vercel

    Hey, It's an excellent project for capturing screenshots. but it works only on the local machines. I set it up on vercel, and it can't take screenshots and doesn't give any error. it just skips the step. Can you help with that?

    opened by mehedi-sharif 0
  • Error: EPERM: operation not permitted, unlink  errno: -4048

    Error: EPERM: operation not permitted, unlink errno: -4048

    I take screenshots of more than 10,000 websites. But sometimes in a way that I don't understand, the program crashes in this way and my program does not continue. Is there a solution for this? At the very least, I want the program to continue.

    crash

    opened by bkmzci 3
  • Default timeout is not working with pageres-cli when run with PowerShell

    Default timeout is not working with pageres-cli when run with PowerShell

    I am using pageres-cli and I found that the default timeout of 60 seconds as described in readme is not working if the command is run from PowerShell (default with new Windows Terminal). However with cmd.exe command completed within a few seconds with error as expected.

    For eg,. run following command in PowerShell and the command will never complete, at least in my machine.

    pageres https://www.google.com --overwrite --filename='google' --verbose --selector='.any-class'

    pageres-cli 0.6.0 Windows 10

    opened by venustulips 1
  • Capture a livecam page

    Capture a livecam page

    Trying to capture a page with a live cam. the page is https://www-cavaliernd-com.filesusr.com/html/269adf_63b45d747777ed5f4d4d231a41b34f81.html but the pic taken is (even when using a 10 sec delay to let the camera load) 2021-08-25-15-16-36

    opened by shaharsol 1
  • Retrieve

    Retrieve "final" URL after redirects

    This is not an issue (rather a feature request) but I would like to know if there is a way to retrieve the "final" URL of the page Pageres made the screenshot. Many pages have redirects e.g. requesting a screenshot with the url http://sap.com redirects me to https://www.sap.com/. Thanks!

    opened by MathiasVie 2
Releases(v7.1.0)
  • v7.1.0(Oct 27, 2022)

  • v7.0.0(Aug 30, 2022)

    Breaking

    • Require Node.js 14 64cd962
    • This package is now pure ESM. Please read this.
      • Please read the contents of the above link thoroughly. Most issues from upgrading will be related to that and not this package.
      • Please don't open issue regarding ESM.
    • Rename .src() method to .source() 29ad6d6
    • Rename .dest() method to .destination() 29ad6d6

    https://github.com/sindresorhus/pageres/compare/v6.3.1...v7.0.0

    Source code(tar.gz)
    Source code(zip)
  • v6.3.1(Mar 11, 2022)

  • v6.3.0(Jan 23, 2022)

  • v6.2.4(Jan 16, 2022)

  • v6.2.3(Jun 20, 2021)

  • v6.2.2(May 31, 2021)

  • v6.2.1(Mar 9, 2021)

  • v6.2.0(Mar 8, 2021)

  • v6.1.0(Dec 28, 2020)

  • v6.0.0(Dec 15, 2020)

  • v5.2.1(Aug 16, 2020)

  • v5.2.0(Sep 17, 2019)

  • v5.1.0(Mar 21, 2019)

  • v5.0.2(Feb 11, 2019)

    • Fix the format option https://github.com/sindresorhus/pageres/commit/499ca1d1159c4ffa90e33cd27de99e11df2c2650#diff-21e9ddd93162651bd36f6e5bbfca8460R256

    https://github.com/sindresorhus/pageres/compare/v5.0.1...v5.0.2

    Source code(tar.gz)
    Source code(zip)
  • v5.0.1(Feb 10, 2019)

  • v5.0.0(Feb 9, 2019)

    Breaking:

    • Switch from PhantomJS to Puppeteer (Chrome) 🎉 9685504
    • Require Node.js 8 f5a092a
    • pageres.run() now returns Promise<Buffer[]> instead of Stream[], where Buffer is the screenshot image. See the updated usage example.
    • You can no longer use protocol-less URLs. Use https://example.com instead of example.com.
    • The pageres.on('warning') event was removed
    • Linux users will need to enable system sandboxing if they get a "No usable sandbox!" error

    Other:

    • Add TypeScript definition 908e525 42ff5ae

    https://github.com/sindresorhus/pageres/compare/v4.5.1...v5.0.0

    Source code(tar.gz)
    Source code(zip)
  • v4.5.0(May 10, 2017)

  • v4.4.0(Mar 20, 2017)

  • v4.3.0(Jan 7, 2017)

    New option to increment the filename if a file with that name already exists, instead of overwriting. https://github.com/sindresorhus/pageres/commit/b91f0eaa835887d1aad15f2760a063c836bb3d38

    Source code(tar.gz)
    Source code(zip)
  • v4.1.1(Mar 19, 2016)

  • v4.1.0(Feb 6, 2016)

  • v4.0.0(Jan 26, 2016)

  • 3.0.2(Nov 30, 2015)

    • Fix crash on absolute local path. https://github.com/sindresorhus/pageres/commit/6bc31b1a8d4d4b0f73bb36417da5c4e65eee25a3

    https://github.com/sindresorhus/pageres/compare/v3.0.1...v3.0.2

    Source code(tar.gz)
    Source code(zip)
  • v3.0.1(Oct 26, 2015)

    Highlights

    The API is now promise based instead of using callbacks. 1fce7d10a430111bb175b2411816eaa464b44b55

    Support for Node.js 0.10 is dropped.

    Update

    $ npm install --save pageres
    

    Changes

    https://github.com/sindresorhus/pageres/compare/v2.1.0...v3.0.1

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Jul 25, 2015)

  • 2.0.0(Jun 21, 2015)

    We decided to split the CLI out into a separate module. This has the benefit of making the readme less messy and will make the pageres dependency tree smaller for those that only need the programmatic API.

    Update

    $ npm uninstall --global pageres && npm install --global pageres-cli
    

    Changes

    https://github.com/sindresorhus/pageres/compare/1.4.0...2.0.0

    Source code(tar.gz)
    Source code(zip)
  • 1.4.0(May 19, 2015)

  • v1.3.0(Apr 20, 2015)

    tumblr_nmkqf1mk751tlb56zo1_400

    Update

    $ npm install --global pageres
    

    Highlights

    • New userAgent option.
    • The callback in pageres.run() is now optional. 63b6e364a23bb9db649843aaffe03ab294891a63
    • Improved cleanup of temporary files on error. 71e5979be5f0f0f607be04696331fefaafa3c8d5

    Changes

    https://github.com/sindresorhus/pageres/compare/v1.2.2...v1.3.0

    Source code(tar.gz)
    Source code(zip)
  • v1.2.2(Mar 24, 2015)

Owner
Sindre Sorhus
Full-Time Open-Sourcerer. Wants more empathy & kindness in open source. Focuses on Swift & JavaScript. Makes macOS apps, CLI tools, npm packages. Likes unicorns
Sindre Sorhus
An application to capture screenshots automatically of your screen!

TASCA : The Automatic Screenshot Capturing Application An application to capture screenshots automatically of your screen! Report Bug · Request Featur

Piyush Sharma 1 Jan 27, 2022
AWS CDK stack for taking website screenshots (powered by Puppeteer)

CDK Screenshot (powered by Puppeteer) Made possible by the excellent Puppeteer. Install export AWS_PROFILE=myprofile export AWS_DEFAULT_REGION=us-east

Alexei Boronine 6 Oct 23, 2022
aka Scaletor, take screenshots of a piece of a map and scale/compare with other parts of the map

scale-a-tron A quick-and-dirty map that lets you compare one area to another. Draw a shape around a region, zoom in to another place on the map, and c

Stamen Design 24 Nov 7, 2022
Take screenshots easily in multidisplay setups!!

Best Screenshot App for people with multiple Displays. here's the best way to take screenshot of whole displays in a single click: ???? Download the b

null 16 Jul 21, 2022
A service to add web page screenshots to your Eleventy sites.

Screenshot API A runtime service to use live website screenshots on your site. Usage Image URLs have the formats: https://v1.screenshot.11ty.dev/:url/

Eleventy 91 Dec 24, 2022
A utility for taking screenshots of websites.

Tortor ⚡️ This is a website that allows you take screenshots of other websites. Simply enter the URL and a screenshot will be taken and available for

Timothy Ogbemudia 6 Jan 10, 2022
Open source app to beautify screenshots, quickly and easily

Codename: Pika What it does Lets you quickly beautify screenshots by adding rounded corners, background colors, shadows and more. You can copy the bea

Rishi Mohan 458 Dec 29, 2022
Create elegant screenshots of your source code. Built with SolidJS

Create elegant code screenshots of your source code. Introduction CodeImage is the newest tool to help developers to create beautiful screenshots of t

Riccardo Perra 602 Jan 3, 2023
This tool uses native browser APIs to take screenshots of a given web page, tab, window, or the user's entire screen.

This tool uses native browser APIs to take screenshots of a given web page, tab, window, or the user's entire screen.

xataio 761 Jan 1, 2023
When pasting screenshots into obsidian notes, convert the images to jpeg and compress them

obsidian-paste-png-to-jpeg This plugin is inspired by obsidian-paste-image-rename, obsidian-paste-image-rename can be used when inserting images renam

null 19 Nov 15, 2022
Changd is a open source web monitoring application for monitoring visual site changes using screenshots, XPath's or API's.

Changd is a open source web monitoring application and a free alternative to ChangeTower.com, Hexowatch.com, and other SaaS-based solutions. Changd ca

Paul Aschmann 110 Jan 3, 2023
A server setup to take screenshots against the green screen in-game.

alt:V Clothing Green Screener Support on Patreon. Seriously. Ever want screenshots of every single clothing item in GTA:V? Well this is your repositor

null 13 Dec 26, 2022
A JavaScript (and TypeScript) SDK for the ScreenshotOne.com API to take screenshots of any URL

jssdk An official Screenshot API client for JavaScript and TypeScript. It takes minutes to start taking screenshots. Just sign up to get access and se

ScreenshotOne.com 7 Oct 15, 2022
Screenshots with JavaScript

html2canvas Homepage | Downloads | Questions JavaScript HTML renderer The script allows you to take "screenshots" of webpages or parts of it, directly

Niklas von Hertzen 27.3k Jan 4, 2023
A simple but powerful tool to make your screenshots prettier.

SnipSnap A simple but powerful tool to make your screenshots prettier. Motivation I built SnipSnap because I wasn't happy with the other options as th

Faraz Patankar 15 Dec 16, 2022
thetool is a CLI tool to capture different cpu, memory and other profiles for your node app in Chrome DevTools friendly format

thetool thetool is a CLI tool to capture different cpu, memory and other profiles for your node app in Chrome DevTools friendly format. Quick start np

null 200 Oct 28, 2022
Email capture page using Notion API

Notion Capture This starter shows how to use the new Notion API with Next.js. You can capture emails that will populate a Notion database. Live Demo •

Bilal 61 Dec 25, 2022
Capture a famous phrase, download it without hassle and share it with your friends. 🎉

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Abraham Calsin 2 Mar 8, 2022
📷 Detects your face and adds filters from your webcam. You can capture and download images.

Snapchat Filters on WebCam ?? Detects your face and adds filters from your webcam. You can capture and download images. ?? Visit site ?? Screenshots ?

Orhan Emre Dikicigil 2 Apr 27, 2022
A quick capture plugin for Obsidian, all data from your daily notes.

Obsidian Memos 中文文档 A new way for you to quick capture an idea in Obsidian. Which is highly based on the awesome open source project: memos and awesom

Boninall 551 Jan 3, 2023