Skip to content
This repository has been archived by the owner on Sep 30, 2023. It is now read-only.
/ Nyx Public archive

WIP terminal client for Discord, written in Node.js

License

Notifications You must be signed in to change notification settings

aprilsbloom/Nyx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nyx

This is a terminal client for Discord, written in Node.js.

NOTE: I have chosen to archive this project as I have no intent in continuing development. The libraries available for TUI's in Node are incredibly limited in regard to functionality, but I may consider rewriting this in another language soon. Anyone is welcome to use this code/repo for whatever they may need it for, i.e making a terminal client for Discord.

Commands

These commands can be ran using the set prefix in config.ini. By default, this is set to t!

  • exit - exits the client.
  • help - prints the help message.
  • clear - clears the message box

Config

The file config.ini contains some of the crucial information for this client. These are the keys and their values to the client:

  • token: (string) your token for Discord, used to log in as you
  • unicode: (boolean) whether or not to attempt rendering unicode symbols in the client
  • prefix: (string) the prefix for commands

Screenshots

Login screen Home screen Example of what actual text channels are rendered like

To-do

- [ ] Rewrite into classes (possibly ts as well) ~~- [ ] Add ability to navigate previously sent messages in the chat - [ ] Add popup on messages when button is pressed (to edit, delete, pin etc, this will require a rewrite of how I log messages) - [ ] Add user role color, unsure if that'll be able to be done well due to different terminals supporting different colors - [ ] Add centered timestamps so that old messages aren't clumped together when a channel is inactive. - [ ] Cache chats to a json file to allow for easy access of loading servers. This will be invalidated on each launch to prevent issues - i.e whenever a server is loaded, its cached in a state object - whenever there are new channels made / channels are rearranged, i can just update the state object - similar concept could be applied to messages, they're queried and then its cached in a state object, then new messages are added to that - means i don't have to query things multiple times, very unoptimized - [ ] Add keybind lines to config file, which would allow for easy access to change them - [ ] Add guild search (could be a keybind, would make a popup) - [ ] Add reply functionality & add replies to log in the messages - [ ] Make pins viewable - [ ] Get notifications to work - [ ] Log channels into categories, possibly even separate servers from channels to another box - [ ] Add message logging (if something gets deleted or edited, change the content visually) - [ ] Add scrollable chat

Releases

No releases published

Packages

No packages published