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

zapless

v0.5.6

Published

Give your AI agent superpowers

Readme

zapless-cli

CLI for Zapless — give your AI agent access to Gmail, GitHub, Slack, Notion and more.

Install

curl -fsSL https://zapless.app/install.sh | sh

Setup

Get your install token from zapless.app/dashboard, then:

zapless auth login --token <your-token>

Commands

Auth

zapless auth login --token <token>   # Authenticate
zapless auth logout                  # Clear session
zapless auth status                  # Show current user + connected apps

Gmail

zapless gmail read [--limit 10] [--unread]
zapless gmail search --query <query>
zapless gmail get --id <message-id>
zapless gmail send --to <email> --subject <subject> --body <text>
zapless gmail reply --id <message-id> --body <text>
zapless gmail forward --id <message-id> --to <email>
zapless gmail trash --id <message-id>
zapless gmail mark --id <message-id> --read|--unread
zapless gmail labels
zapless gmail draft create --to <email> --subject <subject> --body <text>
zapless gmail draft send --id <draft-id>

Google Calendar

zapless calendar list [--limit 10] [--from <date> --to <date>]
zapless calendar get --id <event-id>
zapless calendar create --title "<title>" --start "<datetime>" --end "<datetime>"
zapless calendar update --id <event-id> --title "<title>"
zapless calendar delete --id <event-id>

Google Drive

zapless drive list [--limit 20] [--query "<query>"]
zapless drive get --id <file-id>
zapless drive upload --file <path>
zapless drive download --id <file-id> --out <path>
zapless drive share --id <file-id> --email <email> --role viewer|editor
zapless drive delete --id <file-id>

Google Docs

zapless docs list [--limit 20]
zapless docs get --id <doc-id>
zapless docs create --title "<title>"
zapless docs append --id <doc-id> --text "<text>"

Google Sheets

zapless sheets list [--limit 20]
zapless sheets get --id <sheet-id>
zapless sheets read --id <sheet-id> --range <range>
zapless sheets create --title "<title>"
zapless sheets write --id <sheet-id> --range <range> --values "<rows>"
zapless sheets append --id <sheet-id> --range <range> --values "<rows>"

Google Slides

zapless slides list [--limit 20]
zapless slides get --id <presentation-id>
zapless slides create --title "<title>"

Google Meet

zapless meet list [--limit 10]
zapless meet get --id <event-id>
zapless meet create --title "<title>" --start "<datetime>" --end "<datetime>" [--attendees <email1,email2>]

GitHub

zapless github repos list [--limit 20] [--visibility public|private|all]
zapless github repos get --owner <owner> --repo <repo>
zapless github issues list --owner <owner> --repo <repo> [--state open|closed]
zapless github issues create --owner <owner> --repo <repo> --title "<title>" [--body "<body>"]
zapless github prs list --owner <owner> --repo <repo> [--state open|closed]
zapless github prs create --owner <owner> --repo <repo> --title "<title>" --head <branch> --base <branch>

Slack

zapless slack channels list [--limit 50]
zapless slack messages send --channel <channel-id-or-name> --text "<text>"
zapless slack members list [--limit 50]

Notion

zapless notion pages list [--limit 20]
zapless notion pages get --id <page-id>
zapless notion pages create --title "<title>" --parent <page-id> [--content "<text>"]
zapless notion databases list [--limit 20]
zapless notion databases query --id <database-id> [--limit 20]

Utilities

zapless apps list           # List connected apps
zapless skill               # Print skill instructions for connected apps
zapless doctor              # Diagnose connection + auth issues
zapless update              # Update CLI to latest version

How It Works

The CLI has zero secrets. It holds only your install_token locally (~/.zapless/session.json). All API calls are proxied through the Zapless server, which holds your encrypted OAuth tokens and calls the relevant APIs on your behalf.

  • OAuth lives on the server, never in the CLI
  • Tokens are AES-256-GCM encrypted at rest
  • If the CLI is compromised, the attacker only gets an install token

Using with Claude Code

Install the zapless-plugin to automatically inject Zapless context into every Claude Code session:

claude plugin install zapless@T31K/zapless-plugin

License

MIT