Log in with your own Discord account and get the familiar four‑pane Discord, rendered with Liquid Glass (macOS 26 Tahoe), speaking the Discord v10 REST + Gateway protocols directly — no Chromium, a fraction of the RAM, instant launch.
Warning
Using a user token from a non‑official client ("self‑botting") violates Discord's Terms of Service and can get your account terminated. Maccord stores your token only on your machine and sends it only to Discord over TLS, but the risk is yours. The same networking layer works with a bot token too if you'd rather stay within ToS.
The official Discord desktop app is an Electron app: it ships an entire copy of Chromium and runs your chat as a web page across half a dozen processes. Maccord is the opposite — a hand‑written native Mac app.
It's not a clone or a web wrapper — it talks to Discord's wire protocol itself and draws the UI pixel‑for‑pixel with native views.
🔎 Quick Switcher (
⌘K) — search your entire account: every server, every channel, every DM, every friend. Fuzzy, space‑insensitive matching (gamedevfinds Game Dev), channels you can't view are filtered out, recents first, arrow‑key + click navigation. It fetches every server's channel list up front so the index is always complete.
|
🗂️ Servers, channels & DMs
💬 Messages & composer
|
👥 People, presence & moderation
🪄 Platform polish
|
Measured on this machine, a typical Maccord session runs as a single ~200 MB process. Discord's Electron build spawns a Chromium main process plus a GPU process and several renderer / utility processes that together commonly sit well above 600 MB. Maccord has no web runtime to boot, so it launches instantly and idles cheaply.
Numbers vary with how many servers you're in and how much history you've scrolled — Maccord background‑loads channel lists and unread history to keep the switcher and sidebar snappy.
Download the latest Maccord.app from the Releases page, drag it to
/Applications, and launch it. It's ad‑hoc signed, so the first launch may need right‑click →
Open (or xattr -dr com.apple.quarantine /Applications/Maccord.app).
Or build from source:
git clone https://github.com/time-attack/maccord.git
cd maccord
swift build && swift test # compile + test the core
scripts/build-app.sh release # assemble dist/Maccord.app (icon + Keychain entitlement)
open dist/Maccord.appYou can also open Package.swift in Xcode and run the maccord scheme.
On first launch, paste your Discord token into the login screen. Your token is saved to the
macOS Keychain, with a file‑permission‑protected fallback in
~/Library/Application Support/Maccord/ so that ad‑hoc dev rebuilds don't log you out —
later launches connect automatically. Log out from the user panel to wipe both.
A thin SwiftUI app over a Foundation‑only core library.
Sources/
MaccordCore/ # Foundation only — unit‑testable, no UI
Models/ # Codable Discord types (Snowflake, Guild, Message, …)
Networking/ # actor RESTClient + typed v10 endpoints + rate limiter
Gateway/ # actor GatewaySocket — WebSocket, heartbeat, resume,
# typed AsyncStream<GatewayEvent>
Persistence/ # actor KeychainStore + TokenStore (+ file fallback)
maccord/ # SwiftUI app
State/ # @MainActor @Observable stores + EventApplier
DesignSystem/ # color/layout/type tokens, Liquid Glass, markdown
Views/ # GuildRail · ChannelSidebar · Chat · Members · QuickSwitcher · …
Services/ # ImageCache, notifications, fonts
Data flow: GatewaySocket (actor) yields a Sendable AsyncStream<GatewayEvent> → a single
@MainActor pump in AppState → EventApplier mutates the @Observable stores → SwiftUI
re‑renders. REST calls flow into the same stores. Full notes in ARCHITECTURE.md.
| Keys | Action | Keys | Action | |
|---|---|---|---|---|
⌘K |
Quick Switcher | ⌘B/I/U |
Bold / italic / underline | |
⌘U |
Toggle member list | ⌘= ⌘− |
Text size | |
⌥↑ ⌥↓ |
Prev / next channel | ⌘/ |
Shortcut reference |
Honest scope — deliberately out of scope for now: voice / video + DAVE E2EE · GIF picker (Tenor/Giphy), Lottie stickers, inline media players · server‑side link unfurling, full forum / stage browsing · edit history, slash commands, audit log, multi‑account switcher, drag‑to‑reorder · full role / emoji editors.