Skip to content

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

Notifications You must be signed in to change notification settings

3oFiz4/DiscordCLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Preview

⚙️ DiscordCLI

A Discord terminal client built in ~4 hours. Functional: message, reply, upload — all from the command line.


🖼️ Thumbnail

Banner

Watch more of the showcase here: https://jmp.sh/s/d63EFvt1hZTQpvic5paR


⚠️ Caution

⚠️ USE AT YOUR OWN RISK

This client acts like a selfbot, and using it violates Discord's TOS.
You may get banned.
I am not responsible for any account loss.

✅ Use an alt account, or use within a proper Discord Bot context.


📦 Requirements

emoji==1.6.3 clipboard rich prompt_toolkit discord.py asyncio shutil tkinter playsound threading json

🚀 Setup

First of all. Set up your token first. There's 2 way.

a. python main.py -t [YOUR_TOKEN] b.

  1. Open / Create your token.txt. Insert this template:
---
Username: Account_Username_0
Token: Token_Username_0
---
Username: Account_Username_1
Token: Token_Username_1
---
  1. And replace Token_Username_0 with each desired token. You can also add more entry if you want to.
  2. Then do python main.py -s [index_token]/[username]

Example: python main.py -s 1 # Starts Token_Username_1 python main.py -s Account_Username_1 # Starts token of Account_Username_1

  1. REMEMBER, it should be Username-Token as the template, do not skip it, not even the between Token and :. c. python main.py # Is equal to python main.py -s 0

🔹 Fresh Start

python main.py
# then use -h or -changelog

🔹 Add to System PATH (Recommended)

  1. Clone this repo to: C:/Users/[your-name]/DisCLI
  2. Open System PropertiesAdvancedEnvironment Variables
  3. Under System Variables, edit Path
  4. Add: C:\Users\[your-name]\DisCLI\
  5. Click OK on all windows.

Now you can run main.py from anywhere.


🧩 Command List

-h → help -changelog → recent updates

🧭 Navigation
-s [server]         Pick a server
-c [channel]        Pick a chat channel (needs -s first)
-cf [friend]        Pick a friend to DM
-q / -e             Quit the CLI
-ct [emoji]         React a message with emoji, ex: -ct 5 :sob:
⌨️ Typing
-r [index] [msg]    Reply to message by index
-d [idx ...]        Delete messages (list accepted)
-up                Upload a file (via Explorer popup)
-deup              Clear all staged uploads
-fw [idx] [target]  Forward message to someone
-y [index]           Copy or Yank a message
-p [index]          Pin a message, if authorized 
-dp [index]         Unpin a message, if authorized
-e [index] [edit]   Edit a message of index_message with new edit
"say"               Without (-) will say something in current_channel, also sends a file if -up is triggered before
"@"                 List all mentionable users
":...:"             List all possible emoji
🔔 Misc
-ntf / -notif       Show notifications
-gntf / -gonotif    Jump to notif source
->n / -<n           Scroll newest/oldest by n messages

🐞 Known Bugs

Minor = doesn't affect core usage much

  • emoji picker wont work on react command. *i can actually fix it, but my time is up already`
  • @ mention won't work.
  • (minor) Screen may scroll to top on mention
  • (minor) Command auto-complete can break before API init (fix: press space and retype)
  • (minor) Display name invisibility on some servers

🐛 Found a bug? Submit an Issue


✅ Features

✔ Done

  • Reply, send, delete messages
  • Copy, Pin, Edit messages
  • React to messages
  • Chat in servers / DMs
  • Message forwarding
  • Upload + auto-remove file attachments
  • Display name + timestamp
  • Emoji reactions
  • Notification system (WIP)
  • Rich config via conf.json
  • Multi-token login
  • Multi-Access Login (either via Username and Password (not possible apparently, it asked for CAPTCHA instead) or Token)

🚧 Planned / In Progress

  • ⏳ Per-channel notification sounds
  • ⏳ Hotkey support
  • ⏳ Change profile pic, bio, banner
  • ⏳ Open files via browser
  • ⏳ Colored text / markdown preview (via rich and lexer
  • ⏳ Snippets like {myutc} → current time
  • ⏳ Join/leave server
  • ⏳ Bookmark message
  • ⏳ Join & Leave a server
  • ⏳ Color a text (similar to snippet, reference Rebane Message Color

Changelog:
v25.06.17 (yy/mm/dd)
        - Initial release (took 4.5~ hours)
            a. Working Reply and Sending messages
            b. Ability to DM or Interact with friends
            c. Proper Chat UI
    v25.06.19 (Major Tweaks and Improvement) (took ~9.2 hours)
        - Improved Chat UI
            a. Different color for user and other people
            b. Added timestamp
            c. Auto-clear for every command trigger
            d. Long message has horizontal bar
            e. Reply to message is visible
            f. Display name and User name shows (tweakable)
            g. Added more colors
            h. Color change upon command insert, the input I mean
        - More commands (check -h)
            a. -d(elete messages)
            b. -up(load file)
            c. -de(stage)up(load file)
            d. -f(or)w(ard) message
            e. -n(o)t(i)f
            f. -g(o to)n(o)t(i)f
        - Misc
            a. Minor revamp of code structure
            b. Added notifications for ping (untested)   
    v25.06.19.01 (Minor tweaks)
        - Chat UI
            a. Attachment is shown
        - Misc
            a.  Added `conf.json` to configure the terminal
    v25.06.21 (Minor bug fixes)
    v25.06.21.01 (minor bug fixes)
    v25.06.21.02 (added few features)
        - More commands
            a. -y(ank message) # Yank is Copy
            b. -p(in message)
            c. -d(eny)p(in message)
            d. -e(dit message)
    v25.06.21.03 (added react to message)
        - More commands
            a. -(rea)ct (message)
                > This won't display properly if your CMD unable to show emoji. It do works in Win 11.
        - Added Account Template
            a. You can now switch to different account easily through `token.txt`
            b. Input token via `-t` in CLI

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published