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

whatsapp-coexistence-skill

v1.0.0

Published

Skill for your agent — reference guide for integrating WhatsApp Business messaging into any application through a third-party BSP (Coexistence-style API). Provider-, database-, and framework-agnostic.

Readme

whatsapp-coexistence-skill

A skill for your agent — reference guide for integrating WhatsApp Business messaging into any application through a third-party BSP (Business Solution Provider) that offers a Coexistence-style API. Coexistence is the official Meta partner channel where vetted BSPs hold the WABA on your behalf, as an alternative to provisioning your own via Embedded Signup. Provider-, database-, and framework-agnostic.

Author: Sebastián Haoys License: MIT

Disclaimer. Not affiliated with, endorsed by, or sponsored by WhatsApp LLC or Meta Platforms, Inc. WhatsApp is a trademark of WhatsApp LLC. This is an independent reference guide and ships pattern-level guidance only — bring your own framework, ORM, and auth.

Install

# Detect every supported agent folder in ~/ and copy the skill into each
npx whatsapp-coexistence-skill

# Same, but commit-friendly per-repo install (./.<agent>/skills/)
npx whatsapp-coexistence-skill --project

# Restrict to one agent; creates the folder if it doesn't exist
npx whatsapp-coexistence-skill --agent claude-code

# Skip the confirm prompt
npx whatsapp-coexistence-skill --yes

Supported agent ids (mirrors the autoskills / skills ecosystem map): claude-code, cline, junie, codebuddy, continue, kiro-cli. If none of those folders exist, the installer falls back to .claude/skills/ (Claude Code is the canonical home of this skill format).

What's inside the skill

SKILL.md covers, BSP-agnostic and DB-engine-agnostic:

  • Architecture: provider column on phones/conversations/messages, dedup by external id, source-timestamp invariant
  • Webhook ingest: HMAC signature verification on raw bytes, always-200 response, raw-log-then-process pattern
  • Outbound send: provider-agnostic adapter interface (text / media / template / templates list / mark-as-read / media download)
  • Media: on-disk layout, signed short-lived public URLs for BSP fetch, RFC-5987 filename headers, 60-day retention cleanup
  • 24-hour service window: state machine, server-side enforcement, composer UX, template selector flow
  • Phone matching: locale-aware key derivation + fallback for sloppy CRM data
  • CRM linking: cached pointer + manual many-to-many, dynamic resolution at read time
  • Chat UI: two-pane layout, polling without thrash, scroll anchoring, status icons, channel filter, dual-mode search
  • File handling: pictures / PDFs / audio / video / voice notes, MIME tables, size caps, in-bubble rendering
  • Common mistakes checklist
  • Suggested file layout

references/multi-bsp-adapter.md covers running two BSPs in parallel during migration or per-number routing.

Use after install

Once installed, your agent loads the skill automatically. Invoke explicitly with /whatsapp-coexistence-bsp or just describe a WhatsApp-BSP task and your agent will pick it up.