Skip to main content
Invite Tracker

Supported python versions PyPI version Pyright badge
Ruff badge uv
Join us!

A Python API wrapper for Fluxer.

Build bots and automated clients with a clean, type-safe, and event-driven architecture.


Features

  • Async-first design built on asyncio
  • REST API support with automatic rate limiting
  • WebSocket gateway for real-time events
  • Command framework with decorators
  • Modular cog system
  • Strongly-typed data models
  • Structured error handling and retry logic
  • Clean separation between low-level Client and high-level Bot

Installation

pip install fluxer.py

Requires Python 3.10 or higher.

Voice support

Voice requires LiveKit and ffmpeg:

pip install fluxer.py[voice]

or

uv add fluxer.py --extra voice

ffmpeg must be installed separately and available on your PATH.

On macOS (assuming you have Brew):

brew install ffmpeg

On Debian/Ubuntu:

apt install ffmpeg

On Windows: (assuming you have Chocolatey)

choco install ffmpeg

For development:

git clone https://github.com/akarealemil/fluxer.py.git
cd fluxer.py
pip install -e .

Template

A batteries-included template is available to get you started quickly with a new bot project.


Quick Start

A simple bot with a ping command:

import fluxer

bot = fluxer.Bot(command_prefix="!", intents=fluxer.Intents.default())

@bot.event
async def on_ready():
    print(f"Bot is ready! Logged in as {bot.user.username}")

@bot.command()
async def ping(ctx):
    await ctx.reply("Pong!")

if __name__ == "__main__":
    TOKEN = "your_bot_token"
    bot.run(TOKEN)

Choosing Between Bot and Client

Bot

Use Bot if you need: - Decorator-based commands - Built-in command parsing - Cog support - Rapid bot development

Client

Use Client if you need: - Full event-driven control - A custom command framework - Lower-level API interaction - Advanced or specialized implementations


Architecture Overview

Bot extends Client, adding a command framework on top of the core event system.

Core components:

  • HTTPClient -- Handles REST requests and rate limits
  • Gateway -- Manages WebSocket connection and event dispatch
  • Client -- Base event-driven interface
  • Bot -- High-level command framework
  • Cog -- Modular command grouping system

Data Models

fluxer.py provides strongly-typed models representing Fluxer entities:

  • Guild
  • Channel
  • Message
  • User
  • GuildMember
  • VoiceState
  • Webhook
  • Embed
  • Emoji

Models encapsulate both state and behavior, exposing convenience methods such as:

  • Message.reply()
  • Channel.send()
  • Guild.kick_member()

Voice

Requires fluxer.py[voice] and ffmpeg

@bot.command()
async def play(ctx, channel_id: int, *, path: str):
    channel = await bot.fetch_channel(str(channel_id))

    async with await channel.connect(bot) as vc:
        await vc.play_file(path)

For background playback with an after callback:

async with await channel.connect(bot) as vc:
    vc.play(fluxer.FFmpegPCMAudio("music.mp3"), after=lambda e: print("done"))
    # bot continues handling commands while audio plays

Pause and resume mid-playback:

vc.pause()
vc.resume()
print(vc.is_paused)  # bool

FFmpegPCMAudio accepts the same options as discord.py's FFmpegPCMAudio:

Parameter Description
executable Path to ffmpeg binary (default: "ffmpeg")
before_options Arguments inserted before -i (e.g. "-ss 30" to seek)
options Arguments inserted after the source (e.g. "-filter:a volume=0.5")
sample_rate Output sample rate in Hz (default: 48000)
num_channels 1 for mono, 2 for stereo (default: 2)

Intents

Intents determine which events your application receives from the WebSocket gateway.

Common usage:

fluxer.Intents.default()
fluxer.Intents.all()

Limiting intents improves performance and ensures your application subscribes only to necessary events.


Exceptions

All library exceptions inherit from:

FluxerException

Errors include:

  • HTTP errors mapped to REST status codes
  • Gateway protocol errors
  • Connection and retry-related failures

Documentation

Full documentation is available at:

https://deepwiki.com/akarealemil/fluxer.py/1-overview

Metadata

Release files for fluxer.py 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fluxer.py 0.4.2
File Size Uploaded
fluxer_py-0.4.2.tar.gz 58.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fluxer.py 0.4.2
File Interpreter ABI Platform
fluxer_py-0.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 123.4 kB

Release files / fluxer_py-0.4.2.tar.gz

Download URL fluxer_py-0.4.2.tar.gz
Size 58.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9d2c9ff636efa535d6c606f504426866428ce3f6495eb47c1f7c98deb9c224b6
BLAKE2b-256 checksum
How to use checksums
c0ff0eb77834f48cfa4e675ac5b0866e1828c6a534e1ed4a296b31c653642b61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / fluxer_py-0.4.2-py3-none-any.whl

Download URL fluxer_py-0.4.2-py3-none-any.whl
Size 64.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b4d09b7c7d2d8486d545d39fe3252746da00b236817c86977e31d32f7b2a995b
BLAKE2b-256 checksum
How to use checksums
d1a00862f76c0b7ae404c2eaae91ddff6cb95a59dda7eda38acaaa55330ce592
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page