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

pm-slack

v2026.5.27

Published

Slack notifications for pm item lifecycle events

Readme

pm-slack

Slack notifications for pm-cli item lifecycle events.

Fires after create, close, and block operations and posts a formatted message to a Slack incoming webhook.


Installation

pm ext install pm-slack

Or clone and link for local development:

git clone https://github.com/unbraind/pm-slack.git
cd pm-cli-ext-slack
npm install
npm run build
pm ext link .

Setup

1. Create a Slack Incoming Webhook

  1. Go to api.slack.com/apps and create a new app (or use an existing one).
  2. Under Features → Incoming Webhooks, activate incoming webhooks.
  3. Click Add New Webhook to Workspace and choose a channel.
  4. Copy the webhook URL into your shell environment.

2. Set environment variables

| Variable | Required | Default | Description | |---|---|---|---| | PM_SLACK_WEBHOOK | Yes | — | Slack incoming webhook URL | | PM_SLACK_CHANNEL | No | — | Channel hint appended to messages (e.g. #pm-alerts) | | PM_SLACK_MIN_PRIORITY | No | 1 | Minimum priority to notify (1=critical, 2=high, 3=medium, 4=low) | | PM_SLACK_EVENTS | No | create,close,block | Comma-separated list of events to notify on |

Export them in your shell profile or .env:

export PM_SLACK_WEBHOOK="<slack-webhook-url>"
export PM_SLACK_CHANNEL="#pm-alerts"
export PM_SLACK_MIN_PRIORITY=2   # only critical + high
export PM_SLACK_EVENTS="create,close"  # skip block notifications

Event Types

| Event | Trigger commands | Notes | |---|---|---| | create | pm add, pm create, pm new | Fires when a new item is created | | close | pm close, pm done, pm complete | Fires when an item is closed/resolved | | block | pm update --status blocked, pm set status blocked | Fires when an item's status changes to blocked |


Message Format

Item created

*[Feature]* Auth system created 🆕
Priority: high • Type: Feature • By: alice

Item closed

*[Issue]* Login redirect bug closed ✅
Reason: Fixed in commit abc123

Item blocked

*[Epic]* Dashboard redesign is blocked 🚫
Reason: Waiting on design approval

When PM_SLACK_CHANNEL is set, a channel hint is appended to every message:

*[Feature]* Auth system created 🆕
Priority: high • Type: Feature • By: alice
_Channel: #pm-alerts_

Filtering

By priority

Only notify for high-priority and above:

PM_SLACK_MIN_PRIORITY=2

Priority scale: 1 = critical, 2 = high, 3 = medium, 4 = low.
The filter passes items whose priority number is less than or equal to the minimum (i.e. higher priority).

By event type

Only notify on create and close, not block:

PM_SLACK_EVENTS="create,close"

Error Handling

  • If PM_SLACK_WEBHOOK is not set, the extension silently skips all notifications and logs a debug message.
  • If the webhook URL is invalid, the extension logs an error and continues without crashing pm-cli.
  • HTTP errors from Slack (non-2xx responses) are logged but do not fail the pm-cli command.
  • Network timeouts are set to 10 seconds.

Development

npm install
npm run build        # compile TypeScript → dist/
npm run dev          # watch mode

The extension uses only Node.js built-ins (node:https) — no external runtime dependencies.


Manifest

{
  "name": "pm-slack",
  "version": "0.1.0",
  "description": "Slack notifications for pm item lifecycle events",
  "author": "@unbraind",
  "entry": "index.js",
  "priority": 50,
  "capabilities": ["hooks", "services"]
}

License

MIT

Release Automation

This package is release-ready for GitHub, npm, and Bun-compatible installs. CI runs type checking, build, production dependency audit, package packing, Bun install verification, and pm-changelog validation. The daily release workflow publishes only when commits exist after the latest release tag and uses pm-changelog to generate CHANGELOG.md and GitHub release notes.