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

paperclip-plugin-glasser

v0.1.0

Published

Paperclip plugin: Glasser's GTM Solution endpoints (web research, company intelligence, people search, SEO, social, US market data) as agent tools. One Glasser Key, many data providers.

Readme

paperclip-plugin-glasser

GTM data for your Paperclip agents. This plugin exposes Glasser's six Solution endpoints as agent tools:

| Tool | What the agent gets | |---|---| | web_research | Web, news, places, scholar, shopping, image and video search; read a page; an answer with sources | | company_intelligence | Company profile and firmographics, technology stack, website traffic, similar companies, funding, news, from a domain | | people_search | Contacts by title, seniority, location or employer; enrich one person; find a work email | | seo_research | Keyword volume and difficulty, keyword ideas, Google results, domain overview, ranking keywords, backlinks, domain rating | | social_research | Search posts, read a profile or channel, fetch one post, or find an account's other profiles on Reddit, X, YouTube, TikTok, Instagram and LinkedIn | | market_data | US property values, rent estimates, property records, listings, ZIP market statistics, stock quotes |

One Glasser Key covers every provider behind these tools (Apollo, People Data Labs, Hunter, Semrush, Ahrefs, DataForSEO, Serper, Exa, ScrapeCreators, TikHub, RentCast and more). Glasser picks the provider unless the agent names one, and each call is one run billed at the routed endpoint's published price. Every run is visible in the Glasser console with its charge.

Install

npx paperclipai plugin install paperclip-plugin-glasser

Then, in Paperclip:

  1. Create a Glasser Key at https://app.glasser.ai/keys.
  2. Add it under Settings → Secrets.
  3. Open the Glasser plugin's settings and bind the secret to Glasser Key.

Every agent in the company can now call the six tools; Paperclip's per-agent tool permissions apply as usual.

How a call works

The agent calls a tool with the fields the contract defines, for example:

{ "platform": "x", "mode": "search", "query": "breaking news" }

The plugin POSTs that body to https://api.glasser.ai/v1/solutions/gtm/social_research with an Idempotency-Key, waits for the run to finish (polling GET /v1/runs/{id} when the API answers 202), and returns:

  • content: a short summary — status, provider and endpoint, charge, the run URL;
  • data: the run itself, with the provider's output. A very large output is trimmed to fit the agent's context and says so; the full output stays at the run URL.

A refused call (for example a missing field) returns Glasser's own error, with the field it points at, so the agent can correct and retry. Retrying with the same idempotency_key never charges twice.

The plugin adds nothing to the API: no routing, no provider choice, no pricing. Those live in Glasser, and the same tool definitions are used by the Dify plugin and the n8n node.

Company template

templates/gtm-company/ is a ready-made Paperclip company that runs on these tools: a CEO, a sales researcher, a market researcher and an SEO marketer, with a skill that tells them which tool answers which question and how to keep spend small. Import it as a new company, or attach its gtm team under your own CEO. See templates/gtm-company/README.md.

Development

npm install
npm run gen          # regenerate src/tools.generated.ts from contract/openapi.json
npm run gen:refresh  # refresh that snapshot from https://glasser.ai/docs/openapi.json first
npm test
npm run build

src/tools.generated.ts is generated from Glasser's OpenAPI document and committed; CI fails if it drifts from the snapshot. Do not edit it by hand.

Release: bump version in package.json, commit on main, tag the bare semver (0.2.0), push the tag. The Publish workflow publishes to npm with a provenance statement.

License

MIT © Glasser