No description
Find a file
2026-04-14 17:25:46 -04:00
commands Added bot caching for channels to compensate for the bug 2026-03-09 17:58:12 -04:00
scripts v1.0.0 2026-02-17 18:28:30 -05:00
utils Add comments describing future features 2026-02-26 14:40:58 -05:00
.env.example v1.0.0 2026-02-17 18:28:30 -05:00
.gitignore Added automod and youtube 2026-02-24 13:35:25 -05:00
bot.mjs added watchdog to restart in case of silent failure 2026-04-14 17:25:46 -04:00
bun.lock added watchdog to restart in case of silent failure 2026-04-14 17:25:46 -04:00
dashboard.mjs Added bot caching for channels to compensate for the bug 2026-03-09 17:58:12 -04:00
database.mjs Added bot caching for channels to compensate for the bug 2026-03-09 17:58:12 -04:00
interactionWrapper.mjs some work on audit log 2026-03-03 07:17:37 -05:00
LICENSE v1.0.0 2026-02-17 18:28:30 -05:00
package.json added watchdog to restart in case of silent failure 2026-04-14 17:25:46 -04:00
README.md v1.0.0 2026-02-17 18:28:30 -05:00
test.ts handle audits 2026-03-03 10:11:58 -05:00
twitch.mjs added watchdog to restart in case of silent failure 2026-04-14 17:25:46 -04:00
types.mjs some work on audit log 2026-03-03 07:17:37 -05:00

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

  1. Install dependencies:
npm install
  1. 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:

  1. Create a new file in commands/ following the existing patterns.
  2. Export the expected handlers (see existing command modules for examples).

Development

  • Utility helpers are in utils/.
  • A lightweight script scripts/test_parse_smart.mjs is included for parsing tests.
  • Use node to run individual scripts during development.

Project Structure (selected)

  • bot.mjs — main entry point
  • twitch.mjs — twitch connection and event glue
  • database.mjs — simple DB integration/helpers
  • interactionWrapper.mjs — command interaction helpers (Let you use modern interaction style API inspired by discordjs slash command builder)
  • types.mjs — shared type shapes
  • commands/ — individual command modules
  • utils/ — 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.