Bun ejecuta bots de JavaScript y TypeScript sin compilar, y discord.js funciona en él. Para ejecutar uno:
- Cambia el tipo: en la página Bot, sección Código, pulsa Cambiar lo que se ejecuta junto a Entorno de ejecución y elige Bun Bot.
- Sube tus archivos con
package.jsonen Files, sinnode_modules. - Comprueba el Archivo de entrada (
index.tspor defecto) en la página Bot, sección Código. - Pega tu token en la sección Discord y pulsa Conectar.
- Pulsa Iniciar y mira Console.
1. Cambia el tipo a Bun Bot
En la página Bot, sección Código, pulsa Cambiar lo que se ejecuta junto a Entorno de ejecución y elige Bun Bot. En un ordenador, la etiqueta del tipo en la parte superior de la página (por ejemplo Node.js Bot) abre el mismo diálogo. Deja sin marcar Eliminar mis archivos actuales y empezar de cero. para conservar tus archivos. Mismo plan, mismo precio. Mira Cómo cambiar tu bot a otro lenguaje o a un bot listo para usar.
2. Añade tu código
Sube tus archivos .ts o .js y package.json en Files (comprime una carpeta en un zip, súbelo, márcalo y pulsa Extraer). Deja fuera node_modules. O elige Repositorio Git como origen en la sección Código: Cómo desplegar y actualizar tu bot de Discord desde GitHub.
3. Define cómo se ejecuta
En la página Bot, sección Código, tarjeta Cómo se ejecuta:
- Archivo de entrada:
index.tspor defecto. Vale cualquier archivo.tso.js, por ejemplosrc/bot.ts. - Entorno de ejecución: Bun (latest), o Bun canary (unstable) si necesitas una función que todavía no se ha publicado.
- Paquetes: paquetes adicionales que se añaden con
bun adden el siguiente inicio después de que los cambies, separados por espacios.

4. Pega el token e inicia
En la sección Discord, pega el token y pulsa Conectar. Pulsa Iniciar y abre Console. El servidor ejecuta bun install cuando existe un package.json, imprime [PlayNHost] Starting your bot y ejecuta bun run sobre tu archivo de entrada. Los inicios siguientes vuelven a instalar solo cuando cambian Paquetes, package.json, el lockfile o la versión de Bun, cuando falta node_modules, o una vez al día; si no, la consola dice [PlayNHost] Packages are up to date.
Un bot mínimo de Bun con discord.js
package.json
{
"name": "my-bun-bot",
"private": true,
"dependencies": {
"discord.js": "^14"
}
}
index.ts
import { Client, Events, GatewayIntentBits } from 'discord.js';
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once(Events.ClientReady, (c) => {
console.log(`Logged in as ${c.user.tag}`);
});
client.login(process.env.DISCORD_TOKEN);
Bun lee el token con process.env.DISCORD_TOKEN o Bun.env.DISCORD_TOKEN. Imprimir Logged in as cambia la etiqueta del Resumen a En línea en Discord.
Líneas de la consola que puedes ver
| Línea | Qué hacer |
|---|---|
[PlayNHost] Your bot is not set up yet: the main file index.ts was not found. | Sube tus archivos, o pon en Archivo de entrada el nombre y la carpeta reales. |
[PlayNHost] bot.py is a Python file, but this server runs Bun (JavaScript). | Tu código es Python. Pulsa Cambiar lo que se ejecuta y elige Python Bot, conservando tus archivos. |
[PlayNHost] index.ts starts with ```, a Markdown code fence copied together with the code. | Abre el archivo en Files, borra la primera y la última línea ```, guarda e inicia de nuevo. |
[PlayNHost] Bun could not install everything in package.json. Starting with the packages already installed. | Un nombre o una versión de package.json es incorrecto. El error de Bun justo encima lo nombra. |
[PlayNHost] Some packages in Bot page, Code, Packages could not be installed. | Revisa la ortografía en Paquetes y que los nombres estén separados por espacios. |
| Aviso Falta un paquete que necesita tu código | Tu código importa un paquete que no está instalado. Añádelo a package.json o a Paquetes y reinicia. |
Las líneas de lenguaje equivocado, de bloque ``` y de paquetes vienen del script de inicio de los servidores instalados o reinstalados desde el 28 de octubre de 2026. En un servidor más antiguo, pulsa una vez Reinstalar al final de la sección Código: tus archivos se quedan.
Conviene saber
- Bun no comprueba los tipos de TypeScript al ejecutar. Ejecuta
bunx tsc --noEmiten tu ordenador para ver los errores de tipos. - Bun no es Node.js. La mayoría de los paquetes de npm funcionan, pero si alguno no, el tipo Node.js Bot también ejecuta archivos
.ts(contsx): Cómo ejecutar un bot de Discord en TypeScript. - Las claves y contraseñas van en Entorno: Cómo definir variables de entorno y secretos para tu bot de Discord.



