Fluxer
Fluxer.jsv3.3.0

Build bots for Fluxer

Fluxer.js holds the gateway connection open, retries rate-limited requests, and caches the objects you touch. You write the handlers.

There are no intents to declare. Construct a Client, log in with a bot token, and the events you subscribed to start arriving.

pnpm add @fluxerjs/core

Apache-2.0Node 22.13+Types includedChangelog

bot.js
import { Client, Events } from '@fluxerjs/core';

const client = new Client();

client.on(Events.Ready, () => {
  console.log('Ready!');
});

client.on(Events.MessageCreate, async (message) => {
  if (message.author.bot) return;
  if (message.content === '!ping') {
    await message.reply('Pong!');
  }
});

await client.login(process.env.FLUXER_BOT_TOKEN);

A complete bot that replies to !ping. See the shorter version or add real commands.

npm downloads

Adoption at a glance

Across 10 published packages

Total installs

121k

Last 30 days

24.6k

Weekly downloads

Mar 2026Jun 2026Oct 2026

Peak week 11k downloads

Start here

Install, write a first bot, then look up the rest.

What the library handles

The parts you would otherwise write yourself, and the guide for each.

Gateway events

Subscribe with client.on and handlers get typed payloads. Reconnects and resumes happen without you watching the socket.

Call methods on objects

Fetch a thing and call methods on it: message.reply, channel.send, member.kick.

Caching you can see

Managers cover the day-to-day reads. client.cache is where the per-cache limits, sweeps, and stats live when memory starts to matter.

Builders that serialize themselves

Pass an EmbedBuilder or AttachmentBuilder straight into channel.send. No toJSON call of your own.

Collectors with bounds

awaitMessages and awaitReactions for confirmations and polls. A collector without time or max throws instead of leaking.

Permission checks

member.permissions for guild-level roles, member.permissionsIn when channel overwrites decide the answer.

One thing to know about voice

Guild voice channels are text-based, so channel.send already works in them. Actual audio lives in @fluxerjs/voice, which is being reworked. Read the voice guide before you depend on it.

Questions?Join the Fluxer community for help with the SDK.Join Fluxer