Skip to content

wonderlandpark/dokdo

Repository files navigation


Build status

Dokdo

Dokdo is a powerful, extensible debugging toolkit for discord.js. It allows you to evaluate JavaScript code, run shell commands, and inspect your bot in real-time directly from Discord.

Inspired by Jishaku for discord.py.

✨ Features

  • Eval Command – Run JavaScript code directly in the context of your bot. js jsi

  • Shell Command – Execute terminal commands through Discord. You could also abort running process. sh

  • Paginated Output – Long outputs are automatically split and navigable via or buttons. pagination

  • Security Protection – Automatically masks bot tokens and other sensitive values from outputs. token

  • Easy to Customize – Tailor prefixes, aliases, owners, variables, and permission error messages etc to fit your needs.

🚀 Installation

Dokdo stable version requires Discord.js v14 or later.

npm install dokdo
Using Discord.js v12?

You could install dokdo@0.4.1 by

  npm i dokdo@djsv12
Using Discord.js v13?

You could install dokdo@0.5.1 by

  npm i dokdo@djsv13
Nightly Version?

Github Packages (registry configuration needed)

npm i @wonderlandpark/dokdo@nightly

🛠️ Usage

const Discord = require('discord.js')
const client = new Discord.Client({ intents: ['GUILDS', 'GUILD_MESSAGES'] })

const Dokdo = require('dokdo')

const DokdoHandler = new Dokdo.Client(client, { aliases: ['dokdo', 'dok'], prefix: '!' }) // Using Bot Application ownerID as default for owner option.

client.on('messageCreate', async message => {
  if (message.content === 'ping') return message.channel.send('Pong') // handle commands first
  await DokdoHandler.run(message) // try !dokdo
})

client.login('super secret token')

📦 Command References

> dokdo [js|javascript] <argument>

> dokdo [jsi|javascript_inspect] <argument>

Evaluate or execute JavaScript(Node.js) code passed.

Available Variables by default:

VARIABLE DESCRIPTION
client The bot client(Discord.Client) passed by Dokdo.Client(client)
message The message(Discord.Message) passed by DokdoHandler.run(message)
_dokdo The Dokdo Client

> dokdo [exec||shell|sh|bash|ps|powershell|zsh] <argument>

Executes commands at your system shell.

Dokdo detects your SHELL environment variable(process.env.SHELL) or uses powershell for Windows platform. You could abort running process by a Button.

The execution terminates automatically after 3 minutes.

> dokdo [cat] <argument>

Reads a file from your file system. Pass your file path. (Ex: /home/dokdo/bot.js)

> dokdo [curl] <argument>

Reads text of given URL.

> dokdo [shard] <argument>

Executes commands on every sharded processes. (Discord.js Sharding)

🧾 Notes

Message contents intent not approved?

You can set the Dokdo prefix including mentions. This allows the client to read the message content.

Example:

new Dokdo.Client(client, {  prefix: '<@285185716240252929>' })

Command Usage: <@285185716240252929>dokdo

📚 Documentation

Full documentation, examples, and advanced usage:

👉 https://dokdo.js.org

🤝 Contributing

Pull requests and issues are welcome. Dokdo is open-source and built with developer experience in mind. Please check the contribution guide before you submit Pull Request.

About

Dokdo. Easy Discord bot debuging tool.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors 12