{"id":20976547,"url":"https://github.com/arjunchib/disky","last_synced_at":"2026-04-29T23:32:21.744Z","repository":{"id":114681464,"uuid":"384787096","full_name":"arjunchib/disky","owner":"arjunchib","description":"A discord bot framework","archived":false,"fork":false,"pushed_at":"2022-01-21T01:34:14.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T09:21:26.532Z","etag":null,"topics":["bot","discord","discord-api","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arjunchib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-10T20:44:05.000Z","updated_at":"2022-01-21T03:24:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"09c3dbc3-cde1-4558-adbd-c5c7e17175da","html_url":"https://github.com/arjunchib/disky","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/arjunchib/disky","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjunchib%2Fdisky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjunchib%2Fdisky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjunchib%2Fdisky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjunchib%2Fdisky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arjunchib","download_url":"https://codeload.github.com/arjunchib/disky/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjunchib%2Fdisky/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32448399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"ssl_error","status_checked_at":"2026-04-29T22:10:49.234Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bot","discord","discord-api","discord-bot","discord-js"],"created_at":"2024-11-19T04:54:31.770Z","updated_at":"2026-04-29T23:32:21.731Z","avatar_url":"https://github.com/arjunchib.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Disky\n\n![npm](https://img.shields.io/npm/v/disky)\n\nA Discord bot framework using [Discord.js](https://discord.js.org/#/)\n\n- 🤖 Development mode\n- ♻️ Automatic command reloading\n- 🖋 Typescript support\n\n## Installation\n\n```bash\nnpm install disky\n```\n\n## Get Started\n\n### Add discord config to `.env` file\n\nVariables set in `.env` file are automatically loaded and injected into `process.env`:\n\n```\nBOT_TOKEN=\u003cDISCORD_BOT_TOKEN\u003e\nGUILD_ID=\u003cDISCORD_GUILD_ID\u003e\n```\n\n### Add `diskyrc.ts` config file\n\n- `token` - Discord bot token\n- `guildId` - Guild ID can be set to only load commands for a single guild (useful for dev/staging environemnts)\n- `intents` - [Intents](https://discordjs.guide/popular-topics/intents.html#privileged-intents) to enable in the Discord client (the GUILD intent is enabled by automatically)\n\n```ts\n// diskyrc.ts\n\nimport { Intents } from \"discord.js\";\nimport { ClientOptions } from \"disky\";\n\nexport const options: ClientOptions = {\n  token: process.env.BOT_TOKEN,\n  guildId: process.env.GUILD_ID,\n  intents: [Intents.FLAGS.GUILD_VOICE_STATES],\n};\n```\n\n### Add commands to `src/commands`\n\nCommands have a `run` function that gets called whenever a slash command is triggered. The interaction is passed via `run` and is used to repond to the action. Discord.js has a good guide on how to [reply to slash commands](https://discordjs.guide/interactions/replying-to-slash-commands.html#replying-to-slash-commands).\n\nUse the `@slash` decorator to tell disky about the name, description, and arguments of the command.\n\n```ts\n// src/commands/ping.ts\n\nimport { Command, CommandContext, slash } from \"disky\";\n\n@slash({\n  name: \"ping\",\n  description: \"Responds with pong\",\n})\nexport default class PingCommand extends Command {\n  async run({ interaction }: CommandContext) {\n    await interaction.reply(\"pong\");\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farjunchib%2Fdisky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farjunchib%2Fdisky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farjunchib%2Fdisky/lists"}