MCPcopy Index your code
hub / github.com/esmBot/esmBot

github.com/esmBot/esmBot @v2026.6.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2026.6.0 ↗ · + Follow
716 symbols 1,905 edges 236 files 17 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

esmBot

esmBot Support GitHub license

esmBot is a free and open-source Discord bot designed to entertain your server. It's made using Oceanic and comes with image, music, and utility commands out of the box.

Features

  • Powerful, efficient, and performant image processing powered by libvips
  • Lots of image manipulation and processing commands out of the box
  • Handling of output images larger than Discord's upload limit via a local web server
  • Optional WebSocket/HTTP-based external media API
  • Music playback from many different configurable sources via Lavalink
  • Server tags system for saving/retrieving content
  • Low RAM and CPU usage when idle
  • Support for slash/application commands and classic, prefix-based message commands
  • Support for multiple database backends (PostgreSQL and SQLite backends included)
  • Cluster/shard handling powered by node:cluster
  • Flexible command handler allowing you to create new commands by adding script files

Usage

You can invite the main instance of esmBot to your server using this link: https://esmbot.net/invite

A command list can be found here.

If you want to self-host the bot, a guide can be found here.

Contributing

esmBot is licensed under the MIT License. Issues and pull requests are accepted to introduce features and fix bugs, and translations into different languages are accepted via Weblate.

Translation status

Credits

Icon by Steel. All images and fonts are copyright of their respective owners.

Extension points exported contracts — how you extend this code

ServerConfig (Interface)
(no doc)
src/utils/media.ts
Settings (Interface)
(no doc)
src/database/postgresql.ts
InteractionCollectorEvents (Interface)
(no doc)
src/pagination/awaitinteractions.ts
VerifyEvents (Interface)
(no doc)
src/api/index.ts
MetricsInfo (Interface)
(no doc)
src/cluster/common.ts
MentionToObjectParams (Interface)
(no doc)
src/utils/mentions.ts
Job (Interface)
(no doc)
src/api/index.ts
FuncObject (Interface)
(no doc)
src/utils/mediaLib.ts

Core symbols most depended-on inside this repo

set
called by 368
src/utils/collections.ts
getString
called by 357
src/classes/command.ts
getString
called by 50
src/utils/i18n.ts
getOptionString
called by 41
src/classes/command.ts
trim
called by 39
src/utils/mediaLib.ts
SetupTimeoutCallback
called by 39
natives/image/common.cc
GetInputOptions
called by 36
natives/image/common.cc
init
called by 29
src/utils/mediaLib.ts

Shape

Class 304
Method 265
Function 122
Interface 25

Languages

TypeScript87%
C++13%

Modules by API surface

src/database/postgresql.ts24 symbols
src/database/sqlite.ts23 symbols
src/utils/misc.ts19 symbols
src/classes/command.ts18 symbols
src/api/index.ts16 symbols
src/utils/mediaConnection.ts14 symbols
src/utils/types.ts13 symbols
src/utils/media.ts9 symbols
src/utils/collections.ts9 symbols
src/classes/mediaCommand.ts9 symbols
natives/generic/media.cc9 symbols
natives/cli/cli.cc7 symbols

For agents

$ claude mcp add esmBot \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact