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

netpad-cli

v0.8.0

Published

NetPad CLI for plugin management, workflows, and more.

Readme

NetPad CLI 🚀

A professional CLI tool for managing NetPad plugins, workflows, and more.

npm version Node.js Version License: MIT

Features

  • 🔌 Plugin Management - Create, publish, and list NetPad plugins
  • 🔐 Authentication - OAuth2 device code flow with Google/GitHub
  • 📦 Scaffolding - Multiple plugin templates (basic, API, database, transformer)
  • Validation - Comprehensive plugin validation and testing
  • 🌐 Multi-Instance - Support for SaaS and self-hosted NetPad instances

Installation

# Install globally via npm
npm install -g netpad-cli

# Verify installation
netpad-cli --version

Quick Start

# Authenticate with NetPad
netpad-cli login --google

# Create a new plugin
netpad-cli plugin create my-awesome-plugin

# Validate plugin (dry run)
netpad-cli plugin publish --dry-run

# Publish to NetPad
netpad-cli plugin publish

# List available plugins
netpad-cli plugin list

Commands

Plugin Management

netpad-cli plugin create <name>         # Scaffold a new plugin
netpad-cli plugin publish [path]        # Publish a plugin
netpad-cli plugin publish --dry-run     # Validate without publishing
netpad-cli plugin list                  # List available plugins
netpad-cli plugin list --scope public   # Filter by scope

Authentication

netpad-cli login                         # Interactive login
netpad-cli login --google               # Google OAuth
netpad-cli login --github               # GitHub OAuth
netpad-cli logout                       # Clear credentials
netpad-cli whoami                       # Show auth status

Other Commands

netpad-cli status                       # NetPad instance status
netpad-cli help                         # Show all commands

Authentication

NetPad CLI uses OAuth2 Device Code Flow for secure authentication:

  1. Run login command: netpad-cli login --google
  2. Visit verification URL: CLI opens browser automatically
  3. Enter device code: Complete OAuth in browser
  4. CLI receives token: Stored securely in ~/.netpadrc

Supports Google OAuth, GitHub OAuth, and email/password authentication.

Plugin Development

Create Plugin

# Interactive creation
netpad-cli plugin create my-plugin

# Choose from templates:
# - Basic: Simple data processing
# - API: External API integration  
# - Database: Database connectivity
# - Transformer: Data transformation

Plugin Structure

my-plugin/
├── manifest.json          # Plugin metadata
├── package.json          # Node.js dependencies
├── src/
│   ├── runner.js         # Plugin execution logic
│   ├── shape.js          # UI component definition
│   └── icon.svg          # Plugin icon
├── tests/
│   └── runner.test.js    # Unit tests
└── README.md             # Documentation

Publishing

# Validate plugin
netpad-cli plugin publish --dry-run

# Publish to NetPad
netpad-cli plugin publish

# Check status
netpad-cli plugin list --scope private

Configuration

The CLI stores configuration in ~/.netpadrc:

{
  "apiKey": "mcp_your_api_key_here",
  "baseUrl": "https://netpad.io"
}

Requirements

  • Node.js: >=16.0.0
  • NetPad Instance: Compatible with NetPad v2.0+
  • Authentication: Valid NetPad account

Examples

Example 1: Create and Publish Plugin

# Create plugin
netpad-cli plugin create url-shortener

# Edit plugin files
cd url-shortener
# ... implement your logic ...

# Test and publish
netpad-cli plugin publish --dry-run
netpad-cli plugin publish

Example 2: Different NetPad Instance

# Login to custom instance
netpad-cli login --url https://my-netpad.company.com

# Create and publish
netpad-cli plugin create company-plugin
netpad-cli plugin publish

Troubleshooting

Common Issues

Authentication Failed

# Check auth status
netpad-cli whoami

# Re-authenticate
netpad-cli login --google

Plugin Validation Errors

# Check detailed validation
netpad-cli plugin publish --dry-run

# Common fixes:
# - Ensure manifest.json is valid
# - Check all required files exist
# - Verify plugin name format

Connection Issues

# Check NetPad status
netpad-cli status

# Verify URL and connectivity
netpad-cli login --url https://your-netpad-instance.com

Development

Local Development

# Clone repository
git clone https://github.com/mrlynn/netpad-cli.git
cd netpad-cli

# Install dependencies
npm install

# Run locally
node bin/netpad-cli.js --help

# Run tests
npm test

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Add tests for new functionality
  5. Run tests: npm test
  6. Commit changes: git commit -m 'Add amazing feature'
  7. Push to branch: git push origin feature/amazing-feature
  8. Open a Pull Request

Links

License

MIT License - see LICENSE file for details.

Author

NetPad Team - [email protected]


🚀 Build amazing NetPad plugins with ease!