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.
Essential Discord bot features without the bloat. Built for developers who need reliability and performance.
Built entirely with Node.js core modules. No external libraries, maximum performance and minimal footprint.
Native WebSocket connection without external WS libraries. Direct Discord gateway communication.
Complete Interaction v2 support including slash commands, buttons, select menus, and modals.
Multi-process shard manager for scaling large bots with automatic load balancing.
Native HTTPS REST API requests using Node.js core modules with built-in rate limiting.
EventEmitter-based architecture with easy event handling and custom event emission.
Get your Discord bot up and running in minutes
npm install novecord
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();
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);});
Explore REST API, Embeds, and Shard Manager
const { REST, Routes } = require('novecord');const rest = new REST(TOKEN);rest.get(Routes.User('@me')) .then(user => console.log(user)) .catch(console.error);
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] });
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');