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

moattai

v0.2.0

Published

GTM skills for AI coding agents — installable via npx moatt install <slug>

Readme

Moatt Skills

Cancel your growth SaaS stack. 228 skills your AI coding agent installs and runs through one key — across 24 vendors, one credit balance, one bill.

17 categories of growth work — sales, SEO, AI search visibility, competitor intel, content, signals, inbound, video — refactored as open-source Markdown skills for Claude Code, Cursor, and Codex.

npm version License: MIT

The CLI is published on npm as moattai. The binary on your PATH is moatt.


What this replaces

| Category | Tools you can stop paying for | |---|---| | Sales prospecting | Apollo · ContactOut · LeadIQ | | Lead enrichment | Clay · Clearbit · People Data Labs | | Email finding | Hunter · Tomba · Snov | | Outbound campaigns | Smartlead · Lemlist · Instantly | | Inbound ops | UserGems · Pocus · Default · Chili Piper | | AI search visibility | Profound · AthenaHQ · Otterly | | SEO | Ahrefs · Semrush · Surfer · Frase | | Competitor intel | Crayon · Klue · SimilarWeb | | Brand monitoring | Brand24 · Mention · Brandwatch | | Ad intel | AdSpyder · Foreplay · Magic Brief | | Buying signals | UserGems · Crystal Knows · Champify | | Content creation | Jasper · Copy.ai · Lavender | | LinkedIn intel | PhantomBuster · Dripify · Surfe | | Pipeline ops | Gong · Chorus · Outreach | | Customer research | UserInterviews · Dovetail | | Influencers / KOLs | Aspire · Modash · Upfluence | | Video & voice | Synthesia · HeyGen · Tavus · Descript |

Browse the full catalog →


In 30 seconds

npx moattai login
npx moattai install champion-departure-trigger

Then in Claude Code / Cursor / Codex:

"Did any of our past champions change jobs recently?"

The skill scans LinkedIn and the web for role changes among past buyers, qualifies the new accounts against your ICP, and drafts a warm re-intro from you — both a retention nudge for the old account and a fresh expansion play for the new one.

One install. One question. No vendor dashboards, no per-tool keys.


The catalog at a glance

  • 148 moves — atomic skills, one job each
  • 64 plays — orchestrated workflows
  • 5 moats — durable systems run on a schedule
  • 2 kits — themed bundles (11 skills total)
  • 24 vendors behind one proxy, one credit balance, one bill

A few skills that show what it can do

| Skill | Level | What it does | |---|---|---| | ad-angle-miner | play | Mines the highest-converting ad angles from customer reviews, Reddit complaints, support tickets, and competitor ads — ranked with proof quotes | | champion-departure-trigger | play | Detects when past customer champions take new jobs, then fires both retention + warm-expansion outreach | | battlecard-generator | play | Builds sales battlecards from competitor website + reviews + ads + pricing | | funding-signal-outreach | play | Detects fresh funding rounds in a company list, finds the right buyers, drafts personalized emails | | meeting-brief | play | Daily calendar scan → researches every external attendee → emails personalized briefs each morning | | geo-audit | move | Audits a site for AI-search (ChatGPT, Perplexity, Claude, Gemini) citation readiness with a prioritized fix list | | alternatives-to-page-builder | play | Builds "best alternatives to [Competitor]" SEO pages grounded in DataForSEO SERP data | | outbound-prospecting-engine | moat | Stands up the full outbound system: signal detection → research → contact finding → personalization → launch |

Search the catalog → · Full skills index →


The four levels

Skills compose in four levels. Each one wraps the level below — pick the right level for the job you're trying to do.

Moves (148)

Atomic skills. One skill, one job: find an email, scrape a page, run a search, pull brand assets.

email-finder-hunter — finds emails for a domain via Hunter.io geo-audit — scores your site's AI-search citation readiness linkedin-scraper — pulls profiles, company pages, posts

Reach for a move when you know the exact data you need.

Plays (64)

Orchestrated workflows. A play chains multiple moves into one end-to-end job — input → processing → output.

champion-departure-trigger — detects when past customer champions take new jobs, then fires retention + warm-expansion outreach ad-angle-miner — mines ad copy angles from reviews, Reddit, support tickets, and competitor ads battlecard-generator — builds sales battlecards from competitor website, reviews, ads, and pricing

Reach for a play when you want a recurring growth job done in one ask.

Moats (5)

Durable systems run on a schedule. Moats take longer to set up, then keep producing for months. They're your AI agent's permanent job.

outbound-prospecting-engine — full outbound system: signal detection → research → contact finding → personalization → launch competitor-monitoring-system — daily competitive intel across web, social, and news with delta reports

Reach for a moat when you want a pipeline that keeps running without you.

Kits (2)

Curated bundles. A kit ships several skills that go together for a specific motion — one install, the whole toolkit.

lead-gen-devtools (6 skills) — discovery orchestrator, GitHub repo signals, community signals, competitor signals, event signals, personalized demo builder video-production (5 skills) — beat-synced reels, AI-animated product reels, talking-head videos, long-form to short-form clipping, screen-rec polish

Reach for a kit when you're starting a new motion and want everything at once.


Install

