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

multica-slack-assistant

v2.0.0

Published

Conversational Slack AI agent (Claude) that chats in DMs, the assistant pane, and channel threads, and files issues to Multica via tool use. Runs in Socket Mode — no public URL needed.

Downloads

312

Readme

Multica Slack Assistant

A conversational Slack AI agent powered by Claude. People can chat with it in direct messages, the assistant pane (Slack's Agents & AI Apps), and channel threads (by @mentioning it). When someone describes a real bug or problem, the agent files an issue to Multica on its own using a tool — no copy-paste, no forms.

Runs in Socket Mode (no public URL). It's a long-lived process and relies on Bolt's Socket Mode to reconnect.


Run it

Run it from anywhere — no clone, no install needed:

npx multica-slack-assistant

It reads config from the environment. Either put a .env in the folder you run it from (see Configuration), or pass the values inline:

SLACK_BOT_TOKEN=xoxb-… SLACK_APP_TOKEN=xapp-… ANTHROPIC_API_KEY=sk-ant-… \
  MULTICA_WEBHOOK_URL=https://… npx multica-slack-assistant

From a local clone (for development)

git clone <repo-url> multica-slack-assistant
cd multica-slack-assistant
npm install
cp .env.example .env     # then fill in your tokens (see below)
npx .                    # or: npm start

On startup it validates SLACK_BOT_TOKEN, SLACK_APP_TOKEN, and ANTHROPIC_API_KEY. If any is missing it prints exactly which and exits — a clean exit on an incomplete .env is expected and means env validation works.

Stop it with Ctrl+C (clean shutdown). Otherwise leave it running — it's a long-lived process.


Configuration

All config is via environment variables (loaded from .env). See .env.example.

| Variable | Required | Description | | --------------------- | -------- | ----------- | | SLACK_BOT_TOKEN | ✅ | Bot User OAuth Token (xoxb-…). | | SLACK_APP_TOKEN | ✅ | App-Level Token for Socket Mode (xapp-…, scope connections:write). | | ANTHROPIC_API_KEY | ✅ | Claude API key (sk-ant-…) — the agent's brain. | | MULTICA_WEBHOOK_URL | ⛳ | Where issues are POSTed. Agent still chats without it, but can't file. | | ANTHROPIC_MODEL | – | Claude model. Default claude-opus-4-8; use claude-sonnet-4-6 for lower latency. | | LOG_LEVEL | – | debug | info | warn | error (default info). |

Where to paste the Multica webhook URL

Open .env and set:

MULTICA_WEBHOOK_URL=https://your-multica-autopilot-webhook

Then restart. Until it's set, the agent still talks but tells users that issue filing isn't configured yet.

What gets sent to the webhook

When the agent decides to file an issue, it POSTs JSON:

{
  "text": "Title\n\nA clear, self-contained issue summary written by the agent",
  "slack_channel": "C0123ABC",
  "slack_thread_ts": "1700000000.000100",
  "slack_user": "U0123ABC"
}

slack_channel / slack_thread_ts point at the conversation the issue came from (in the assistant pane, the channel the user was viewing).


How it behaves

  • Conversational — chats naturally in DMs, the assistant pane, and channel threads. It keeps per-thread context so follow-ups make sense.
  • Auto-files issues — when it's confident a message is a real, concrete bug or actionable request, it calls its file_issue tool and POSTs to Multica, then tells the user. It does not file for greetings, small talk, or general questions, and asks a quick clarifying question when genuinely unsure.
  • Channel threads — @mention the app in a channel to start a thread; after that, it follows the thread and replies to follow-ups without needing another mention.

It is a thin client over Claude — it brings no business logic of its own beyond the conversation and the single issue-filing tool.


Slack app setup checklist

In https://api.slack.com/apps → your app:

  1. Enable the assistant. Agents & AI Apps → toggle on.
  2. Enable Socket Mode. Socket Mode → toggle on. (Also enables interactivity over the socket — no Request URL needed.)
  3. Turn on the messages tab. App HomeShow Tabs → enable the Messages Tab and check "Allow users to send Slash commands and messages from the messages tab." Without this, Slack shows "Sending messages to this app has been turned off."
  4. Bot token scopes (OAuth & Permissions → Scopes):
    • assistant:write — the assistant pane
    • chat:write — send messages
    • im:history — receive DMs / assistant-pane messages
    • app_mentions:read — receive @mentions in channels
    • channels:history — follow replies in public channel threads
    • groups:history(optional) same for private channels
  5. Subscribe to bot events (Event Subscriptions → Subscribe to bot events):
    • assistant_thread_started
    • assistant_thread_context_changed
    • message.im
    • app_mention
    • message.channels — follow-ups in public channel threads
    • message.groups(optional) private channels
  6. Tokens:
    • OAuth & Permissions → install the app → copy the Bot User OAuth Token (xoxb-…) into SLACK_BOT_TOKEN.
    • Basic InformationApp-Level Tokens → create one with the connections:write scope → copy it (xapp-…) into SLACK_APP_TOKEN.
  7. (Re)install the app after changing scopes.
  8. Invite the app to any channel where you want to @mention it (/invite @YourApp).

Then npx multica-slack-assistant and DM the app or @mention it in a channel.


Requirements

Node 18+ (uses built-in fetch). Dependencies: @slack/bolt, @anthropic-ai/sdk, dotenv.