Flucord is a Redstone project originally created by Rxflex. It is an experimental native Discord desktop client built with Flutter. It replaces the Electron shell with Flutter widgets, native Windows networking, SQLite caching, platform integrations, and packaged media libraries. It does not embed Discord's interface in a browser. QR login uses one short-lived system WebView2 surface only when Discord requires hCaptcha.
Important
Flucord is not affiliated with Discord. The desktop-user transport relies on Discord's private client protocol, which can change without notice. Matching the official desktop profile does not guarantee protocol stability or account enforcement outcomes.
Windows is the primary verified target. macOS and Linux runners exist, but need native-host release validation. The current desktop-user tracer bullet includes native QR remote auth, vault-backed session restoration, Gateway workspace hydration, channel history, and message operations.
The QR and main Gateway WebSocket handshakes are live-validated, including the
mandatory hCaptcha response contract. A completed CAPTCHA solve, desktop-user
session restore, Gateway READY/GUILD_CREATE, guild/channel hydration, and
live channel history are verified against a test account on Windows.
| Area | Status |
|---|---|
| Flutter desktop shell | Ready |
| Native QR login | Ready; QR approval and mandatory hCaptcha live-validated |
| Saved account session | Ready; operating-system credential vault |
| Servers, channels, DMs | Implemented through Gateway bootstrap |
| Message history and mutations | Implemented through desktop REST |
| Live message events | Implemented through desktop Gateway |
| Threads, members, presence | Partial |
| Voice, video, screen share for user chat | Not ready |
| Gateway encoding | JSON; the ETF codec is implemented but not yet the default |
| zstd-stream Gateway compression | Off by default; decoder present, not yet proven on a full session |
See the full feature parity table for exact boundaries and the bundle capability ledger for the machine-generated inventory of the installed client.
The screenshots use the deterministic local demo repository. No Discord account or copied client data is involved.
| Workspace | Pinned messages |
|---|---|
![]() |
![]() |
- Native server rail, channel tree, message timeline, member list, search, and responsive compact layouts.
- Replies, reactions, pins, threads, forums, polls, stickers, attachments, forwarding, editing, deletion, and unread boundaries.
- Native notifications, tray lifecycle, deep links, secure credential storage, SQLite cache, downloads, media playback, and voice-device surfaces.
- Separate transport adapters for desktop-user chat, OAuth, Bot development, and the optional Discord Social SDK.
- No Electron, bundled Chromium runtime, browser session extraction, copied cookies, or imported Discord local storage. The hCaptcha WebView2 is ephemeral and cleared immediately after completion.
- Flutter 3.44 or newer with Windows desktop support.
- Dart 3.12 or newer.
- Visual Studio 2022 with the Desktop development with C++ workload.
- Windows 10 or 11 for the currently verified build.
- Microsoft Edge WebView2 Runtime for Discord's hCaptcha challenge.
flutter pub get
flutter run -d windowsOpen Connections, select Sign in with QR code, scan the QR code in the Discord mobile app, and approve the desktop login. Flucord stores the resulting session only in the operating-system credential vault.
flutter run -d windows --dart-define=FLUCORD_DEMO_MODE=trueDemo mode is compile-time and never restores a real account session.
flutter build windows --releaseDistribute the complete directory below, not only flucord.exe:
build/windows/x64/runner/Release/
Windows x64 releases are published from semantic version tags such as
v0.0.4. Each release contains the complete runtime directory as a ZIP and a
SHA256SUMS.txt file. Verify the archive before extracting it:
Get-FileHash -Algorithm SHA256 .\flucord-windows-x64-v0.0.4.zip
Get-Content .\SHA256SUMS.txtMaintainers publish a release by updating the pubspec.yaml version, creating
an annotated matching tag, and pushing it. GitHub Actions audits the complete
repository history, analyzes and tests the project, builds Windows, generates
detailed notes from GitHub and Git history, and publishes the assets.
Flutter presentation
-> application controllers
-> ChatRepository / gateway interfaces
-> desktop-user, OAuth, Bot, or demo adapters
-> WinHTTP WebSocket / REST / SQLite / OS vault / native media
Server state stays behind repository and gateway contracts. Controllers own
workflow state, widgets render immutable domain models, and transport secrets
do not enter presentation objects or logs. Windows WebSockets use WinHTTP via
Dart FFI because Discord's Cloudflare edge rejects the equivalent dart:io
TLS handshake before protocol negotiation.
Key entry points:
lib/src/domain/: immutable models and transport-neutral contracts.lib/src/data/discord/: Discord REST, Gateway, remote-auth, and mapping code.lib/src/application/: connection, workspace, login, and media controllers.lib/src/presentation/: the native Flutter desktop interface.windows/runner/: Windows runner and optional native SDK bridges.
.\tool\audit_public_repository.ps1
flutter analyze
flutter test
flutter build windows --releaseThe privacy audit examines every reachable commit, its metadata and historical paths, tracked text, and image metadata. It blocks known credential formats, private keys, personal email addresses, public IP addresses, local user paths, and non-fixture Discord snowflakes without printing matched secret values.
Live network checks are opt-in:
$env:FLUCORD_LIVE_REMOTE_AUTH_TEST='1'
flutter test test/discord_remote_auth_live_test.dart
$env:FLUCORD_LIVE_GATEWAY_TEST='1'
flutter test test/discord_desktop_gateway_live_test.dartThe current Windows checkout passes analysis, more than 500 automated tests, both live WebSocket checks, completed QR/hCaptcha account login, native workspace hydration, and a release build. Automated live tests validate transport and QR creation; the completed phone approval and hCaptcha flow was validated interactively because those steps require a person.
- Feature parity
- Desktop protocol notes
- Session and transport boundaries
- Desktop integration
- Native media
- Roadmap
Use roadmap.md as the source of truth for the next vertical slice. Keep
desktop-user, OAuth, Bot, Social SDK, and demo transports independent; add tests
at the repository/controller boundary; and keep Dart/C++ source files below 500
lines.
Flucord is source-available under the Flucord Project License 1.0. The license permits personal and commercial use, modification, forks, and distribution of Flucord while requiring attribution, published corresponding source, and the same license for derivatives.
The canonical project is maintained in the redstone-md GitHub organization.
The interface may be changed inside Flucord or a compliant fork, but it may not be extracted, ported, or reused in a separate product, UI library, template, theme, or design system. Every distribution must preserve the NOTICE, credit original author Rxflex, preserve the Redstone project identity, and link to this canonical repository.
Because of the project-integrity restriction, this is not an OSI-approved Open Source license. Separately identified third-party components retain their own licenses.

