Lightweight Discord terminal client

Overview

discordo

Lightweight Discord terminal client

Preview

Features

  • Lightweight: Discordo is designed to have a low memory footprint and low CPU usage, overall a low usage of system resources.
  • Secure: Discordo securely encrypts and stores the authentication token on first login to an OS-specific keyring.

Installation

Building

git clone https://github.com/rigormorrtiss/discordo
cd discordo && go build

# Optional
mv ./discordo /usr/local/bin

Getting Started

  • Run the built executable in a new Terminal.
  • Choose the preferred login method.
  • Log in using the chosen login method and click on "Login" button to continue.

Disclaimer

Automated user accounts or "self-bots" are against Discord's Terms of Service. I am not responsible for any loss caused by using "self-bots" or Discordo.

Comments
  • I'm confused in how to add transperency.

    I'm confused in how to add transperency.

    I'm using kitty terminal. and my terminal already has transparency. I have submitted an issue about it here 'https://github.com/ayntgl/discordo/issues/133' But I'm not sure how to implement the solution. I setted up my TOML file to look like this [theme] border = "white" title = "white" background = ""

    I was following instructions from this comment "@tildethine, you can now set the theme.background field to an empty string in the configuration file to have a transparent background." submitted by @ayntgl

    But after doing that my discordo is still not transparent :/ I've looked into theme.go and this is what I see. package config

    type ThemeConfig struct { Background string toml:"background" Border string toml:"border" Title string toml:"title" }

    func newThemeConfig() ThemeConfig { return ThemeConfig{ Background: "", Border: "white", Title: "white", } }

    Looks like it read the TOML file but it's still not transparent :/

    opened by tildethine 7
  • Do I need to run an installer to get the config.toml file?

    Do I need to run an installer to get the config.toml file?

    I am running the app from source on OSX and not finding this file in any of the prescribed locations.

    Can someone share a default config.toml I can install?

    In particular, I'm trying to figure out the setting that will let me set the "Home" key (in re: https://github.com/ayntgl/discordo/issues/173)

    Thank you very much

    opened by slashdottir 6
  • Nothing happens after pressing

    Nothing happens after pressing "LOGIN" button.

    Title is what it says. Even if I put in a knowingly fake email and password, nothing happens when I try and press the login button. It hangs for a split second, then does nothing. No errors that I can visually see however. Would be helpful if I knew the location of some sort of log file or something of the sort, but I can't find any, apologies for that.

    OS: Arch 5.18.12-arch1-1 (Archcraft) Terminal: Alacritty 0.10.1-2 Discordo: r119.797d557-1 (Version currently on the AUR)

    bug 
    opened by Ahndrek-LiCyri 6
  • feat: implement keybindings for opening and downloading attachments

    feat: implement keybindings for opening and downloading attachments

    This adds a few new config options:

    attachment_download_location a string which is, by default, set to the platform's default downloads folder.

    open_attachment a keybind which, when used while hovering over a message with at least one attachment, will open those attachments in the system's default handler. It uses start on Windows, xdg-open on Linux and open on MacOS

    download_attachment a keybind which, when used while hovering over a message with at least one attachment, will download those attachments in the location configured in attachment_download_locaiton

    as well as, of course, all the features relating to those configuration options.

    While I could test it on Windows and Linux, I am as of yet unsure if this works on MacOS. Also, this does not implement any user feedback upon downloading or opening a file, as I am currently unfamiliar with the UI code.

    btw this is my first ever PR so I'd appreciate any feedback

    feat 
    opened by KodiCraft 6
  • Panic Crash while logging in from 2FA account

    Panic Crash while logging in from 2FA account

    Installed using AUR. Crashes when Trying to login with a 2 factor authentication enabled account.

    panic: account has 2FA enabled [recovered]
    	panic: account has 2FA enabled
    
    goroutine 1 [running]:
    github.com/rivo/tview.(*Application).Run.func1(0xc00021e000)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/application.go:243 +0x87
    panic(0x883f80, 0xc00000e270)
    	/usr/lib/go/src/runtime/panic.go:965 +0x1b9
    main.newSession(0xc000402ea0, 0x1a, 0xc00046e140, 0xe, 0x0, 0x0, 0xc000088800)
    	/home/niteshk/.cache/yay/discordo-git/src/discordo/discordo.go:126 +0x306
    main.onLoginFormLoginButtonSelected()
    	/home/niteshk/.cache/yay/discordo-git/src/discordo/discordo.go:267 +0x152
    github.com/rivo/tview.(*Button).InputHandler.func1(0xc0003e7020, 0xc0003ea810)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/button.go:129 +0x6a
    github.com/rivo/tview.(*Box).WrapInputHandler.func1(0xc0003e7020, 0xc0003ea810)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/box.go:161 +0x62
    github.com/rivo/tview.(*Form).InputHandler.func1(0xc0003e7020, 0xc0003ea810)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/form.go:673 +0xee
    github.com/rivo/tview.(*Box).WrapInputHandler.func1(0xc0003e7020, 0xc0003ea810)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/box.go:161 +0x62
    github.com/rivo/tview.(*Application).Run(0xc00021e000, 0x0, 0x0)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/application.go:335 +0x7a7
    main.main()
    	/home/niteshk/.cache/yay/discordo-git/src/discordo/discordo.go:70 +0x40d
    
    bug 
    opened by iamdevnitesh 5
  • Can't see channels

    Can't see channels

    Hi there,

    Even if I was finally able to build and log into discordo using my discord user/pass, I can't see the servers or channels listed anywhere. I can only see the PMs listed under the channels window, which is somewhat confusing.

    Looking at the instructions, they don't mention anything special should be done.

    So, how can I make servers & channel show up on discordo? I mean, the ones I am joined in.

    Thanks!

    unverified 
    opened by vanfanel 4
  • Failed to build on GNU/Linux Ubuntu 22.04

    Failed to build on GNU/Linux Ubuntu 22.04

    Hi there,

    This is my first time building a "go" program, so I am sorry if I did something wrong.

    I installed the "go" compiler like this: sudo apt-get install gccgo-go

    Then, I did this: go mod download github.com/gdamore/tcell/v2

    Then I tried to build with make build -j4

    But I get:

    
    go build -ldflags "-s -w"
    ../../go/pkg/mod/github.com/mattn/[email protected]/runewidth.go:7:2: //go:build comment without // +build comment
    ui/login_view.go:10:2: //go:build comment without // +build comment
    make: *** [Makefile:16: build] Error 1
    
    

    Any idea on what's going on? Some omission on my side, for sure, but what?

    Thanks!

    opened by vanfanel 4
  • Missing servers from the guilds view

    Missing servers from the guilds view

    I posted this question on the discord forum, but the server is now missing.

    My guilds list is missing everything except for the server I created and my direct messages. I have to log in with the '--token' method as I have issues with captcha when using email and password, if that makes any difference.

    opened by 7m0E7TRWiyc7eJlETAgDR-rp6HLJf2yvSnJLuQL 4
  • desktop notifications via dbus or beeep

    desktop notifications via dbus or beeep

    https://github.com/ayntgl/discordo/issues/121 was mainly referencing dunst, which it's only possible way to communicate to with notifiactions is with dbus, and with the beeep library it should be straight-forward i'd assume.

    tl;dr use beeep as it can support dbus, which means native system notifictations.

    alternatively; have a FIFO/file for discordo to put notifiactions into, which can be read by a wrapper to send to a notification handler (eg. herbe, xnotify, dunst (without dbus!))

    feat good first issue 
    opened by wael444 4
  • Compiled under Android ARM64 via Termux Not Running

    Compiled under Android ARM64 via Termux Not Running

    I have compiled & moved binary to $PREFIX/bin & it launches perfectly as well. I inserted my token as per this guideline

    However after login it just is blank ...altough separators / sections are shown but no messages or channel names?

    Screenshot_20220919_165326_Termux

    opened by defencedog 4
  • Prebuilt Binary for Linux error

    Prebuilt Binary for Linux error

    Hello there

    I needed some help with running the prebuilt binary on Pop OS. I extracted the downloaded zip and gave the file inside permission to run as an executable. But running it does nothing.

    Kindly help me with this issue. Thanks!

    opened by IdleEndeavor 4
  • Messages flow in from every channel at once, rather than just the selected one...

    Messages flow in from every channel at once, rather than just the selected one...

    Expected behaviour should be that selecting a channel would only show messages from that channel, but instead selecting a channel shows the messages belonging to that channel before flooding the chatlog (visually) with spam from other channels or even servers.

    image Note how, despite having no channel selected at all, I'm still receiving a flood of messages from random servers.

    opened by amenokagaseo 0
  • Channel list reveals names of unaccessible channels (mod- or patron-only)

    Channel list reveals names of unaccessible channels (mod- or patron-only)

    OS: Artix Linux Discordo: built from master commit 02a8dbd (HEAD as i'm writing this)

    I've been checking my servers and on every server (where they exist, presumably) in the channel list i started seeing channels i should not be able to see - channels for mods, patrons etc (i'm neither of those anywhere). When selected, the content, luckily, isn't revealed; i didn't rick trying to send a message in one. Either Discord's API isn't as bulletproof, or discordo is too invasive.

    Other clients: haven't compared, but i don't remember that issue from the past.

    feat good first issue 
    opened by acid-bong 3
  •  Unread channels not showing (same as #159)

    Unread channels not showing (same as #159)

    .cache/discordo.log:

    2022/10/18 23:54:43 messages_view.go:56: Discord 403 error: Missing Access
    2022/10/19 06:24:04 messages_view.go:56: Discord 403 error: Missing Access
    2022/10/19 06:36:11 messages_view.go:56: Discord 403 error: Missing Access
    

    discordo r492.fdad346-1

    I have 2FA active

    Edit: I deactivated 2FA. This did not change the lack of unread notification. It did eliminate the "Missing Access" error though.

    unverified 
    opened by 7m0E7TRWiyc7eJlETAgDR-rp6HLJf2yvSnJLuQL 4
  • typing indicators in channels

    typing indicators in channels

    i'd assume this is an very obscure feature, but still quite nice to know the typing users in the current channel. i would assume that it would request discord api constantly for the typing users, or to listen for typing users provided from api(?)

    feat 
    opened by wael444 0
Owner
creator of overly complex things
null
Stonks is a terminal based stock visualizer and tracker that displays realtime stocks in graph format in a terminal.

Stonks is a terminal based stock visualizer and tracker. Installation Requirements: golang >= 1.13 Manual Clone the repo Run make && make install Pack

Eric Moynihan 516 Nov 16, 2022
a lightweight CLI client for interacting with the Akash Network

Akash Command Center A lite weight client for communicating with the Akash Network. There are no provider, or validator bits in this project. Install

Akash Network 12 Feb 12, 2022
Terminal client for SimpleNote

GoNote - Terminal client for SimpleNote GoNote is a simple utility for managing notes in your SimpleNote account. It allows basic operations like crea

Konrad Wąsowicz 55 Nov 22, 2022
YouTube client on your terminal

MeowTube YouTube client on your terminal Table of Contents About Getting Started Usage Contributing About MeowTube is a CLI (Command Line Interface) t

Abdul Fattah Ikhsan 27 Jul 29, 2022
lazyhub - Terminal UI Client for GitHub using gocui.

lazyhub - Terminal UI Client for GitHub using gocui.

ryo-ma 167 Oct 27, 2022
📱🥴 TikTok terminal client for browsing & downloading videos

tiktik ?? ?? - TikTok Terminal Client Name inspiration - this yt vid Huge Thanks to Egor who wrote the parsing part Installation ?? go get -u github.c

Ilya Revenko 76 Nov 11, 2022
Visp is a Vi-like Spotify client for terminal users.

Visp Visp is an interactive console client for Spotify, written in Go. Its interface is similar to Vim, and aims to be fast, configurable, and practic

Kim Tore Jensen 44 Jun 21, 2022
Slack client for your terminal

slack-term A Slack client for your terminal. Installation Binary installation Download a compatible binary for your system. For convenience, place sla

JP Bruins Slot 6.1k Nov 26, 2022
Terminal client for MangaDex 📖

mangadesk - Terminal client for MangaDex ?? Download manga directly from your terminal to read! This client retrieves information straight from MangaD

null 617 Nov 20, 2022
TScli - a very simple terminal-based client for TSWeb online judge

TScli TScli - a very simple terminal-based client for TSWeb online judge. It supports submitting problems and receiving feedback on them. Installation

Sergey Kharitontsev-Beglov 4 Oct 24, 2021
Gocheat - Golang terminal client for cht.sh that uses charm.sh's bubbletea project

Go Cheat.sh install gotext go get -u golang.org/x/text/cmd/gotext go generate

Cyber Oliveira 22 Jun 3, 2022
A simple way of sending messages from the CLI output to your Discord channel with webhook.

discat A simple way of sending messages from the CLI output to your Discord channel with webhook. Actually, this is a fork version of slackcat that I

dw1 32 Nov 15, 2022
Discord screenshare, now with audio!

audio-share-discord-linux Discord screenshare, now with audio! Build Instructions go build . chmod +x audio-share-discord-linux ./audio-share-discord-

null 44 Nov 9, 2022
Brigodier is a command parser & dispatcher, designed and developed for command lines such as for Discord bots or Minecraft chat commands. It is a complete port from Mojang's "brigadier" into Go.

brigodier Brigodier is a command parser & dispatcher, designed and developed to provide a simple and flexible command framework. It can be used in man

Minekube 16 Jun 5, 2022
Simple, seamless, lightweight time tracking for Git

Git Time Metric Seamless time tracking for all your Git projects $ gtm report -last-month $ gtm report -last-month -format summary $ gtm report -last-

Git Time Metric 916 Nov 21, 2022
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.

asciigraph Go package to make lightweight ASCII line graphs ╭┈╯. Installation go get github.com/guptarohit/asciigraph Usage Basic graph package main

Rohit Gupta 2.1k Nov 17, 2022
Shelby is a fast ⚡️ , lightweight ☁️ , minimal✨, shell prompt written in Go.

Shelby is a fast ⚡️ ,lightweight ☁️ ,minimal ✨ , shell prompt written in Pure Go. Installation Follow the steps below(Linux and macOS), and Post Insta

Athul Cyriac Ajay 167 Oct 21, 2022
SSH Lightweight management tools

tssh golang 实现的ssh 工具 安装 下载安装 下载地址 release windows用户请手动下载,暂时不提供一键安装模式( 主要是批处理脚本不会写 ) Mac一键安装 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.

lrs 125 Sep 14, 2022
a lightweight and simple cli package

▄████████ ▄█ ▄█ ███ ███ ███ ███ ███ █▀ ███ ███▌ ███ ███ ███▌ ███ ███ ███▌ ███ █▄ ███

seo.do 12 Oct 14, 2021