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

frozencord

v1.0.3

Published

A Discord.js command framework.

Downloads

9

Readme

FrozenCord

A Discord.js command framework.

Installing

To install dev version run: npm install https://github.com/IceeMC/FrozenCord

To install run npm install frozencord

Support

To get support with anything reguarding this framework or d.js you can join the support server here

Features

  • Commands - Wether you are making simple commands or complex commands this framework can do it.
  • Inhibitors - Wether you want to do command counts or log who ran what command this framework can do that.
  • Events - Handle events like a pro in your own event system or in the main file.
  • PaginatedMenu - Paginate items with ease no really its that simple.

More coming soon.

Heroku user?

Step 1: Download this repo on your pc/mac.

Step 2: Copy the commands and inhibitors directory located in the src directory to the repo you want the bot in.

Step 3: Push the changes and run the commands below.

  • First off run git add .
  • After that then run git commit -am "Add commands and inhibitors"
  • After that then run git push

Client example:

const { FrozenClient } = require("frozencord");
const client = new FrozenClient({
    prefix: "." // Set this to what ever you want the default is !.
    withTyping: true // Set this to false if you don't want the bot to type when running commands.
    ownerId: "" // A string of the owners id. Default is the id gotten from the client application.
    readyMessage: (client) => `Ready as ${client.user.tag}` // The ready message for the client.
    game: {
        name: "cards of humanity",
        type: "PLAYING"
    } // Sets the game of the bot.
});

client.login("Token here");

Command example:

const { Command } = require("frozencord");

class CommandName extends Command {

    constructor(client) {
        super(client);
        this.name = "commandName"; // The name of the command
        this.description = "A command that can do cool stuff."; // The description of the command.
        this.aliases = []; // An array of strings *optional*
        this.args = [{
            name: "argument",
            type: "string",
            required: true, // by default this is false but set it to true if you wish
        }]; // An array of ArgsObject's *optional*
        this.botPerms = ["SEND_MESSAGES"]; // An array of permissions the bot should have when the command is ran *optional*.
        this.userPerms = []; // An array of permissions the user should have when the command is ran *optional*.
        this.guildOnly = true; // Set this to false if you want it to be ran in pms
        this.ownerOnly = false; // Set this to true if you want the bot owner to be the one who can run this command.
        this.disabled = false; // Set this to true if you want this command to be disabled.
    }

    // What the command does when its ran.
    async run(message, [argument]) {
        message.channel.send(argument);
    }

}

module.exports = CommandName;

Inhibitor example:

const { Inhibitor } = require("frozencord");

class InhibitorName extends Inhibitor {

    constructor(client) {
        super(client);
        this.name = "inhibitorName"; // The name of this inhibitor.
        this.description = "A inhibitor that can do cool things."; // The description of the inhibitor.
    }

    // What the inhibitor should do after a command is executed.
    async run(message, command) {
        console.log(`${message.author.tag} ran ${command.name}`);
    }

}

module.exports = InhibitorName;

PaginatedMenu example:

const { PaginatedMenu } = require("frozencord");

const menu = new PaginatedMenu(bot);
menu.setTitle("Example"); // Sets the title to Example.
menu.setColor(0x000000); // Sets the embed color to black.
menu.setDescription("Example paginated menu.");
menu.addPages([
    {
        title: "Page #1 title",
        description: "Page #1 description"
    },
    {
        title: "Page #2 title",
        description: "Page #2 description"
    },
    {
        title: "Page #3 title",
        description: "Page #3 description"
    },
    {
        title: "Page #4 title",
        description: "Page #4 description"
    }
]); // Adds 4 pages.
menu.addPage("Page #5 title", "Page #5 description"); // Adds a single page.
menu.start(); // Starts the menu.