A CLI-based client for Discord inspired by SDF's commode.
Go to file
Cynthia Foxwell 7a27a7f1b9 move from eris to oceanic 2022-10-09 14:39:15 -06:00
src move from eris to oceanic 2022-10-09 14:39:15 -06:00
.eslintrc.js refactor everything out of one file, add channel rememberance 2022-08-28 16:01:31 -06:00
.gitignore initial commit 2022-08-27 17:27:05 -06:00
.prettierrc add help command 2022-08-27 18:49:02 -06:00
LICENSE Add LICENSE 2022-08-27 22:01:00 +00:00
README.md move from eris to oceanic 2022-10-09 14:39:15 -06:00
package.json move from eris to oceanic 2022-10-09 14:39:15 -06:00
pnpm-lock.yaml move from eris to oceanic 2022-10-09 14:39:15 -06:00

README.md

comcord

A CLI-based client for Discord inspired by SDF's commode.

Why?

  1. All CLI/TUI Discord clients are outdated/unmaintained or have flaws.
  2. I've been spending more time in commode on SDF and have been accustomed to the experience.

Usage

  1. pnpm i
  2. node src/index.js <token>

Currently only bot accounts are supported, and that is unlikely to change anytime soon. Eris has a lot of user-only endpoints implemented, but it would require hacking apart Eris to do the things nessicary to spoof being the actual client. (I have no idea currently what the state of user support in Oceanic is) I also don't want to give skids an easy point of reference of how to spoof the client. :^)

You MUST grant your bot all Privileged Gateway Intents.

Design Decisions

  • Node.js was chosen currently due to familiarity.
  • Eris Oceanic was chosen due to familiarity and the nature of everything not being abstracted out to 200 different classes unlike discord.js.
  • "Jank" by design. While I don't expect anyone to actually use comcord on serial terminals or teletypes other than for meme factor, the option is still there.

TODO

  • Commands
    • Quit (q)
    • Switch guilds (G)
    • Switch channels (g)
    • List online users in guild (w)
    • Emote (e)
      • Just sends message surrounded in *'s
    • Finger (f)
      • Shows presence data if available
      • Creation date, join date, ID, etc
    • Room history (r)
    • Extended room history (R)
    • List channels (l)
    • List guilds (L)
    • Clear (c)
    • Surf channels forwards (>)
    • Surf channels backwards (<)
  • Message Receiving
    • Markdown styling
      • Common markdown (bold, italic, etc)
      • Figure out how spoilers would work
      • Emotes?????
      • Timestamp parsing
      • Mentions parsing
    • Embeds in the style of commode's posted links
    • Messages wrapped in *'s or _'s parsed as emotes
    • Inline DMs to replicate commode's private messages
    • Replies
  • Message sending
    • Puts incoming messages into queue whilst in send mode
    • Mentions
    • Replies
  • Configuration
    • Default guild/channel
  • Threads
  • Not have the token just be in argv
  • Not have everything in one file