Native Discord client for macOS built in Swift and SwiftUI
This project aims to create a fully functional native Discord client in Swift for macOS from scratch.
I'd also recommend checking out DiscordKit, the Discord API implementation Swiftcord relies on.
If you like this project, please smash the star button and be one of my stargazers 🌟! It helps motivate me to continue developing it
Consider supporting me and Swiftcord's development by sponsoring me through GitHub Sponsors or Patreon! It would help ensure this project has a stable future, and you'll get access to releases 2 weeks before everyone else!
Huge thanks to all my supporters! I'm extremely grateful to every single one of them <3
|
kallisti
midnight.town First red-hot supporter! |
|
cxt - First amazing supporter!
|
selimgr
- First extremely cool supporter, and the first sponsor!- An extremely generous anonymous supporter
Swiftcord was created to offer a Discord-like UI and experience while having the performance and memory benefits of native apps. The idea started brewing when I was tight on RAM, then noticed Discord using 600+MB of RAM. I then realized that was the perfect opportunity to explore SwiftUI, since it was relatively new to me at that time. Hence, Swiftcord was born!
For the latest features and fixes, a pre-built version of the latest commit is available here
Alpha releases are available at GitHub Releases
Swiftcord is also available on homebrew as a cask: brew install swiftcord
. Versions are
lock stepped with alpha releases on GitHub releases.
Coming soon!
- OS: macOS Monterey and above (>= 12.0)
- Arch: Apple Silicon or Intel (Most releases are universal bundles)
Note: Note: To open Swiftcord, you may need to right-click on the icon > press open. Some older releases were not signed or notarized with an Apple developer account.
Covers a few common questions I have encountered, click on the question to expand the answer
Will I get banned for using Swiftcord/Is using Swiftcord illegal?
Nobody really knows what Discord's official stance on unofficial clients is. However, hundreds of people and I have been using Swiftcord for quite a while, and nobody has been banned to date. I do not take any responsibility for account bans due to the use of Swiftcord, whether direct or indirect, although there's a very low possibility of that occurring. I recommend trying Swiftcord with an alt if possible.Feature x is missing! When will y be implemented?
Swiftcord currently is in the alpha stage, and hasn't achieved feature parity with the official Discord client yet (it's quite far behind). Many features are planned, but I do not currently have a timeline for them. Development is progressing at a fast pace, but sometimes bugs may take an unexpectedly long time to fix. I appreciate contributions, bug reports, and suggestions :)Swiftcord just crashed!
Although I'm aiming for 0 crashes (which is made easier by Swift), sometimes the unexpected happens xD. If you experience a crash, please open an issue with appropriate information like the line the error occurs on, relevant logs, and what you were doing that might have caused the crash. If you can solve the bug causing the crash, that's even better!Implemented most core message-related features from the official client, including basic markdown and embeds, stickers (lottie/PNG), and editing and deleting events. Animated media, like profile images, server icons and profile banners are supported too! You can now send attachments (both from the file picker and by dragging and dropping) with your messages too! DMs now have first-class support!
More advanced features like voice channels, editing messages, etc. aren't supported yet.
Gateway connection event handling is stable, and reconnection is rock solid (as far as I can test). If you encounter a reconnection bug (not reconnecting, reconnection loop, etc), please open an issue with the relevant logs.
Copyright (c) 2022 Vincent Kwok
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
The above copyright notice, this permission notice, and its license shall be included in all copies or substantial portions of the Software.
You can find a copy of the GNU General Public License v3 in LICENSE or https://www.gnu.org/licenses/.
I ❤️ Open Source