Skip to content
The Discord terminal client you never knew you wanted.
Go Shell
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.builds Update freebsd build file Mar 16, 2019
.circleci Update go image to 1.12 Jul 7, 2019
.github Fix wrong task name Aug 15, 2019
app Fixed error that caused not being able to see the logutput if the win… Aug 18, 2019
commands Remove ability to toggle the chatheader Aug 18, 2019
config Remove ability to toggle the chatheader Aug 18, 2019
discordutil Channels now have a no one under 18 emoji instead of the text NSFW fo… Jul 31, 2019
maths Remove internal package in order to make life more simple Apr 4, 2019
readstate Last change to readmarkers caused channels with uninitialized cache t… Jul 31, 2019
scripting Remove internal package in order to make life more simple Apr 4, 2019
shortcuts Optimize field alignment of ShortcutDataRepresentation Aug 16, 2019
snap Notifications in future snap packages will now work. Fixes #56 Jul 19, 2019
syntax Make code highlighting look less agressive Apr 20, 2019
times All quotes now use UTC time. Aug 7, 2019
tools add tools for creating shortcuts Jul 11, 2019
ui Fixed a bug where selecting the same channel twice was overriding the… Aug 19, 2019
.gitignore Extend gitignore Jul 20, 2019
.travis.yml Travis on Mac OS should now build with go 1.12 Jul 24, 2019
LICENSE Initial commit Jan 10, 2019 fixed small errors Aug 12, 2019
appveyor.yml Switch appveyor build to be using go 1.12 Apr 22, 2019
cordless.json Bump scoop package to version 2019-08-10 Aug 10, 2019
cordless.json_template Add small utility script for releasing a new version of cordless. Mar 19, 2019
cordless.rb_template Add additionla step to build, that creates the homebrew file. Jun 13, 2019
go.mod Set version of shortnotforlong to 1.0.0 Aug 18, 2019
go.sum Set version of shortnotforlong to 1.0.0 Aug 18, 2019
main.go Make go1.12 the minimal go version in order to avoid unecpected behav… Jul 7, 2019 Release script now cleans up snap. Aug 16, 2019


OS Build-Status
linux CircleCI
darwin Build Status
windows Build status
freebsd status

codecov Discord


Cordless is supposed to be a custom Discord client that aims to have a low memory footprint and be aimed at power-users.

WARNING: Self-bots are discouraged and against Discords TOS.

This project was mainly inspired by Southclaws Cordless, which he sadly didn't develop any further.

The application only uses the official Discord API and doesn't send data to any third party. However, this application is not a official product by Discord (Hammer & Chisel).

Demo Screenshot

How to install it

Installing on Linux


On linux the recommended way of installation is the snap.

Simply run (Might require sudo):

snap install cordless

Snap will automatically install updates.

Arch based Linux distributions

If you are on an arch based distribution, you could use the AUR package:


$ git clone
$ cd cordless-git
$ makepkg -sric

With yay:

$ yay -Syu cordless-git

Manual Linux installation

If you are installing manually via:

go get -u

then you also need xclip in order to be able to copy and paste properly.

There is currently no wayland support for copy and paste.

Installing on Windows

In order to install the latest version on Windows, you first need scoop.

After installing scoop, run the following:

scoop bucket add biosmarcel

This adds the bucket (repository) to your local index, allowing you to install any package from that bucket.

Install cordless via

scoop install cordless

In order to install updates, run:

scoop update cordless

Installing on macOS

Use Homebrew to install cordless on macOS:

brew tap Bios-Marcel/cordless
brew install cordless

If you don't install via homebrew, then you should get pngpaste, since it's what allows you to paste images.

Using pre-built binaries


You can always find the latest release on this repositories release page.

For your information, since May 22th 2019 all binaries will be build using the following parameters: -ldflags="-w -s". So checksums of binaries built without those parameters will not align with the ones built with those parameters. Meaning that if you want to compare checksums, please keep this in mind.

Building it from source

In order to execute this command you need to have go 1.12 or a more recent version installed.


First you have to grab the code via:

go get -u

In order to execute the application, simply run the executable, which lies at $GOPATH/bin/cordless. In order to be able to run this from your terminal, $GOPATH/bin has to be in your PATH variable.


On launch, cordless will offer you two login methods:

  1. Using an authentication token
  2. Using email and password

I recommend the first way, as the second one won't work anyway in case you have two-factor authentication enabled. After logging in using either method, your token is stored locally on your machine. The token will not be encrypted, so be careful with your configuration file.

If you are logging in with a bot token, you have to append Bot (yes, with the space) in front of the token.


If you need to find out how to retrieve your token, check the wiki at.

Quick overview - Navigation (switching between boxes / containers)

Shortcut Action
Alt + S Sets the focus on the servers (guilds) container
Alt + C Sets the focus on the channels container
Alt + T Sets the focus on the messages container
Alt + M Sets the focus on the messages input field
Alt + U Sets the focus on the users container
Alt + P Opens the direct messages container
Alt + . Toggles the internal console view

Further shortcuts / key-bindings can be found in the manual on the internal console with the command manual.

If any of the default commands don't work for you, open the keyboard shortcut changer via Alt + Shift + S.

Extending Cordless via the scripting interface

Cordless has a very basic scripting interface that exposes predefined events. Scripts can simply be dumped into the subfolder scripts of the cordless configuration folder.

An example can be found here: Kaomoji

Currently the scripting interface only offers a single event, if people show interest in this feature, I might add more, as I am currently not very interested in it.


All kinds of contributions are welcome. Whether it's correcting typos, fixing bugs, adding features or whatever else might be good for the project. If you want to contribute code, please create a new branch and commit only changes relevant to your planned pull request onto that branch. This will help isolating new changes and make merging those into master easier.

I also encourage you to report anything you deem a bug, because that means that there might problems with the UX that could still be worked on. Obviously feature requests are welcome as well, no matter if those are features which are already part of the official discord client or not.

Oh and please try to keep things pragmatic and foul-language free ;)

If there are specific issues you want to be solved quickly, you can set a bounty on those via IssueHunt. The full 100% of the bounty goes to whoever solves the issue, no matter whether that's me or someone else.

If none of those ways of contributing are your kind of thing, feel free to donate something via Liberapay. It may not directly have an impact on the project, but it will surely motivate me to keep working on this project, as it shows that people care about it.

Why should or shouldn't you use this project

Reasons to use it:

  • Your PC is not very powerful
  • You're on a mobile device and value your battery life
  • You just like terminal applications
  • You are scared that the discord client communicates too much with the HQ

Reasons not to use it:

  • You like fancy GUI
  • You want to see images, videos and whatnot inside of the application itself
  • You need the voice/video calling features (This might soon change!)
  • You need to administrate a server (no administration features yet)

Similar projects

Here is a list of similar projects:

Hit me up if you have a similar project and I'll gladly add it to the list.


If you happen to encounter a crash or a bug, please submit a bug report via the projects issue tracker.

In case that you simply can't use any shortcuts that the application has, this might be due to your terminal emulator accepting those instead of letting cordless handle them.

If you need help or have questions that you don't want to create an issue for. feel free to hit me up on Discord: Marcel#7299. Alternatively, just join the public Cordless server linked at the top of the Readme.

You can’t perform that action at this time.