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

@maiar-ai/plugin-discord

v1.0.0

Published

Maiar: A Composable, Plugin-Based AI Agent Framework

Readme

@maiar-ai/plugin-discord

This package is part of the Maiar ecosystem, designed to work seamlessly with @maiar-ai/core.

Documentation

For detailed documentation, examples, and API reference, visit: https://maiar.dev/docs

Important Notice

The Discord plugin is currently in beta and some features may be unstable. We are working hard to iron out any issues and make it more reliable.

Furthermore, this plugin allows text-based commands to invoke the agent to post given simple instructions. This will mean anyone that has the ability to invoke a trigger will be able to invoke the agent to post a message to a channel. We suggest you use this plugin as a reference implementation, or add some sort of authorization and permissions to the plugin itself, or as another plugin using our extensible plugin system.

Configuration

The Discord plugin requires the following configuration:

interface DiscordPluginConfig {
  token: string; // The token for the Discord bot
  clientId: string; // The client ID for the Discord bot
  guildId?: string; // The ID of the guild to send messages to. If not provided, the bot will send messages to the first guild it joins. This is useful if you want to restrict the bot to a specific guild. Guilds are Discord's internal naming convention for servers.
  commandPrefix?: string; // The prefix for the command. If not provided, the default prefix is "!".
  customExecutors?: DiscordExecutorFactory[]; // Optional: Custom executor factories for Discord actions
  customTriggers?: DiscordTriggerFactory[]; // Optional: Custom trigger factories for Discord events
}

Plugin Information

Prebuilt Executors

The Discord plugin comes with the following built-in executors that are exported and ready to use:

  • sendMessageExecutor: Action ID: send_message - Send a message to a Discord channel. The agent will select the most appropriate channel based on the channel name and description.

  • replyMessageExecutor: Action ID: reply_message - Reply to a message in a Discord channel. This is used when the agent needs to respond to a user's message in the Discord channel by using the reply functionality from the Discord API.

Prebuilt Triggers

The Discord plugin includes the following built-in triggers that are exported and ready to use:

  • postListenerTrigger: Automatically listens for messages that mention the bot and processes them for agent responses.

When a user @-mentions the bot in a Discord channel, the plugin will process the message and allow the agent to respond appropriately.

Init

The Discord plugin will automatically connect to the Discord API when the agent is initialized and begin listening for messages.

Advanced Features

Typing Indicators

The Discord plugin shows typing indicators while the agent is processing a response, providing a more natural interaction experience.

Channel Selection

When sending messages, the agent can intelligently select the most appropriate channel based on channel names and descriptions, or can be directed to use a specific channel.

Memory Integration

The plugin integrates with the agent's memory system to store interaction history for improved context awareness in future conversations.

Customization

The Discord plugin supports custom executors and triggers to extend its functionality:

Custom Executors

You can create custom executors using the createSimpleDiscordExecutor helper function:

import { createSimpleDiscordExecutor } from "@maiar-ai/plugin-discord";

const myCustomExecutor = createSimpleDiscordExecutor(
  "custom_action",
  "Description of what this action does",
  async (context, service, runtime) => {
    // Implementation logic
    return {
      success: true,
      data: {
        /* result data */
      }
    };
  }
);

Custom Triggers

You can add custom triggers to respond to different Discord events:

import { DiscordTriggerFactory } from "@maiar-ai/plugin-discord";

const myCustomTrigger: DiscordTriggerFactory = (discordService, runtime) => {
  // Return a trigger implementation
};

Usage

You will first need to create a discord bot and get the token and client ID. We recommend creating the bot and setting it to private invites only so that only your server can invite it.

In the bot management, you will have to enable Guild Installs so that the bot can be added to your server. It will output the OAuth2 URL to invite the bot to your server.

After you have successfuly invited the bot to your server, you should make the bot private. Disable the Guild Installs preference, and disable the Public Bot toggle in the bot preferences panel.

@-ing the agent will trigger a reply from that agent. The agent can be instructed to send a message to a specific channel, or it will pick the most appropriate channel based on the channel name and description.

Importing Default Executors and Triggers

All built-in executors and triggers are exported and can be imported directly:

import {
  PluginDiscord,
  postListenerTrigger,
  replyMessageExecutor,
  sendMessageExecutor
} from "@maiar-ai/plugin-discord";

// You can use them directly or customize the plugin
const discordPlugin = new PluginDiscord({
  token: "your-discord-bot-token",
  clientId: "your-discord-client-id",
  customExecutors: [
    sendMessageExecutor, // This is already included by default
    yourCustomExecutor
  ],
  customTriggers: [
    postListenerTrigger, // This is already included by default
    yourCustomTrigger
  ]
});