npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

peepbo

v1.0.1

Published

A lightweight Linux automation tool for mouse, keyboard, and screenshots. Inspired by Peekaboo.

Downloads

10

Readme

Peepbo 🫣

Peepbo is a lightweight, Node.js + TypeScript automation tool for Linux, inspired by Peekaboo. It allows you to programmatically control your mouse, keyboard, and window focus, as well as capture screenshots, making it ideal for building AI agents that interact with the Linux desktop.

License: MIT Node TypeScript

Features

  • 👀 See: Capture screenshots (scrot, gnome-screenshot, imagemagick, or gdbus for Wayland).
  • point_up Click: Move mouse and click (xdotool).
  • keyboard Type: Type text and press key combinations.
  • window Window Management: Focus and query active windows.
  • TypeScript: Fully typed for safety.

Requirements

Peepbo relies on standard Linux automation tools. You can check for them using the built-in verify command:

peepbo verify

Typically, you will need:

  • xdotool (for automation)
  • libglib2.0-bin (for gdbus screenshots on GNOME Wayland)
  • scrot or imagemagick (fallback for X11 screenshots)

Installation

From npm (Recommended)

npm install -g peepbo

From Source

# Clone the repository
git clone https://github.com/LichAmnesia/peepbo.git
cd peepbo

# Install dependencies
npm install

# Build the project
npm run build

# Link globally (optional)
npm link

Usage

You can run Peepbo directly via node:

# Link for global usage (optional)
npm link

# Capture a screenshot
peepbo image --output capture.png

# Click at specific coordinates
peepbo click --x 500 --y 300

# Type text
peepbo type "Hello World"

# Press a key combo
peepbo key "ctrl+c"

# Focus a window
peepbo window focus "Code"

Troubleshooting: Wayland & Black Screenshots

On modern Linux distributions (like Ubuntu 24.04/25.10) using Wayland, you might encounter completely black screenshots. Peepbo handles this via GNOME's D-Bus API, but it requires GNOME to be in "Unsafe Mode" to allow external script interaction.

⚠️ Hardcore Solution: Enabling "Unsafe Mode"

Enabling Unsafe Mode allows external processes to interact with GNOME Shell internals. This is powerful for automation but bypasses some default security sandboxing.

  1. Open Looking Glass: Press Alt + F2, type lg, and hit Enter.
  2. Execute Command: In the console that appears, type the following and press Enter:
    global.context.unsafe_mode = true
  3. Exit: Press Esc to close the console.

Note: This setting resets on logout/reboot. If you prefer not to use this, consider switching to an X11 (Xorg) session from the login screen.

Documentation

Development

# Watch mode for development
npm run build -- --watch

License

ISC