Skip to content

Repository files navigation

Helix banner waves

Helix
Helix

A multipurpose Discord bot for communities of all sizes β€” moderation, engagement, and automation with a full web dashboard.

About Helix

Helix helps you run a Discord server: moderate it, welcome new members, verify them, give out self-assignable roles, track activity with detailed audit logs, and keep members engaged with a deep economy system and fun commands. Everything is configurable from Discord commands or the web dashboard β€” no hosting or code required for server admins.

✨ Features

  • Moderation β€” bans, kicks, timeouts, mutes, purges, warnings with aliases, configurable DM templates, escalation (warn β†’ timeout/kick/ban), and live moderation actions from the dashboard.
  • Audit logging β€” 31 event types across moderation, members, messages, voice, server changes, and AutoMod, with per-event channels and ignore lists.
  • Verification β€” button-based gate with a customizable embed; grants a role on verify.
  • Reaction roles β€” self-assignable role menus with labels, emoji, per-menu limits, and pause/resume.
  • Welcoming β€” welcome/farewell messages with placeholders, auto-role on join, and image cards.
  • Economy β€” wallet & bank, shop, inventory & equipment, item effects, auctions, leaderboards, and RPG-style stats.
  • AutoMod β€” Discord native AutoMod rules plus custom invite/link, caps, emoji, spam, repeat, spoiler, attachment, and zalgo filters with per-filter delete, warn, timeout, kick, or ban actions.
  • Social feeds β€” automatic Reddit feeds per channel (Twitch/YouTube/TikTok/X/Instagram/RSS planned).
  • Fun & utility β€” emotion roleplay commands, canvas image effects, pet pics, polls placeholders, 8-ball, memes, and more.
  • Dashboard β€” per-server web panel for every setting above, with live Discord-style previews.
  • AI (beta) β€” Ollama-powered ask command with a family-friendly assistant persona.

Modules

Module defaults below come from the module catalog in src/config/modules.ts. Existing guild records may have older values; /configmodule and the dashboard show the stored value for a server.

Module What it covers Catalog default
General Info commands, help, ping, profiles βœ… on
Moderation Ban/kick/timeout/mute/purge/warn, AutoMod βœ… on
Administration Prefix, staff roles, log channels, toggles βœ… on
Verification Verify gate + setup βœ… on
Welcoming Welcome/farewell, auto-role, cards βœ… on
Reaction Roles Role menus βœ… on
Economy Wallet/bank/shop/inventory/auctions βœ… on
Fun 8-ball, memes, games, emotion, image, pets βœ… on
Utility Misc helpers (password, uuid, color…) βœ… on
Developer Owner-only diagnostics & data tools βœ… on
Music Voice playback βœ… on
Leveling XP, ranks, role rewards, voice XP, rank cards ❌ off

Version Legend

Symbol Meaning
🟒 Active
Ⓜ️ Very active (current focus)
πŸ”΅ Beta
βšͺ Alpha
🟑 Inactive
πŸ”΄ Discontinued
🟣 Unofficial / private
πŸ›Ÿ Life support (security fixes only)
βœ… / πŸ€– / ❌ Full / partial / no AI
βš—οΈ In progress

Versions

Core Version(s) Codename Status Engine AI Notes
β€” v1.0.0 β†’ 1.1.8 Rootspawn πŸ”΄ D.js 12.2.0 ❌
β€” v2.0.0 β†’ 2.6.0 Loopback πŸ”΄ D.js 12.4.1 ❌
β€” v3.0.0 β†’ 3.5.0 EchoRun πŸ›Ÿ D.js 12.5.2 ❌
β€” v4.0.0 β†’ 4.1.2 Neatline πŸ”΄ D.js 12.5.3 ❌
β€” v5.0.0 Ghostping 🟑 D.js 13.6.0 ❌
β€” v5.1.0 Signalband 🟒 D.js 13.11.0 ❌
β€” v6.0.0 Dataloom πŸ”΄ D.js 13.14.0 ❌
β€” v6.1.0 Protothype πŸ”΅ D.js 14.9.0 βœ…
β€” v7.0.0 Cleancut πŸ”΄ D.js 14.11.0 βš—οΈ
Hex_1 v9.0.0 β†’ 9.0.6 Stackflow πŸ”΄ D.js 14.6.0 βš—οΈ Deprecated in favor of Carbonkernel
Hex_2 v10.0.1 Carbonkernel Ⓜ️ D.js 14.26 βš—οΈ Current. Sapphire framework + Svelte dashboard + REST API
Cranberry x Cranberry 🟣 D.js 14.14.1 πŸ€– Private moderation bot for the Helix support server

v9.0+ runs on Paperplane, a custom fork of Sapphire.

Documentation & Support

  • 🌐 Website
  • βž• Add Helix to your server
  • πŸ’¬ Support server β€” help, suggestions, and status updates
  • πŸ“– In-bot help β€” /help lists commands available to the current member; use /help command:<name> for a specific root or grouped command

Server configuration commands

