Disgo CLI is a lightweight, secure, and feature-rich Discord terminal client. Features web-based login interface with QR code authentication.
- Lightweight
- Configurable
- Mouse & clipboard support
- Attachments
- Notifications
- 2-Factor & QR code authentication
- Discord-flavored markdown
Install globally via npm:
npm install -g @involvex/disgo-cliYou can download and install a prebuilt binary here for Windows, macOS, or Linux.
- Arch Linux:
yay -S disgo-cli-git(coming soon) - Gentoo (available on the guru repos as a live ebuild):
emerge net-im/disgo-cli(coming soon) - FreeBSD:
pkg install disgo-cli(coming soon) - Nix (NixOS, home-manager)
- Upstream flake installation: Add
inputs.disgo-cli.url = "github:involvex/disgo-cli". Install usinginputs.disgo-cli.homeModules.default(.enable, .package, .settings TOML).
- Upstream flake installation: Add
- Windows (Scoop): Coming soon
git clone https://github.com/involvex/disgo-cli
cd disgo-cli
go build .x11-dev is required for X11 clipboard compatibility:
- Ubuntu:
apt install xwayland - Arch Linux:
pacman -S xorg-xwayland
For OAuth-based login, you need to configure a Discord OAuth2 application:
- Go to Discord Developer Portal
- Create a new application (or use existing one)
- Go to "OAuth2" section
- Under "Redirects", add:
http://localhost:4444/oauth/callback - Copy the Client ID and Client Secret
- Set environment variables:
export DISGO_CLI_CLIENT_ID="your_client_id_here" export DISGO_CLI_CLIENT_SECRET="your_client_secret_here"
- Restart the application - now OAuth login will use real Discord authentication instead of placeholder
Note: OAuth only requests identify scope, which gives basic user info. No server/bot permissions needed.
- Run the
disgo-cliexecutable with no arguments:
disgo-cli- For web-based login, use the
--serveflag:
disgo-cli --serveThis starts a web server at http://localhost:4444 with a Discord-themed interface for QR code or API-based login.
If you are logging in using an authentication token, provide the
tokencommand-line flag (eg:--token "OTI2MDU5NTQxNDE2Nzc5ODA2.Yc2KKA.2iZ-5JxgxG-9Ub8GHzBSn-NJjNg"). Alternatively, set the value of theDISGO_CLI_TOKENenvironment variable to the authentication token. The token is stored securely in the default OS-specific keyring.
If installed via npm, you can use these commands:
# Start the application
npm start
# Start with web login interface
npm run serve
# Run in development mode
npm run dev
# Build the binary
npm run build
# Clean build artifacts
npm run cleanThe configuration file allows you to configure and customize the behavior, keybindings, and theme of the application.
- Unix:
$XDG_CONFIG_HOME/disgo-cli/config.tomlor$HOME/.config/disgo-cli/config.toml - Darwin:
$HOME/Library/Application Support/disgo-cli/config.toml - Windows:
%AppData%/disgo-cli/config.toml
Disgo CLI uses the default configuration if a configuration file is not found in the aforementioned path; however, the default configuration file is not written to the path. The default configuration can be found here.
Do this if you get the error:
failed to get token from keyring: secret not found in keyring
Run the following command in a terminal window. Replace YOUR_DISCORD_TOKEN with your authentication token.
cmdkey /add:disgo-cli /user:token /pass:YOUR_DISCORD_TOKENRun the following command in a terminal window. Replace YOUR_DISCORD_TOKEN with your authentication token.
security add-generic-password -s disgo-cli -a token -w "YOUR_DISCORD_TOKEN"- Start the keyring daemon.
eval $(gnome-keyring-daemon --start)
export $(gnome-keyring-daemon --start)-
Create the
loginkeyring if it does not exist already. See GNOME/Keyring for more information. -
Run the following command to create the
tokenentry.
secret-tool store --label="Discord Token" service disgo-cli username token- When it prompts for the password, paste your token, and hit enter to confirm.
Important
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 Disgo CLI.
