The most lightweight way to build Discord bots.

NoveCord is a lightweight, dependency-free Discord API wrapper built entirely from scratch using only Node.js core modules. Zero external dependencies, maximum performance.

npm install novecord

⚠️ This module is currently under maintenance, some bugs may still occur.

Why Choose NoveCord?

Essential Discord bot features without the bloat. Built for developers who need reliability and performance.

Zero Dependencies

Built entirely with Node.js core modules. No external libraries, maximum performance and minimal footprint.

WebSocket Gateway

Native WebSocket connection without external WS libraries. Direct Discord gateway communication.

Full Interaction Support

Complete Interaction v2 support including slash commands, buttons, select menus, and modals.

Shard Manager

Multi-process shard manager for scaling large bots with automatic load balancing.

REST API Wrapper

Native HTTPS REST API requests using Node.js core modules with built-in rate limiting.

Event-Driven

EventEmitter-based architecture with easy event handling and custom event emission.

Quick Start

Get your Discord bot up and running in minutes

1. Install NoveCord

npm install novecord

2. Basic Bot Example

const { Client, Intents } = require('novecord');
const client = new Client({
token: 'Discord Bot Token',
intents: Intents.Guilds | Intents.GuildMessages | Intents.MessageContents
});
client.on('READY', () => {
console.log(`Logged in as ${client.user.username}`);
});
client.on('MESSAGE_CREATE', (message) => {
if (message.content === '!ping') {
client.sendMessage(message.channel_id, { content: 'Pong!' });
}
});
client.login();

3. Typing Indicator Example

client.setTyping(channelId);
client.on('typingStarted', (channelId) => {
console.log(`Typing indicator started in channel ${channelId}`);
});
client.on('typingError', ({ channelId, error }) => {
console.error(`Failed to start typing in channel ${channelId}:`, error);
});

Advanced Examples

Explore REST API, Embeds, and Shard Manager

REST API Example

const { REST, Routes } = require('novecord');
const rest = new REST(TOKEN);
rest.get(Routes.User('@me'))
.then(user => console.log(user))
.catch(console.error);

Embed Builder Example

const { Embed } = require('novecord');
const embed = new Embed()
.setTitle('NoveCord')
.setDescription('A simple, dependency-free Discord API wrapper.')
.setColor('#5865F2');
client.sendMessage(channelID, { embeds: [embed] });

Shard Manager Example

const ShardManager = require('novecord').ShardManager;
const manager = new ShardManager(2, 'YOUR_BOT_TOKEN', Intents.All);
manager.on('shardMessage', ({ shardId, message }) => {
console.log(`Message from shard ${shardId}:`, message);
});
manager.spawnAll('path/to/shard.js');
Powered by Vercel

© 2025 NoveCord. Built with ❤️ for the Discord community.