Framework TypeScript pour Discord.js
HarmonixJS
HarmonixJS est un écosystème TypeScript construit au-dessus de Discord.js pour développer des bots Discord plus maintenables. Le projet rassemble un coeur orienté décorateurs, une CLI, des plugins officiels, un kit UI autonome et une documentation pensée pour les développeurs comme pour les assistants IA.
Écosystème npm
Un coeur framework, une CLI, un kit UI et des plugins officiels publiés comme packages séparés.
API typée
Des commandes, événements, composants, plugins et providers conçus pour conserver l'inférence TypeScript.
Workflow outillé
Initialisation, génération, plugins, build, start, Docker et diagnostics depuis une même interface CLI.



Un coeur typé pour structurer les bots
Le package @harmonixjs/core organise un bot autour de commandes, événements, composants Discord et providers. L'objectif est de sortir du modèle du fichier unique et de fournir une architecture claire pour les bots qui grandissent.
Les commandes sont déclarées avec Command(). La même définition sert au décorateur de classe et au handler, ce qui permet d'inférer le contexte d'exécution : slash command, commande préfixée, commande mixte ou menu contextuel Discord.
- Slash commands, prefix commands et commandes mixtes
- Menus contextuels utilisateur et message
- Handlers de boutons, selects et modals
- Providers pour isoler les services applicatifs
Une CLI pour créer, générer et diagnostiquer
La CLI @harmonixjs/cli accompagne tout le cycle de vie d'une application : initialisation du projet, génération des handlers, ajout de plugins, compilation, démarrage et diagnostic de production.
Créer un projet HarmonixJS avec template, package manager, plugins et options Docker.
Générer un handler de commande avec les conventions du framework.
Installer et configurer un plugin officiel dans l'application.
Compiler et vérifier que la configuration est prête pour la production.


Plugins et providers
HarmonixJS sépare les extensions réutilisables des services propres à l'application. Les plugins exposent des intégrations typées via bot.plugins, tandis que les providers gardent la logique métier dans des services accessibles via bot.providers.
@harmonixjs/core
Framework principal pour commandes, événements, composants, providers et plugins.
@harmonixjs/cli
Création de projet, génération de handlers, plugins, diagnostics et workflows dev/build/start.
@harmonixjs/ui
Vues et contrôles Discord autonomes pour HarmonixJS et les bots Discord.js classiques.
@harmonixjs/express
Plugin HTTP pour exposer des endpoints API à côté du bot.
@harmonixjs/i18n
Plugin de localisation runtime et commandes d'application Discord.
@harmonixjs/shard
Helpers de sharding pour accompagner les bots Discord amenés à grandir.
Un kit UI autonome
Le package @harmonixjs/ui permet de composer des interfaces Discord avec des vues, embeds, composants V2, paginations, menus de sélection, recherches, actions et modals.
Il fonctionne avec HarmonixJS, mais reste utilisable dans un bot Discord.js classique. Ce choix rend l'écosystème plus ouvert : le framework peut rester léger, pendant que les projets qui ont besoin d'interactions riches disposent d'une base dédiée.
Principe retenu
Composer une seule vue stateful plutôt que multiplier des classes fermées pour chaque cas : paginator, select searchable, boutons d'action ou modal.
Documentation et usage par IA
La documentation HarmonixJS expose des pages classiques, mais aussi des entrées dédiées aux assistants : /llms.txt, /llms-full.txt et un endpoint /mcp. Ces points d'accès décrivent les packages, les commandes CLI, les exemples et les pages canoniques de documentation.
Ce que le projet m'a apporté
HarmonixJS m'a permis de travailler sur un projet plus proche d'un produit développeur que d'un simple bot : API publique, typage avancé, génération de projet, publication npm, documentation, packages séparés et conventions de production.