These commands and the dashboard write to the same per-guild configuration, but they do not expose the same controls:

Command What it does Permission
/setup Stateful, restart-safe setup wizard for roles, channels, prefix, and module states, with start, status, finish, and cancel; legacy preserves the one-shot form. It stores verification settings but does not post the verification button. Manage Guild
/help Lists commands the member can use. command:config role admin and other grouped paths are accepted. None
/config Sets roles, log channels, prefix, module states, or disabled commands through subcommands. Slash registration: Administrator; runtime accepts Manage Channels, Manage Roles, Ban Members, Kick Members, or Moderate Members for most subcommands. The administrator role is owner-only.
/settings Displays the current server configuration; it does not change settings. Manage Guild
/configmodule Enables or disables one module. Administrator
/togglecommand Enables or disables one non-critical command for the server. Manage Guild
/setup-verification Configures and enables verification, validates the selected role/channel, and posts the verification message. Manage Guild and moderator access

/setup is restart-safe: start creates the wizard, each step command saves its changes before advancing, and status, finish, or cancel manages the flow. The starter or server owner can continue it; the server owner alone can assign the administrator role. /setup legacy preserves the old one-shot form. The dashboard exposes the broader guild configuration API, including warning aliases/DM templates, AutoMod actions, per-event logging channels, and other settings that are not part of /setup; dashboard changes are persisted independently of the command form but share the same guild record.

Leveling: /level rank and /rank render a canvas rank card (embed fallback if the card fails), /level leaderboard shows the top 10, and /level give-xp / /level remove-xp need Manage Server. Reward roles follow the member's level in both directions β€” taking XP away revokes rewards they no longer qualify for, and with stacking off only the highest earned reward is kept. Voice XP is opt-in via the dashboard Leveling page (voiceXpPerMinute, 0 = off); un-accrued minutes are lost if the bot restarts mid-session. The same dashboard page lists the server's XP leaderboard.

Moderation rules can be scoped per channel and per role. /automod scope action channel:#staff-chat filter:invites action:delete sets one Helix filter's punishment for a channel, /automod scope exempt role:<@&id> exempt:true skips Helix AutoMod for a role, and /automod scope list shows every override. Precedence is guild-wide β†’ channel β†’ role. The same mechanism scopes warn rules (warnSettings.overrides: thresholds, DM, mod channel). The dashboard AutoMod page has a "Channel / role rules" card; warn overrides are managed by API/DB for now.

Mass actions live under /massaction (needs Manage Server): nuke bans a member and clears their recent messages from every text channel, clone duplicates a channel with its overwrites, lockdown locks every text channel (with an optional auto-unlock like /massaction lockdown time:2h), unlockall reverses it, and slowmode applies a preset (off/5s/10s/30s/1m/5m/15m) to one channel or the whole server. Locks record the real @everyone overwrite, and any auto-unlock that expired while the bot was offline is applied on the next boot.

The repository's bun run typecheck and bun run build provide compile-time validation. bun run test is a repository structure/static-validation script, not a live Discord, MongoDB, or permission integration test; it currently reports pre-existing false-positive errors for helper files that do not export command classes. Command registration, database writes, role hierarchy, and permission behavior still require testing in a Discord server.

Development

Requires Bun β‰₯ 1.3.14 and a MongoDB database.

bun install          # install bot dependencies
cp src/example.env src/.env  # then fill in DISCORD_TOKEN, MONGO_URI, ...
bun run build        # typecheck + compile to dist/
bun run start        # run the bot

Live-reload bot:

bun run dev

Combined dev (one terminal)

bun run dev:all

Boots the bot first, waits for its API, then boots the dashboard. Bot logs pass through untouched; dashboard lines are re-tagged TIMESTAMP - DASH - … (magenta). Ctrl+C stops everything.

To delete both dist/ folders, rebuild the bot and dashboard from clean, then launch both (so a broken compile fails before anything starts):

bun run dev:fresh

Dashboard (Svelte 5 + Bun)

The web dashboard lives in dashboard/ β€” a Svelte SPA served by a Bun server that handles Discord login and proxies the bot API.

bun run dashboard:install   # install dashboard deps
bun run dashboard:dev       # dev: Vite (5173) + Bun server (3000)
bun run dashboard:build     # production frontend build
bun run dashboard:start     # serve production build

Configure via DASHBOARD_WEB_PORT, DASHBOARD_WEB_URL (e.g. https://dash.domain.tld), BOT_API_URL, plus DISCORD_CLIENT_ID / DISCORD_CLIENT_SECRET / SESSION_SECRET. Register {DASHBOARD_WEB_URL}/api/auth/callback as an OAuth2 redirect in the Discord developer portal. See dashboard/README.md.

Other useful scripts: bun run validate (pre-commit checks), bun run test, bun run create-module / delete-module (scaffold toggleable modules).

Credits

License

GPL-3.0 β€” see LICENSE.

⭐ Star History

Star History Chart

About

🧬 Helix - a multipurpose Discord bot built with discord.js and typescript.

Topics

Resources

Stars

11 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages