Skip to content

placeholder2703/CLICord

Repository files navigation

CLICord

CLICord(pronounced cli(ng)-cord) is a lightweight terminal-based Discord client written in Python.

Instead of launching an entire Chromium-powered apartment complex just to send messages, CLICord runs directly in your terminal with minimal resource usage.

Caution

This project uses Discord's API directly and may violate Discord's TOS depending on how it is used. This client does not attempt to imitate the official Discord client. It does not send many of the extra events and telemetry normally sent by Discord clients(typing indicators, metadata, science/tracking events, etc.).

"I am not responsible for any loss caused by using "self-bots" or CLICord"

Features

  • Lightweight terminal interface
  • Realtime Gateway connection
  • Message sending and receiving
  • Friend list fetching
  • DM listing
  • Status changing
  • Session resume support

Preview

Chat Preview

Requirements

  • Python 3.9+
  • Terminal ANSI color support(else you're gonna see a messy .dms output)
  • A Discord account
  • Some knowledge about json syntax

Setup

1. Clone this repo

git clone https://github.com/placeholder2703/CLICord.git

Alternatively, you can also just download this repo as a zip file then extract it.

2. Install dependencies

Inside the cloned repo, run:

pip install -r requirements.txt

3. Make a users.json file

Create a users.json file:

{
	"nickname":"discord_token_here"
}

Optionally, you can add multiple accounts too

Example:

{
	"account1":"discord_token_here",
	"account2":"still_discord_token",
	"accountN":"sacred_token_that_you_should_not_leak_lolololol"
}

4. Run

python main.py

Usage

Messages typed are sent to the currently selected channel.

Commands start with a dot (.).

Example:

.changechannel 123456789012345678
yo wsg ma babies

The message yo wsg ma babies will be sent to channel 123456789012345678.


Commands

.help

Displays the command list.


.friends

Fetches and displays your friends list.


.dms

Lists available DMs and Group DMs.

Use the printed channel IDs with .changechannel.


.changechannel <id>

Selects a channel for chatting.

After selecting a channel, normal text input will send messages there.


.send <message>

Sends a message to the currently selected channel.

Useful when the message itself starts with a dot.


.status <status> <activities included?>

Changes your Discord status.

Available statuses typically include:

  • online
  • idle
  • dnd
  • invisible

Optionally, if <activities included?> is provided, activities will be loaded from activities.json.

Example:

.status dnd True

.info

Displays basic account information including ID, user/display name.


Note

Unicode output is enabled automatically on Windows.

If your terminal doesn't have ANSI color support, you can open colours.py and change every variable in class D to ""

Partially vibe-coded


i asked chatgpt to generate this readme by the way

Releases

No releases published

Packages

 
 
 

Contributors

Languages