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

@gas-plugin/cli

v0.1.2

Published

Extensible CLI tool for scaffolding Google Apps Script projects

Readme

@gas-plugin/cli

CI codecov npm Version License: MIT

Extensible CLI tool for scaffolding Google Apps Script projects. Generates a ready-to-build project with your choice of bundler and template.

Quick Start

# npm
npx @gas-plugin/cli create

# yarn
yarn dlx @gas-plugin/cli create

# pnpm
pnpm dlx @gas-plugin/cli create

Follow the interactive prompts to choose a project name, template, and bundler.

Note: The CLI automatically detects which package manager you used to run it and uses the same one for dependency installation and "Next steps" output.

Usage

Interactive (default)

npx @gas-plugin/cli create

Non-interactive

Use --yes to accept all defaults, or pass flags explicitly:

npx @gas-plugin/cli create my-project
# Example with pnpm
pnpm dlx @gas-plugin/cli create my-app \
  --template webapp \
  --bundler vite \
  --clasp \
  --script-id YOUR_SCRIPT_ID

Options

| Option | Alias | Type | Default | Description | |--------|-------|------|---------|-------------| | name | | positional | — | Project name (prompted if omitted) | | --template | -t | basic | webapp | basic | Project template | | --bundler | -b | vite | rollup | esbuild | webpack | bun | vite | Bundler to use | | --install | | boolean | true | Install dependencies after scaffolding | | --clasp | | boolean | true | Include .clasp.json and .claspignore | | --script-id | | string | — | GAS Script ID for .clasp.json (requires --clasp) | | --force | | boolean | false | Skip target directory confirmation | | --yes | -y | boolean | false | Use defaults for all prompts |

Templates

basic

Spreadsheet automation with an onOpen trigger.

src/
├── index.ts    # onOpen(), runScript(), greet()
└── utils.ts    # formatDate(), log()

webapp

Web app with doGet/doPost and an HTML client.

src/
├── index.ts      # doGet(), doPost(), processRequest()
├── utils.ts      # getCurrentUserEmail(), log()
└── client.html   # HTML template served by doGet

Generated Project Structure

my-project/
├── src/
│   ├── index.ts          # GAS entry points
│   ├── utils.ts          # Utility functions
│   └── client.html       # (webapp only)
├── package.json          # Dependencies and build script
├── appsscript.json       # GAS manifest (OAuth scopes, V8 runtime)
├── tsconfig.json         # TypeScript config
├── biome.json            # Linter / formatter config
├── vite.config.ts        # Bundler config (varies by choice)
├── .gitignore
├── .clasp.json           # (when --clasp is used)
├── .claspignore          # (when --clasp is used)
└── README.md

Bundler Support

| Bundler | Config File | Build Command | |---------|-------------|---------------| | Vite | vite.config.ts | vite build | | Rollup | rollup.config.mjs | rollup -c | | esbuild | esbuild.config.mjs | node esbuild.config.mjs | | webpack | webpack.config.mjs | webpack | | Bun | bun.build.ts | bun run bun.build.ts |

All bundler configs use @gas-plugin/unplugin under the hood.

License

MIT