{"id":28935016,"url":"https://github.com/3ofiz4/discordcli","last_synced_at":"2026-05-10T02:19:16.772Z","repository":{"id":299532937,"uuid":"1003335965","full_name":"3oFiz4/DiscordCLI","owner":"3oFiz4","description":"A Discord on a terminal with ability to navigate through server's channels and DM and replying. Made in like ~4.5 Hours, single-night project","archived":false,"fork":false,"pushed_at":"2025-06-17T02:43:12.000Z","size":924,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-17T03:19:17.821Z","etag":null,"topics":["cli","convenience","discord","discord-py","minimalistic","python","python-3","python3","single-night-project","terminal"],"latest_commit_sha":null,"homepage":"","language":"Python","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/3oFiz4.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,"zenodo":null}},"created_at":"2025-06-17T02:01:37.000Z","updated_at":"2025-06-17T02:59:52.000Z","dependencies_parsed_at":"2025-06-17T03:19:22.992Z","dependency_job_id":"9efb75df-ed93-4097-ad98-b58f7e6403fe","html_url":"https://github.com/3oFiz4/DiscordCLI","commit_stats":null,"previous_names":["3ofiz4/discordcli"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/3oFiz4/DiscordCLI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3oFiz4%2FDiscordCLI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3oFiz4%2FDiscordCLI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3oFiz4%2FDiscordCLI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3oFiz4%2FDiscordCLI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3oFiz4","download_url":"https://codeload.github.com/3oFiz4/DiscordCLI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3oFiz4%2FDiscordCLI/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261348754,"owners_count":23145314,"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":["cli","convenience","discord","discord-py","minimalistic","python","python-3","python3","single-night-project","terminal"],"created_at":"2025-06-22T19:09:15.340Z","updated_at":"2026-05-10T02:19:16.740Z","avatar_url":"https://github.com/3oFiz4.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Preview](https://github.com/user-attachments/assets/8067db4a-0f02-457f-b6ef-3897aefdb14f)\n# ⚙️ DiscordCLI\n\u003e A Discord terminal client built in ~4 hours. Functional: message, reply, upload — all from the command line.\n\n---\n\n## 🖼️ Thumbnail\n![Banner](https://github.com/user-attachments/assets/e072021d-ab9c-4edd-beb6-d38d19f75b51)\n\nWatch more of the showcase here:\nhttps://jmp.sh/s/d63EFvt1hZTQpvic5paR\n\n---\n\n## ⚠️ Caution\n\u003e ⚠️ **USE AT YOUR OWN RISK**\n\nThis client acts like a **selfbot**, and using it **violates Discord's TOS**.  \nYou **may get banned**.  \nI am **not responsible** for any account loss.  \n\n✅ Use an **alt account**, or use within a proper **Discord Bot** context.\n\n---\n\n## 📦 Requirements\n\n```\nemoji==1.6.3 clipboard rich prompt_toolkit discord.py asyncio shutil tkinter playsound threading json\n````\n\n---\n\n## 🚀 Setup\nFirst of all. Set up your token first. There's 2 way.\n\u003e a. `python main.py -t [YOUR_TOKEN]` \n\u003e b. \n1. Open / Create your token.txt. Insert this template:\n```\n---\nUsername: Account_Username_0\nToken: Token_Username_0\n---\nUsername: Account_Username_1\nToken: Token_Username_1\n---\n```\n2. And replace Token_Username_0 with each desired token. You can also add more entry if you want to.\n3. Then do `python main.py -s [index_token]/[username]`\n\u003e Example:\n\u003e `python main.py -s 1` # Starts Token_Username_1\n\u003e `python main.py -s Account_Username_1` # Starts token of Account_Username_1\n4. REMEMBER, it should be Username-Token as the template, do not skip it, not even the \u003cSpace\u003e between Token and :.\nc. `python main.py` # Is equal to `python main.py -s 0`\n### 🔹 Fresh Start\n```bash\npython main.py\n# then use -h or -changelog\n````\n\n### 🔹 Add to System PATH (Recommended)\n\n1. Clone this repo to:\n   `C:/Users/[your-name]/DisCLI`\n2. Open `System Properties` → `Advanced` → `Environment Variables`\n3. Under **System Variables**, edit `Path`\n4. Add:\n   `C:\\Users\\[your-name]\\DisCLI\\`\n5. Click `OK` on all windows.\n\nNow you can run `main.py` from anywhere.\n\n---\n\n## 🧩 Command List\n\n\u003e `-h` → help\n\u003e `-changelog` → recent updates\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e🧭 Navigation\u003c/strong\u003e\u003c/summary\u003e\n\n```\n-s [server]         Pick a server\n-c [channel]        Pick a chat channel (needs -s first)\n-cf [friend]        Pick a friend to DM\n-q / -e             Quit the CLI\n-ct [emoji]         React a message with emoji, ex: -ct 5 :sob:\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e⌨️ Typing\u003c/strong\u003e\u003c/summary\u003e\n\n```\n-r [index] [msg]    Reply to message by index\n-d [idx ...]        Delete messages (list accepted)\n-up                Upload a file (via Explorer popup)\n-deup              Clear all staged uploads\n-fw [idx] [target]  Forward message to someone\n-y [index]           Copy or Yank a message\n-p [index]          Pin a message, if authorized \n-dp [index]         Unpin a message, if authorized\n-e [index] [edit]   Edit a message of index_message with new edit\n\"say\"               Without (-) will say something in current_channel, also sends a file if -up is triggered before\n\"@\"                 List all mentionable users\n\":...:\"             List all possible emoji\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e🔔 Misc\u003c/strong\u003e\u003c/summary\u003e\n\n```\n-ntf / -notif       Show notifications\n-gntf / -gonotif    Jump to notif source\n-\u003en / -\u003cn           Scroll newest/oldest by n messages\n```\n\u003c/details\u003e\n\n---\n\n## 🐞 Known Bugs\n\n\u003e *Minor = doesn't affect core usage much*\n\n* emoji picker wont work on `react` command. *i can actually fix it, but my time is up already`\n* @ mention won't work.\n* (minor) Screen may scroll to top on mention\n* (minor) Command auto-complete can break before API init (fix: press space and retype)\n* (minor) Display name invisibility on some servers\n\n🐛 Found a bug? [Submit an Issue](../../issues)\n\n---\n\n## ✅ Features\n\n### ✔ Done\n\n* Reply, send, delete messages\n* Copy, Pin, Edit messages\n* React to messages\n* Chat in servers / DMs\n* Message forwarding\n* Upload + auto-remove file attachments\n* Display name + timestamp\n* Emoji reactions\n* Notification system (WIP)\n* Rich config via `conf.json`\n* Multi-token login\n* Multi-Access Login (either via ~~Username and Password (not possible apparently, it asked for CAPTCHA instead)~~ or Token)\n### 🚧 Planned / In Progress\n* ⏳ Per-channel notification sounds\n* ⏳ Hotkey support\n* ⏳ Change profile pic, bio, banner\n* ⏳ Open files via browser\n* ⏳ Colored text / markdown preview (via `rich` and `lexer`\n* ⏳ Snippets like `{myutc}` → current time\n* ⏳ Join/leave server\n* ⏳ Bookmark message\n* ⏳ Join \u0026 Leave a server\n* ⏳ Color a text (similar to snippet, reference [Rebane Message Color](https://rebane2001.com/discord-colored-text-generator/)\n\n---\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eChangelog: \u003c/summary\u003e\n\u003cpre\u003e\nv25.06.17 (yy/mm/dd)\n        - Initial release (took 4.5~ hours)\n            a. Working Reply and Sending messages\n            b. Ability to DM or Interact with friends\n            c. Proper Chat UI\n    v25.06.19 (Major Tweaks and Improvement) (took ~9.2 hours)\n        - Improved Chat UI\n            a. Different color for user and other people\n            b. Added timestamp\n            c. Auto-clear for every command trigger\n            d. Long message has horizontal bar\n            e. Reply to message is visible\n            f. Display name and User name shows (tweakable)\n            g. Added more colors\n            h. Color change upon command insert, the input I mean\n        - More commands (check -h)\n            a. -d(elete messages)\n            b. -up(load file)\n            c. -de(stage)up(load file)\n            d. -f(or)w(ard) message\n            e. -n(o)t(i)f\n            f. -g(o to)n(o)t(i)f\n        - Misc\n            a. Minor revamp of code structure\n            b. Added notifications for ping (untested)   \n    v25.06.19.01 (Minor tweaks)\n        - Chat UI\n            a. Attachment is shown\n        - Misc\n            a.  Added `conf.json` to configure the terminal\n    v25.06.21 (Minor bug fixes)\n    v25.06.21.01 (minor bug fixes)\n    v25.06.21.02 (added few features)\n        - More commands\n            a. -y(ank message) # Yank is Copy\n            b. -p(in message)\n            c. -d(eny)p(in message)\n            d. -e(dit message)\n    v25.06.21.03 (added react to message)\n        - More commands\n            a. -(rea)ct (message)\n                \u003e This won't display properly if your CMD unable to show emoji. It do works in Win 11.\n        - Added Account Template\n            a. You can now switch to different account easily through `token.txt`\n            b. Input token via `-t` in CLI\n\u003cpre\u003e\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3ofiz4%2Fdiscordcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3ofiz4%2Fdiscordcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3ofiz4%2Fdiscordcli/lists"}