{"id":18967616,"url":"https://github.com/joaquimnet/sensum","last_synced_at":"2026-05-07T07:38:46.289Z","repository":{"id":40725720,"uuid":"247866140","full_name":"joaquimnet/sensum","owner":"joaquimnet","description":"Discord bot framework based on discord.js","archived":false,"fork":false,"pushed_at":"2024-06-19T03:12:50.000Z","size":1669,"stargazers_count":0,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-01T06:41:49.431Z","etag":null,"topics":["discord","framework","typescript"],"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/joaquimnet.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":"2020-03-17T02:58:58.000Z","updated_at":"2022-11-17T23:36:28.000Z","dependencies_parsed_at":"2023-12-20T07:17:45.605Z","dependency_job_id":"85165217-6785-44d5-887e-0352bae2641e","html_url":"https://github.com/joaquimnet/sensum","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaquimnet%2Fsensum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaquimnet%2Fsensum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaquimnet%2Fsensum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaquimnet%2Fsensum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joaquimnet","download_url":"https://codeload.github.com/joaquimnet/sensum/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239964552,"owners_count":19725952,"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","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","framework","typescript"],"created_at":"2024-11-08T14:44:29.988Z","updated_at":"2026-04-04T22:30:17.613Z","avatar_url":"https://github.com/joaquimnet.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sensum\n\nSensum is a framework that aims to speed up discord bot development by offering tools that allow you to quickly create commands.\n\n## Why Sensum?\n\n-   Object-oriented\n-   Flexible\n-   100% Promise-based\n-   Typescript. The auto completions will save you a lot of time.\n\n## Install\n\n`npm install sensum`\n\nor\n\n`yarn add sensum`\n\n## Your first Sensum Bot\n\n```typescript\nimport { BotClient, defaultCommands } from 'sensum';\n\nconst bot = new BotClient({ ownerId: '12344321', prefix: '!', token: 'abc.DefGhijkLmn123', root: __dirname });\n\n// These are optional. (eval, repeat, botInvite, help, info, ping)\ndefaultCommands.forEach(cmd =\u003e bot.loadCommand(cmd));\n\nbot.login();\n\n```\n\n## Examples\n\n### Simple Command\n\nTo create a command create a file that ends in `.command.js` or `.command.ts` and export a Sensum `Command` from it. Sensum will load them automatically.\n\n```typescript\n// my-commands-folder/howdy.command.ts\nimport { Command } from 'sensum';\n\nexport default new Command({\n  name: 'howdy',\n  description: 'Greetings!',\n  aliases: ['yeehaw'],\n  delete: true,\n  category: 'funny',\n  async run(bot, message, context) {\n    // Yeeeeeeeeeeeeeeeeeeeehaw! 🐄\n    const msg = await message.channel.send('Yeehaw!');\n    await msg.react('🤠').catch(() =\u003e {});\n  },\n});\n```\n\n### Event Handlers\n\nTo create an event create a file that ends in `.event.js` or `.event.ts` and export a Sensum `EventHandler` from it. Sensum will load them automatically.\n\nBot is ready.\n\n```typescript\n// my-events-folder/bot-ready.event.ts\nimport { EventHandler } from 'sensum';\n\n// Here, \"name\" and \"message\" are fully typed, go nuts. ;)\nexport default new EventHandler({\n  name: 'ready',\n  enabled: true,\n  run(bot, message) {\n    console.log(`${bot.user.username} is ready!`);\n  },\n});\n```\n\nSomeone sent a message.\n\n```typescript\n// my-events-folder/message.event.ts\nimport { EventHandler } from 'sensum';\n\nexport default new EventHandler({\n  name: 'messageCreate',\n  enabled: true,\n  async run(bot, message) {\n    await message.react('♥');\n  },\n});\n```\n\nAn error ocurred somewhere.\n\n```typescript\n// my-events-folder/error-handler.event.ts\nimport { EventHandler } from 'sensum';\n\nexport default new EventHandler({\n  name: 'error',\n  enabled: true,\n  run(bot, error) {\n    console.log('Oh no, something bad happened!', error);\n  },\n});\n```\n\n# Roadmap\n\n-   [x] Commands\n-   [x] Listeners\n-   [x] Event Handlers\n-   [x] Scheduled Tasks\n-   [ ] Prompter\n-   [ ] Slash Commands\n-   [ ] Buttons, Menus and Other Interactions\n\n# Disclaimer\n\nCurrently (v1) the library is under heavy WIP therefore the current public API may change. When v2 is released the public API will be stable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoaquimnet%2Fsensum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoaquimnet%2Fsensum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoaquimnet%2Fsensum/lists"}