{"id":24161810,"url":"https://github.com/snacksncode/snacky","last_synced_at":"2026-04-13T17:08:17.594Z","repository":{"id":53602359,"uuid":"304393074","full_name":"snacksncode/Snacky","owner":"snacksncode","description":"My first ever Discord Bot. Written in Typescript + Node.js","archived":false,"fork":false,"pushed_at":"2021-12-01T13:21:57.000Z","size":428,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"v2","last_synced_at":"2025-07-12T05:02:13.834Z","etag":null,"topics":["discord","discord-bot","discord-js"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snacksncode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-15T16:57:39.000Z","updated_at":"2021-12-01T13:22:00.000Z","dependencies_parsed_at":"2022-09-02T09:42:10.798Z","dependency_job_id":null,"html_url":"https://github.com/snacksncode/Snacky","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/snacksncode/Snacky","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snacksncode%2FSnacky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snacksncode%2FSnacky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snacksncode%2FSnacky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snacksncode%2FSnacky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snacksncode","download_url":"https://codeload.github.com/snacksncode/Snacky/tar.gz/refs/heads/v2","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snacksncode%2FSnacky/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272186211,"owners_count":24888333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-26T02:00:07.904Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord","discord-bot","discord-js"],"created_at":"2025-01-12T17:45:43.324Z","updated_at":"2025-10-25T01:04:25.123Z","avatar_url":"https://github.com/snacksncode.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/8uMInN6.png\" alt=\"Avatar\"\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003eSnacky\u003c/h1\u003e\n\u003cp align=\"center\"\u003eMy first ever Discord Bot written in TypeScript\u003c/p\u003e\n\n# Table of Contents\n\n- [Features](#features)\n- [Invite](#invite)\n- [Running locally](#running)\n- [Known issues](#issues)\n\n\u003ca name=\"features\"\u003e\u003ch1\u003eFeatures\u003c/h1\u003e\u003c/a\u003e\n\nSnacky is a little bot that I've written for my own server and overall just for the sake of working with Discord.js, TypeScript and Node.js. It's not super complicated as of right now but I'll be adding features as I go.\n\n### Avaible commands\n\n| Category    | Commands                                                                           |\n| ----------- | ---------------------------------------------------------------------------------- |\n| Information | avatar, help, ping, uptime                                                         |\n| Moderation  | clear, mute, unmute                                                                |\n| Music       | play, queue, shuffle, skip, loop, stop, earrape, nowplaying, pause, resume, rewind |\n| Fun         | roll, jd                                                                           |\n\n\u003ca name=\"invite\"\u003e\u003ch1\u003eInvite Snacky to your discord server\u003c/h1\u003e\u003c/a\u003e\n\nYou can use [this](https://discord.com/oauth2/authorize?client_id=765660664956977182\u0026scope=bot\u0026permissions=8) link to invite him to your server. Currently bot has only one instance running on Heroku. Sometimes when I'm developing new features he'll be offline.\n\n\u003ca name=\"running\"\u003e\u003ch1\u003eRunning Snacky locally\u003c/h1\u003e\u003c/a\u003e\n\nIf you for some reason want to get your own version of the bot up and running you can use this section to guide you.\n\n1. Go to [Discord's Dev Portal](https://discord.com/developers) and create a new application there. Then add a bot to this application and copy your bot token from there.\n2. Clone Snacky's code and install all needed packages\n\n```bash\n# by using yarn\nyarn install\n# or npm\nnpm install\n```\n\nAlso create a `.env` file in root directory with those contents\n\n```\nTOKEN_STABLE=[PUT YOUR TOKEN HERE]\n```\n\nAfter that your own instance of the bot should be ready to launch. To start the bot just use the start script.\n\n```bash\nyarn start\n# or\nnpm start\n```\n\nDon't forgot to invite him to your testing server.\u003cbr/\u003e\n\u003csup\u003eIf you're on windows you might get an error about `ts-node` not being defined. In this case install this package globally\u003c/sup\u003e\n\n\u003ca name=\"issues\"\u003e\u003ch1\u003eKnown issues\u003c/h1\u003e\u003c/a\u003e\n\n1. ~~Pausing works but resuming doesn't.~~\n   **Fixed!** Had to switch to LTS version of NodeJS. Version 15 was causing problems for some reason, version 14 on the other hand doesn't\n\n2. Because Snacky is hosted on Heroku. Sometimes after bot has been playing music for a long time heroku \"clears\" websocket connections and the bot stops playing. In this case whilst still in voice chat use `stop` command to disconnect him and then add songs back to queue. I'll implement a command that will \"rescue\" the queue in this case.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnacksncode%2Fsnacky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnacksncode%2Fsnacky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnacksncode%2Fsnacky/lists"}