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

@citedspy/piece-citedspy

v0.0.2

Published

Track how your brand appears in AI answer engines - ChatGPT, Perplexity, Gemini, Copilot and Google AI Mode - with CitedSpy.

Readme

CitedSpy for Activepieces

Track how your brand appears in AI answer engines - ChatGPT, Perplexity, Gemini, Copilot and Google AI Mode - and drive automations from it.

CitedSpy runs your tracked prompts against the real consumer UIs of those engines and records what they said: whether your brand was mentioned, in what position, with what sentiment, and which sources they cited. This piece connects that data to Activepieces.

Install

The piece is not in the official Activepieces list, so install it by name:

Settings → My Pieces → Install Piece → @citedspy/piece-citedspy

Connect

Authentication is a CitedSpy API key.

  1. In CitedSpy, go to Settings → API keys
  2. Click New key, name it "Activepieces", and copy the value
  3. Paste it when Activepieces asks for a connection

The key starts with cspy_ and is shown only once. API keys are included from the Growth plan up; on Solo or a trial the connection is refused with a message explaining why.

Your connection is labelled with the workspace name and plan, so several CitedSpy workspaces are easy to tell apart.

Triggers

| Trigger | Fires | |---|---| | New Alert Triggered | Instantly, when a CitedSpy alert fires: sentiment turns negative, a competitor overtakes you, or a new citation source appears | | New Run Completed | When a prompt finishes running on an AI engine | | New Brand Mention | When your brand or a tracked competitor is named in an answer |

New Alert Triggered is a real webhook. The other two poll.

Every trigger can be scoped to one brand. New Brand Mention also filters by sentiment and by whether the mention is of your brand or a competitor - setting sentiment to Negative is the most useful configuration, because it tells you when an engine says something bad about you without notifying you about every neutral mention.

Actions

| Action | Does | |---|---| | Create Prompt | Adds a tracking prompt to one of your brands | | Trigger Prompt Run | Queues a prompt to run on the AI engines now | | Custom API Call | Any other CitedSpy v1 endpoint |

Trigger Prompt Run costs money. Each queued run is a real query against an AI engine and counts toward your usage. Do not put it on a frequent schedule.

Custom API Call reaches everything this piece does not wrap yet - dashboard metrics, the full report for a prompt, citations and recommendations. Give it a path such as /dashboard/YOUR_BRAND_ID; the base URL and your key are added for you. See the API reference.

Examples

Negative mentions to Slack - New Brand Mention with Sentiment Negative → Slack Send Message, including the prompt, the engine and the snippet.

A run history in Sheets - New Run Completed → Google Sheets Insert Row, mapping the engine, prompt, answer preview and cost.

Alerts become issues - New Alert Triggered → Linear or Jira Create Issue, using the alert type, brand and dashboard link.

Notes

  • Only enabled engines are offered. The engine picker lists engines switched on for your workspace, because filtering a flow to a disabled engine would mean it never fires.
  • Answers are shortened in lists. New Run Completed returns the first 500 characters plus the true length. Use Custom API Call against /runs/YOUR_RUN_ID for the complete text.
  • Polling reads the newest 200 records per check. A one-off burst larger than that can overflow a single check; normal scheduled refreshes are well inside it.

Links

License

MIT