MCPcopy Index your code
hub / github.com/diamondburned/dissent

github.com/diamondburned/dissent @v0.0.37

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.37 ↗ · + Follow
659 symbols 2,257 edges 65 files 320 documented · 49% 19 cross-repo links updated 3mo agonightly · 2025-11-02★ 1,815133 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Dissent logo

Dissent

Screenshot 3

Screenshot 3 Screenshot 1 Screenshot 2 Screenshot 4

GitHub download count Flathub download count Latest release Packaging status Go Report Card

Dissent (previously gtkcord4) is a third-party Discord client designed for a smooth, native experience on Linux desktops.

Built with the GTK4 and libadwaita for a modern look and feel, it delivers your favorite Discord app in a lightweight and visually appealing package.

Features

Dissent offers a streamlined Discord experience, prioritizing simplicity and speed over feature completeness on par with the official client. Here's what you can expect:

  • Text chat with complete Markdown and custom emoji support
  • Guild folders and channel categories
  • Tabbed chat interface
  • Quick switcher for channels and servers
  • Image and file uploads, previews, and downloads
  • User theming via custom CSS
  • Partial thread/forum support
  • Partial message reaction support
  • Partial AI summary support (provided by Discord)

It does not aim to support voice chat and other advanced features, as these are best handled by the official client or the web app.

Installation

Flatpak

Dissent is available on Flathub:

Download on Flathub

Pre-built Downloads

You can download Dissent as a pre-built binary for the following platforms by clicking on the below badges. These are automatically built and uploaded by GitHub Actions on each release.

Windows x86_64

Linux x86_64

Linux Aarch64

Dependencies

  • Linux: Dissent needs GTK4, gobject-introspection, and optionally libcanberra. If compiling, then the library headers are also required.
  • Windows: all the needed dependencies are bundled in the executable.

Distribution Packages

Dissent is available in the distribution repositories below. Click on the badge to see the available versions and installation instructions.

Packaging status

Compiling

You need Go 1.21+ for this step. To compile Dissent and install it into $GOBIN, run:

go install -v libdb.so/dissent@latest

[!NOTE] Compiling is known to take at least 20 minutes on a modern system due to CGo. This is normal and expected, but it is still recommended to use a pre-built binary if available.

Logging In

To log into Dissent, you can either use your token (recommended) or login using your username and password. Here's how you can obtain your token:

  1. Open the Discord web app in your browser and log in.
  2. Press F12 to open the Inspector.
  3. Go to the Network tab then press F5 to refresh the page.
  4. In the 'Filter URLs' text box, search discord api.
  5. Click on any HTTP message entry and inspect its message headers. Under the 'Request Headers' section, search for the Authorization header.
  6. Copy its value (the token) into the Token field, then click Login.

[!WARNING] Logging in using username/email and password is strongly discouraged. This method is untested and may cause your account to be banned! Prefer using the token method above.

[!IMPORTANT] Using an unofficial client at all is against Discord's Terms of Service and may cause your account to be banned! While Dissent tries its best to not use the REST API at all unless necessary to reduce the risk of abuse, it is still possible that Discord may ban your account for using it.

Please use Dissent at your own risk!

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 390
Function 154
Struct 88
TypeAlias 14
Interface 11
FuncType 2

Languages

Go100%

Modules by API surface

internal/messages/view.go56 symbols
internal/messages/composer/composer.go48 symbols
internal/gtkcord/state.go36 symbols
internal/messages/message.go31 symbols
internal/sidebar/guilds/guilds.go24 symbols
internal/window/chat.go23 symbols
internal/window/login/component.go21 symbols
internal/messages/content.go17 symbols
internal/sidebar/channels/channels_model.go16 symbols
internal/sidebar/channels/channel_item.go15 symbols
internal/window/window.go14 symbols
internal/window/quickswitcher/items.go14 symbols

Dependencies from manifests, versioned

al.essio.dev/pkg/shellescapev1.6.0 · 1×
github.com/KarpelesLab/weakv0.1.1 · 1×
github.com/danieljoos/wincredv1.2.2 · 1×
github.com/diamondburned/adaptivev0.0.2-0.20221227093 · 1×
github.com/diamondburned/chatkitv0.0.0-2024061410553 · 1×
github.com/diamondburned/gotk4-adwaita/pkgv0.0.0-2025070308570 · 1×
github.com/diamondburned/gotk4/pkgv0.3.2-0.20250703063 · 1×
github.com/diamondburned/gotkitv0.0.0-2025022306061 · 1×
github.com/diamondburned/ningen/v3v3.0.1-0.20250703054 · 1×

For agents

$ claude mcp add dissent \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page