Singularity

A Discord client written from scratch in C++.
No Electron. No web view. No plugin folder.

C++20 Qt 6.10 Windows x64 End-to-end encrypted voice Plugins compiled in

Windows x64 · about 54 MB · installs for you only, no administrator prompt

Read this before you install it

Discord does not permit third party clients on a normal user account. Running this can get the account banned. That risk is accepted here on purpose. Nothing on this page makes it smaller, and you should decide about it before you download anything.

Your password
Sent to discord.com and nowhere else. Never written to disk. Never logged.
Your session token
Sealed with your Windows account key, so no other account on the machine can read it. The log records its length, never its value.
Captchas
Not answered, ever. If Discord demands one, the sign-in window says so and offers token entry instead.
Images
Fetched only from Discord's own hosts, so a stranger's message cannot make your client call an address of their choosing.

What it does

Everything below is built and working today. What is not built is further down, named plainly.

Talking

Voice channels you can actually join, with sound both ways, encrypted end to end the way Discord now requires.

Mute, deafen, device and volume control, a speaking threshold, and a microphone test with a live level bar.

Watching

Other people's cameras and shared screens are received and decoded, and appear in a grid above the conversation.

Sending your own is the other half of that problem, and is not built yet.

Reading

Message history, live messages, edits and deletes. Images, GIFs, custom emoji, stickers and link previews, animated ones included.

Click any picture for a full size viewer with scroll to zoom and drag to pan.

Everything else

Email and password sign-in with second factor. Server folders you can drag and rename. A Friends page with Online, All, Pending and Blocked.

Full profile windows with banners, badges, coloured role pills, notes, and mutual friends and servers.

The look

A drawn black hole, with night ink laid over it. The background on this page is not a video or a picture — it is the program's own shader, recompiled for the browser. Same ray marching, same photon ring, same Doppler boost on the side of the disk turning toward you.

One seed colour
Pick a colour and the whole application is derived from it while it runs — surfaces, accents, every stylesheet token, and the hole's own disk. No restart. Twelve presets ship, from Monochrome to Ember to Void.
Depth from layers
The rail, the sidebar and the conversation each sit a real step lighter than the one behind, so they read as separate planes without a single border drawn.
Colour is information
The status dots are the one thing the seed never touches. Green, yellow and red have to keep meaning online, away and busy whatever else changes.
Even the title bar
It belongs to Windows rather than Qt, so it is recoloured through the system instead of replaced with a hand made one. Snap layouts and double click to maximise keep working, and there is still no seam across the top.
#07090e ground #0a0d14 rail #10151f sidebar #151b28 conversation #1c2433 composer #6ee7d8 selection #8aa4ff moonlight #3dd68c online

How a call actually works

Getting sound in and out took four separate fixes, each of which looked like the whole problem at the time. They are written down because every one of them presents as plain silence.

1 · Keep the port

The voice gateway is version 8, and the server hands back a host and a port. Dropping the port reaches a different machine, which answers, and then closes. That reply looks like progress and is not.

2 · Encryption is not optional

Since 1 March 2026 Discord accepts only end-to-end encrypted calls. Singularity uses Discord's own DAVE library for the key exchange — and its list of known members must include your own id, because you are in the group too.

3 · Half the header is encrypted

In the modes Discord uses, only the fixed header and a four byte preamble are in the clear. Counting the rest as header makes every single packet fail to open.

4 · Qt does not mix

Two people's audio written to one output is queued, not blended, which is heard as chopped and rushed speech. Each speaker gets a queue, and a 20 ms tick sums them into one frame, with Opus filling in packets that never arrived.

If a call is ever silent again, the log prints a tally every five seconds, plus a named reason for every frame thrown away. That line exists because reading the log found in one run what five rounds of theorising could not.

What it never sends

Most of the tracking people worry about is absent — not because a switch turns it off, but because the code to do it was never written. That is worth stating plainly rather than claiming as a feature.

Analytics events
The official client posts to an endpoint called /science as you click around. Singularity never calls it.
Read receipts
Nothing tells Discord which messages you have looked at, or when.
A real fingerprint
The client details sent on sign-in are fixed numbers written into the source, not your actual Windows version, locale or hardware — and they are identical for everyone running Singularity.
Session correlation
The fields the official client fills with identifiers linking your sessions together are sent empty.
Game detection
Nothing looks at what programs you have open.
Third party images
Pictures come only from Discord's own hosts.

What the Anonymous plugin genuinely does is the part Singularity does send and can stop sending. It strips tracking codes out of links before they leave, and can hide your typing and your status. Because it rewrites what you say, it tests itself against six known cases every time it loads — and if any comes out wrong it refuses to touch messages for the rest of the session and says so. A tracking code getting through is a small harm. A broken link the sender cannot see is a worse one.

Seven plugins, inside the binary

There is no plugin folder, so there is nothing on disk for anything else to swap out. Each one has its own settings page.

Full timestamps

Exact date and time on every message.

On
Message logger

Deleted messages stay visible, and edits get tagged.

On
Quick text

:shrug: and friends expand as you send.

On
Anonymous

Strips tracking codes out of links you send. Can also hide your typing and your status.

On
Silent typing

Never sends the typing signal.

Off
Presence hints

Marks people active when they type or join voice. Off by default, because it works against a choice the other person made.

Off
Nitro watch

Spots gift links the instant they are posted, anywhere, and offers a Claim button. It does not claim by itself.

Off

Why Nitro watch does not claim by itself

Discord does not catch automated accounts by measuring how fast you click. It catches them on the shape of the account: a redeem arriving from a session that never opened the channel, never scrolled, never moved a pointer, and that does it again next week at four in the morning. A random delay hides none of that, because none of it is about timing.

Dead codes are also posted deliberately, to see who bites. A person glances at a suspicious link and moves on. Anything redeeming on its own takes the bait every time, and marks itself doing it. So the part worth automating is the part that is slow for a person: noticing. The press stays yours, which is the part that keeps the account ordinary.

What is not built

Roughly in the order they are worth doing. This list is here because a page that only lists strengths is a page you cannot trust about anything.

  • Sending your own camera or screen. Receiving other people's is built; sending is the other half.
  • File upload, and drag and drop.
  • Search.
  • An emoji picker.
  • Member list down the right side of a server.
  • Right click menus on messages, channels and people.
  • Unread marks and mention badges.
  • Threads and forum channels.
  • Avatar decorations, which are fetched but not drawn.

It is also Windows only, and unsigned. Windows will warn that the publisher is unknown, because a code signing certificate costs money every year and this is one person's project.

Get it

One setup program. It installs for you only and never asks for administrator — there is no service, no driver and nothing shared, so there is nothing to elevate for.

Updating
The program looks for a newer version a few seconds after it starts, and quietly: an up to date copy says nothing at all. Nothing downloads or installs without being agreed to.
Uninstalling
Asks whether to remove your saved sign-in and settings, and defaults to keeping them. Those live in your profile rather than the install folder, so removing the program does not silently take the account with it.
Where the source is
Private. The installers are published in a separate public repository, because an updater pointed at a private one would need a token shipped inside the program — and anything shipped inside a program can be taken back out of it.