Simple discord.js music bot
  • TypeScript 98.8%
  • Shell 0.7%
  • Dockerfile 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-19 16:53:25 +02:00
lavalink fix youtube playback 2026-08-19 16:53:25 +02:00
scripts MORE VOICE STABILITY + MORE COMMANDS + MORE SITES WORKING!!! 2026-08-07 20:16:44 +02:00
src fix youtube playback 2026-08-19 16:53:25 +02:00
tests autoplay goes to pool instead of queue directly 2026-08-09 21:17:59 +02:00
.dockerignore initial commit 2026-07-08 11:11:55 +02:00
.env.example MORE VOICE STABILITY + MORE COMMANDS + MORE SITES WORKING!!! 2026-08-07 20:16:44 +02:00
.gitignore more sources 2026-07-08 13:27:04 +02:00
deno.json Add LICENSE 2026-08-08 00:04:01 +02:00
deno.lock rewrite in moonlight.js + prepare for other platforms 2026-07-25 04:40:01 +02:00
docker-compose.yml MORE VOICE STABILITY + MORE COMMANDS + MORE SITES WORKING!!! 2026-08-07 20:16:44 +02:00
Dockerfile MORE VOICE STABILITY + MORE COMMANDS + MORE SITES WORKING!!! 2026-08-07 20:16:44 +02:00
LICENSE Add LICENSE 2026-08-08 00:04:01 +02:00
README.md Add LICENSE 2026-08-08 00:04:01 +02:00

Chirp-ts

your beloved Discord music bot, rewritten from the ground up with TypeScript and Deno.

features!

  • Music playback with Lavalink (many sources)
  • High quality audio (using Opus)
  • Autoplay handled natively by moonlink.js
  • Easy to use commands
  • Audio filters
  • DJ and voting system
  • Live lyrics (plain lyrics too!)
  • 24/7 mode (doesnt leave the voice channel)
  • Support for radio stations thanks to Radio-browser.info

...and much more coming soon!

stack??

it performs better than Riffy in my testing, and its more feature-complete

development

deno task dev
deno task check
deno task test

deploy

./scripts/deploy.sh

environment example:

# COPY THIS FILE TO ".env" AND FILL IN THE REAL VALUES

# --- Discord ---
DISCORD_TOKEN=your_token_here
PREFIX=..

# --- Lavalink ---
LAVALINK_NODES=[{"name":"lavalink","host":"lavalink","port":2333,"auth":"change-this-password","secure":false}]
LAVALINK_PASSWORD=change-this-password
LAVALINK_JAVA_OPTS=-Xmx256m -XX:+UseSerialGC

# --- Spotify (for metadata) ---
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=

# --- playback settings ---
DEFAULT_VOLUME=50
MAX_QUEUE_SIZE=200
EMPTY_CHANNEL_TIMEOUT=30

see .env.example for the complete and updated list

license

Licensed under the GNU Affero General Public License v3.0 or later. If you run a modified version of this bot for others over a network, you must offer them the source of your modified version (AGPL section 13).