| commands | ||
| scripts | ||
| utils | ||
| .env.example | ||
| .gitignore | ||
| bot.mjs | ||
| bun.lock | ||
| dashboard.mjs | ||
| database.mjs | ||
| interactionWrapper.mjs | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| test.ts | ||
| twitch.mjs | ||
| types.mjs | ||
Hawkflux
A lightweight, modular Fluxer chat bot written in modern Node.js (ES modules).
Overview
Hawkflux provides chat automation and moderation features for fluxer communities. The bot is designed to be extensible via a commands/ folder where individual command modules implement behavior.
Key points:
- Minimal, file-based command structure.
- Utilities and helpers in
utils/for shared logic. - Simple entry point:
bot.mjs.
Features
- Role and welcome handling
- Moderation helpers and reaction roles
- Twitch integration and chat command handling
- Small scripts and utilities for parsing and development
Requirements
- Node.js 18+ (supports native ES modules) or Bun.js
- Network access for Twitch (bot account + OAuth token)
Installation
- Install dependencies:
npm install
- Configure your environment (example):
- Provide your information in a .env file based on .env.example
Running
Start the bot:
node bot.mjs
The process will connect to Fluxer and load the modules under commands/.
Commands
Command modules live in the commands/ directory. Each file implements a specific command or feature (for example, 000welcome.mjs, 800stats.mjs). To add a new command:
- Create a new file in
commands/following the existing patterns. - Export the expected handlers (see existing command modules for examples).
Development
- Utility helpers are in
utils/. - A lightweight script
scripts/test_parse_smart.mjsis included for parsing tests. - Use
nodeto run individual scripts during development.
Project Structure (selected)
bot.mjs— main entry pointtwitch.mjs— twitch connection and event gluedatabase.mjs— simple DB integration/helpersinteractionWrapper.mjs— command interaction helpers (Let you use modern interaction style API inspired by discordjs slash command builder)types.mjs— shared type shapescommands/— individual command modulesutils/— helper utilities
Contributing
Contributions are welcome. Follow the repository style: add focused, small command modules and keep utilities shared in utils/.
License
This project is dual-licensed:
- GNU Affero General Public License v3 (AGPL-3.0-or-later) — the project is available under the terms of the AGPL for open-source use.
- Commercial / Closed-Source License — a paid commercial license is available for organizations that require different terms. To request commercial licensing, contact: contact@moyskleytech.com
When using the project, you may choose to accept the AGPL terms or obtain a commercial license for closed-source distribution.