# One-off (recommended for first try)
npx moattai login
npx moattai install <slug>

# Or install globally so you can type `moatt` directly
npm install -g moattai
moatt login
moatt install <slug>

After install, ask your AI coding agent to do something a skill covers — it picks the right skill and runs it.

Commands below use moatt (global install) — prefix with npx moattai if you didn't install globally.

Install flags

moatt install <slug> --claude              # Force a single target
moatt install <slug> --cursor --project-dir .
moatt install <slug> --force               # Convert legacy installs to symlinks

Find and refresh

moatt search "<query>"                     # JSON output (agent-friendly)
moatt search "<query>" --human --limit 5   # Human-readable list
moatt list                                 # Full catalog
moatt info <slug>                          # Details for one skill or kit
moatt update                               # Refresh every installed skill
moatt update <slug>                        # Refresh one

Where skills go on disk

Skills follow a canonical-store + symlinks layout so one update reaches every agent:

~/.agents/skills/<slug>/                   ← canonical files (single source of truth)
~/.claude/skills/<slug>     → symlink ──→ ~/.agents/skills/<slug>
~/.codex/skills/<slug>      → symlink ──→ ~/.agents/skills/<slug>
<project>/.cursor/rules/moatt-<slug>.mdc   ← real file (Cursor's rule format requires inline content)

moatt install is idempotent — re-running it on an already-installed skill is a no-op. moatt update refreshes the canonical copy and every symlink picks up the new content automatically.


How it works

Each skill ships as a self-contained directory: SKILL.md (agent-readable instructions), skill.meta.json (catalog metadata), and any helper scripts. The CLI fetches these from this repo and lands them in the right place for your agent.

Most skills route API calls through the Moatt proxy with usage-based billing. One key (MOATT_API_KEY) covers all 24 upstream vendors — no juggling vendor accounts, no separate bills.

moatt login

This opens your browser, signs you in, lets you pick a default project, and writes the issued key to ~/.moatt/credentials.json (chmod 0600). Skills read that file and send Authorization: Bearer <key> on every proxy call.

Auth commands

moatt login              # Browser-based login + project picker
moatt logout             # Clear local credentials (key stays valid on server)
moatt logout --all       # Also revoke the key on the server
moatt whoami             # Email, org, current project
moatt status             # whoami + credit balance + key info
moatt credits            # Print credit balance (JSON; --human for table)
moatt projects list      # List all projects your key can use
moatt switch <slug>      # Change the default project (local, no browser)

moatt switch is the gh-CLI-style flow: one login mints a single key for your org, then flip between any project you have access to without re-authenticating.

Credentials file shape

{
  "api_key": "mk_...",
  "api_base": "https://moatt.com",
  "email": "[email protected]",
  "userId": "user_...",
  "clerkOrgId": "org_...",
  "orgName": "Acme",
  "currentProject": "acme-marketing",
  "projects": [
    { "id": "...", "slug": "acme-marketing", "name": "Acme Marketing" },
    { "id": "...", "slug": "acme-seo",       "name": "Acme SEO" }
  ],
  "loggedInAt": "..."
}

Keys use snake_case so skills can read them with one-line Python snippets like:

export MOATT_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.moatt/credentials.json'))['api_key'])")

Repository layout

moatt-skills/
├── bin/                      # CLI entry-point (published as `moattai` on npm)
├── schemas/                  # JSON Schema for skill + kit metadata
├── scripts/                  # validate-skills, build-index
├── skills/
│   ├── moves/                # atomic skills
│   ├── plays/                # orchestrated chains
│   ├── moats/                # end-to-end systems
│   └── kits/                 # curated bundles
├── tools/                    # shared Python helpers (Apify guard, DataForSEO proxy)
├── skills-index.json         # auto-generated full catalog
└── registry.json             # auto-generated curated registry

Skill metadata contract

Every skill ships two required files.

SKILL.md — Markdown with YAML frontmatter:

---
name: my-skill
description: >
  One paragraph explaining what the skill does and when an agent
  should reach for it.
tags: [lead-generation, research]
---

(skill body — instructions for the agent, code blocks, examples)

skill.meta.json — registry metadata:

{
  "slug": "my-skill",
  "category": "moves",
  "tags": ["lead-generation", "research"],
  "installation": {
    "base_command": "moatt install my-skill",
    "supports": ["claude", "cursor", "codex"]
  }
}

Optional fields override auto-derived registry entries: name (display name), version, argumentHint, domain, appName, changelog. See schemas/skill-meta.schema.json for the full contract.


Building from source

git clone https://github.com/Moatt/moatt-skills.git
cd moatt-skills
npm install
npm run validate:skills        # Lint every skill against the schema
npm run build:index            # Regenerate skills-index.json + registry.json

The catalog builder reads SKILL.md frontmatter and skill.meta.json, walks any helper files under each skill directory, and emits two JSON files at the repo root.


Contributing

Adding a new skill takes three files: a directory under skills/<level>/<slug>/, a SKILL.md, and a skill.meta.json. Run npm run validate:skills to lint, npm run build:index to refresh the catalog, then open a PR.

See CONTRIBUTING.md for the full guide.


License

MIT — see LICENSE.