{"id":22854567,"url":"https://github.com/jinzulen/hirsh","last_synced_at":"2026-02-09T10:02:11.901Z","repository":{"id":41783654,"uuid":"184981604","full_name":"Jinzulen/Hirsh","owner":"Jinzulen","description":"Automate the process of logging leaving users' roles and manually assigning them back upon rejoin on a Discord server.","archived":false,"fork":false,"pushed_at":"2024-06-18T06:31:29.000Z","size":29,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-16T01:35:21.726Z","etag":null,"topics":["auto-assign","automation","bot","commando","discord","discord-bot","discord-js","discord-js-commando","logging","roles"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/Jinzulen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"Jinzulen","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-05-05T05:03:44.000Z","updated_at":"2020-10-06T02:58:14.000Z","dependencies_parsed_at":"2024-06-18T07:46:39.894Z","dependency_job_id":"1e6d1856-d97b-43ea-b8d2-26b58a457bde","html_url":"https://github.com/Jinzulen/Hirsh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jinzulen%2FHirsh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jinzulen%2FHirsh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jinzulen%2FHirsh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jinzulen%2FHirsh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jinzulen","download_url":"https://codeload.github.com/Jinzulen/Hirsh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254453608,"owners_count":22073609,"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":["auto-assign","automation","bot","commando","discord","discord-bot","discord-js","discord-js-commando","logging","roles"],"created_at":"2024-12-13T07:07:24.408Z","updated_at":"2026-02-09T10:02:11.739Z","avatar_url":"https://github.com/Jinzulen.png","language":"JavaScript","funding_links":["https://ko-fi.com/Jinzulen"],"categories":[],"sub_categories":[],"readme":"# Hirsh\n[![Build Status](https://scrutinizer-ci.com/g/Jinzulen/Hirsh/badges/build.png?b=master)](https://scrutinizer-ci.com/g/Jinzulen/Hirsh/build-status/master) [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FJinzulen%2FHirsh.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FJinzulen%2FHirsh?ref=badge_shield) [![CodeFactor](https://www.codefactor.io/repository/github/jinzulen/hirsh/badge)](https://www.codefactor.io/repository/github/jinzulen/hirsh) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Jinzulen/Hirsh/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/Jinzulen/Hirsh/?branch=master) [![Known Vulnerabilities](https://snyk.io/test/github/Jinzulen/Hirsh/badge.svg?targetFile=package.json)](https://snyk.io/test/github/Jinzulen/Hirsh?targetFile=package.json)\n\n[![https://nodei.co/npm/hirsh.png](https://nodei.co/npm/hirsh.png)](https://www.npmjs.com/package/hirsh)\n\nThe best solution to get rid of the stress and strain of manually re-assigning user roles, with minimal configuration requirements and an easy setup process, you'll enjoy the full benefits of task automation in no time.\n\n## Installation \u0026 Setup\nYou can install Hirsh through whichever dependency manager you prefer via commands similar to: `npm i hirsh`\n\nOnce installed, you can easily launch Hirsh by calling it from within your `ready` event like so:\n```js\nconst discord = require(\"discord.js\"),\n      client  = new discord.Client();\n\nclient.on(\"ready\", () =\u003e {\n    console.log(`Logged in as ${client.user.username}.`);\n\n    // Call and initialize Hirsh.\n    require(\"hirsh\").Instance({\n        \"Parent\": client, // Discord client instance.\n        \"Sudoers\": [\"236123737525583872\", \"02102020220202\"] // etc... Your user ID or the IDs of the bot's owners.\n    });\n});\n```\n\nAnd voila! It's that simple! Now once you launch your bot, it should take a couple of seconds at most for Hirsh to kick in and it's smooth sailing from there.\n\n## Commands\n| # | Name | Argument | Category | Permissions | Aliases | Description | Guild Only\n--- | --- | --- | --- | --- | --- | --- | ---\n1 | set-logs | Channel ID | Configuration | Admin / Server Manager | mod-logs | Assigns the channel Hirsh will use for logs. | Yes\n\n## FAQ\n\u003e So where can I invite this bot?\n\nHirsh is a self-hosted bot, meaning you have to download and set it up yourself and then invite it to your own server(s).\n\n\u003e I want this thing to log what it does, is that possible?\n\nYes. You need only use the `h.set-logs` command to designate the channel you'd like Hirsh to document its actions in. It is recommended that you configure Hirsh's mod logs channel right after first launch, as it is disabled by default.\n\n\u003e Is there a config file somewhere?\n\nNo, Hirsh comes with its own configuration commands suite that's intended to be a easier and more convenient for server personnel to configure it.\n\n\u003e Hirsh is unable to add some roles?\n\n- **Potential Reason #1:** The bot under which Hirsh is operating does not possess the `Manage Roles` permission.\n\n- **Potential Reason #2:** You could also face this problem if the role Hirsh is trying to assign is above its own in the role hierarchy. To fix this, you can try pushing Hirsh up the hierarchy enough that it can assign that role.\n\n- **Potential Reason #3:** The process during which Hirsh ascertains which roles a user has had in order to award them back includes an additional step that checks whether any of the roles no longer exist on the server (by way of their IDs), if Hirsh failed to assign a role and it had nothing to do with permissions/role hierarchy, that would most likely be the reason.\n\n\u003e I seem to be unable to use the configuration commands?\n\nTo use Hirsh's configuration commands, you must either be an administrator or possess `Manage Server` permissions.\n\n## Acknowledgements\nThis project would not be possible without the [Discord.js](https://www.npmjs.com/package/discord.js) library and its command framework [Commando](https://www.npmjs.com/package/discord.js-commando).\n\nOther dependencies that this project uses and/or relies on include:\n- [Colors](https://www.npmjs.com/package/colors)\n- [SQLite](https://www.npmjs.com/package/sqlite) \u0026 [SQLite3](https://www.npmjs.com/package/sqlite3)\n\n## License\nThis tool is licensed under the MIT license. See the [LICENSE](https://github.com/Jinzulen/Hirsh/blob/master/LICENSE.md) file for more information. Credits are not necessary if you happen to use this project in the future but are appreciated.\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FJinzulen%2FHirsh.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FJinzulen%2FHirsh?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjinzulen%2Fhirsh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjinzulen%2Fhirsh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjinzulen%2Fhirsh/lists"}