A Windows Rust application for managing multiple Discord instances (Discord, PTB, Canary) with persistent logins, automatic cache management, BetterDiscord patching, system startup integration, and easy switching between accounts.
Discord supports running multiple instances with the --multi-instance flag, but this comes with two major issues:
- You have to log in again every time you restart Discord
- Managing multiple instances manually is cumbersome and error-prone
Discord Multiclient Manager solves both problems by:
- Creating persistent profile directories for each instance - your login sessions are saved and persist across restarts
- Providing both GUI and CLI interfaces for easy management of multiple Discord accounts
- Supporting all Discord variants - Discord stable, PTB, and Canary
- Auto-starting instances with program launch or system startup
- Quick-switching between running instances
- Automatic cache management to keep your profiles clean
- 🖥️ Dual Interface - Intuitive GUI and powerful CLI
- 🔐 Persistent Logins - Login once, stay logged in across restarts
- 🎭 Multiple Variants - Support for Discord stable, PTB, and Canary
- 🚀 Smart Auto-Start - Two autostart modes:
- Launch with program - Start instances when the manager launches
- Launch on system startup - Start instances when Windows boots (creates startup shortcuts)
- 🔄 Quick Switch - Instantly focus between running Discord windows
- 💾 Profile Management - Each instance gets its own isolated profile directory
- 🧹 Cache Management - Manual and automatic cache clearing
- Clear cache on demand with one click
- Auto-clear cache on launch (optional per-instance setting)
- Works with both custom and default profiles
- 🎨 BetterDiscord Integration - Install and manage BetterDiscord
- One-click install/repair/uninstall per Discord variant
- Automatic instance restart after BD operations
- Variant-level management (affects all instances of a variant)
- Backup and restore BetterDiscord data with timestamped archives
- 📊 Installation Overview - Visual dashboard showing which Discord variants are installed
- Shows BetterDiscord installation status per variant
- Direct download links for uninstalled Discord variants
- ⚙️ Settings Dialog - Configure profile storage location through GUI
- 🎨 Visual Status Indicators - Color-coded status display
- Green = Running, Gray = Stopped, Red = Discord not installed
- Real-time status updates every 2 seconds
- Detailed autostart mode labels (
[AUTO-START: With Program]/[AUTO-START: With Windows])
⚠️ Smart Warnings - Alerts for uninstalled variants with direct download links- 🎯 Default Profile Support - Option to use Discord's standard installation
- ✅ Windows - Full support with Windows API window management & startup shortcuts
- 🔧 Linux - Partial implementation (currently non-functional, in development)
- Go to the Releases page
- Download the latest
DiscordMulticlient.exe - Run
DiscordMulticlient.exe
Requirements: Rust 1.91 or later (Install Rust)
# Clone the repository
git clone https://github.com/CerealsDev/DiscordMulticlient.git
cd DiscordMulticlient
# Build with optimizations
cargo build --release
# Run the application
.\target\release\DiscordMulticlient.exeLaunch the application without any arguments:
DiscordMulticlient.exeThe GUI provides:
- Visual instance list with status indicators (green = running, gray = stopped, red = Discord not installed)
- Launch/Stop/Focus buttons for each instance
- Add/Edit/Remove instance management with:
- Autostart configuration (program launch or system startup)
- Profile type selection (custom or default)
- Discord variant selection
- Cache management options
- Clear Cache button for manual cache clearing (per instance)
- Discord Installations - Check which Discord variants are installed
- BetterDiscord installation status and controls
- Install/Repair/Uninstall BetterDiscord per variant
- Backup and restore BetterDiscord data to/from timestamped ZIP files
- Automatic restart of affected instances after BD operations
- Settings - Configure profile storage location
- Launch All / Stop All - Bulk operations
- Auto-refresh - Status updates every 2 seconds
The CLI provides full control for automation and scripting with support for all features:
# List all configured instances
DiscordMulticlient list
# Show status of running instances
DiscordMulticlient status# Launch auto-start instances (WithProgram type)
DiscordMulticlient launch
# Launch specific instance
DiscordMulticlient launch "Main Account"
# Launch all instances
DiscordMulticlient launch --all
# Stop specific instance
DiscordMulticlient stop "Main Account"
# Stop all instances
DiscordMulticlient stop --all
# Focus/switch to instance window
DiscordMulticlient focus "Main Account"# Add instance with all options
DiscordMulticlient add "Work Account" \
--description "Work Discord account" \
--data-dir work_profile \
--variant DiscordPTB \
--autostart WithWindows \
--clear-cache
# Add instance with default profile
DiscordMulticlient add "Discord Main" \
--variant Discord \
--use-default
# Simple add (uses defaults: DiscordPTB, custom profile, no autostart)
DiscordMulticlient add "Gaming Account"Options:
--description/-D: Description for the instance--data-dir/-d: Custom data directory name (defaults to lowercase instance name)--variant/-v: Discord variant (Discord,DiscordPTB,DiscordCanary) - Default:DiscordPTB--autostart/-a: Autostart mode (None,WithProgram,WithWindows) - Default:None--use-default: Use Discord's default profile instead of custom profile--clear-cache/-c: Automatically clear cache on launch
# Change autostart mode
DiscordMulticlient edit "Main Account" --autostart WithWindows
# Change Discord variant
DiscordMulticlient edit "Main Account" --variant DiscordCanary
# Rename instance
DiscordMulticlient edit "Main Account" --new-name "Primary Account"
# Enable clear cache on launch
DiscordMulticlient edit "Main Account" --clear-cache true
# Change to default profile
DiscordMulticlient edit "Main Account" --use-default true
# Update description
DiscordMulticlient edit "Main Account" --description "Updated description"Options:
--new-name: New instance name--description: New description--variant: Change Discord variant (Discord,DiscordPTB,DiscordCanary)--autostart: Change autostart mode (None,WithProgram,WithWindows)--use-default: Switch between custom/default profile (true/false)--clear-cache: Enable/disable auto-clear cache (true/false)
# Remove instance (also removes autostart entries)
DiscordMulticlient remove "Work Account"# Clear cache for specific instance
DiscordMulticlient clear-cache "Main Account"# Install BetterDiscord for a variant
DiscordMulticlient bd install DiscordPTB
# Repair BetterDiscord (re-download and re-patch)
DiscordMulticlient bd repair DiscordPTB
# Uninstall BetterDiscord
DiscordMulticlient bd uninstall DiscordPTB
# Check BetterDiscord status for all variants
DiscordMulticlient bd statusNote: BetterDiscord operations automatically restart affected instances.
# Create BetterDiscord data backup
DiscordMulticlient backup create
# List available backups
DiscordMulticlient backup list
# Restore from backup
DiscordMulticlient backup restore BetterDiscord_Backup_2024-01-15_14-30-45.zipBackup Location: Backups are saved to your Documents folder with timestamp.
# Check which Discord variants are installed
DiscordMulticlient installationsShows installation status and BetterDiscord status for each Discord variant.
# Show config file path and profiles directory
DiscordMulticlient config-path
# Edit config in default editor (Notepad)
DiscordMulticlient config-edit
# Launch GUI (same as running without arguments)
DiscordMulticlient gui%LOCALAPPDATA%\DiscordMulticlient\config.toml
%LOCALAPPDATA%\DiscordMulticlient\profiles\*
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\DiscordMulticlient_*.lnk
instances_base_dir = "C:\\Users\\YourName\\AppData\\Local\\DiscordMulticlient\\profiles"
[[instances]]
name = "Discord Main Installation"
description = "Default Discord installation"
data_dir = "discord_default"
extra_flags = []
auto_start = false
autostart_type = "None"
use_default_profile = true
variant = "Discord"
clear_cache_on_launch = true
[[instances]]
name = "Main Account"
description = "Primary Discord account"
data_dir = "main"
extra_flags = []
auto_start = false
autostart_type = "WithProgram"
use_default_profile = false
variant = "DiscordPTB"
clear_cache_on_launch = false
[[instances]]
name = "Work"
description = "Work Discord account"
data_dir = "work"
extra_flags = []
auto_start = false
autostart_type = "WithWindows"
use_default_profile = false
variant = "Discord"
clear_cache_on_launch = true
[[instances]]
name = "Gaming"
description = "Gaming Discord account"
data_dir = "gaming"
extra_flags = []
auto_start = false
autostart_type = "None"
use_default_profile = false
variant = "DiscordCanary"
clear_cache_on_launch = false| Field | Type | Description |
|---|---|---|
name |
string | Unique identifier for the instance |
description |
string (optional) | Human-readable description |
data_dir |
string | Profile directory name (relative to base) |
extra_flags |
array | Additional command-line flags for Discord |
auto_start |
boolean | (Deprecated) Launch automatically when app starts |
autostart_type |
string | Autostart mode: "None", "WithProgram", or "WithWindows" |
use_default_profile |
boolean | Use Discord's default profile (only one instance per variant should set this) |
variant |
string | Discord variant: "Discord", "DiscordPTB", or "DiscordCanary" |
clear_cache_on_launch |
boolean | Automatically clear cache before launching |
- Uses Discord's
Update.exe --processStart Discord.exelauncher (the official method) - Sets
DISCORD_USER_DATA_DIRenvironment variable for custom profiles - Window focusing via Windows API (no additional tools required)
- With Program: Instances marked as
WithProgramlaunch when the manager starts - With Windows: Creates
.lnkshortcut files in Windows Startup folder- Location:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\ - Uses PowerShell to create proper Windows shortcuts
- Automatically cleaned up when instance is removed or autostart is disabled
- Location:
- Uses
sysinfocrate for cross-platform process monitoring - Tracks all Discord sub-processes (main, renderer, GPU, utility, crashpad)
- When stopping an instance, kills all related processes for clean shutdown
- Supports variant-specific default profiles for each Discord type
- Manual clearing: Delete the
Cachedirectory from instance profile - Auto-clear on launch: Optional per-instance setting
- Cache path format:
{profile_dir}/{variant_name}/Cache - Works with both custom profiles and default profiles
- Installation Management: Install, repair, or uninstall BetterDiscord for each Discord variant
- Variant-Level: BetterDiscord affects all instances of a variant (e.g., all PTB instances)
- Automatic Restart: Affected instances are automatically stopped and restarted after BD operations
- Backup System: Create timestamped ZIP backups of BetterDiscord data
- Backup location: Documents folder
- Filename format:
BetterDiscord_Backup_YYYY-MM-DD_HH-MM-SS.zip - Includes plugins, themes, and settings
- Restore functionality with file picker
- Repair Function: Re-download and re-patch BetterDiscord when Discord updates break it
- Standard Locations: Uses BetterDiscord's standard data directory (
%APPDATA%\BetterDiscord)
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Linux Support: Currently partially implemented but non-functional. Linux support is planned for future releases.
A: Yes, you can use --multi-instance, but you'll have to log in every time you restart Discord. This tool creates persistent profiles so you stay logged in.
A: Yes! You can run any combination of Discord stable, PTB, and Canary simultaneously, each with multiple instances.
A: Yes. Your login data is stored in the same way Discord normally stores it, just in separate profile directories that Discord Multiclient manages.
A: Yes, this is designed for official Discord clients (stable, PTB, Canary). It uses Discord's own multi-instance support.
A: A new config file with default instances will be created automatically based on which Discord variants you have installed. Your existing profile data won't be deleted.
A: Yes! Use the Settings dialog in the GUI, or manually edit instances_base_dir in the config file.
A: BetterDiscord is a client modification that adds themes, plugins, and customization to Discord. This tool makes it easy to install/manage BetterDiscord on any Discord variant. Note that BetterDiscord affects ALL instances of a variant (e.g., installing on PTB affects all PTB instances).
A:
- Launch with program: Instances start when you manually launch DiscordMulticlient
- Launch with Windows startup: Creates a system startup entry so instances launch automatically when you log into your computer, without needing to open DiscordMulticlient first
A: Simply edit the instance and change the autostart setting back to "None" or "Launch with program". The startup shortcut will be automatically removed.
If you find this project useful, please consider giving it a star! ⭐
- Issues: GitHub Issues
Made with ❤️ and Rust


