https://github.com/symonxdd/epic-switcher
Epic Switcher is designed to facilitate switching between accounts in the Epic Games Launcher (Windows only)
https://github.com/symonxdd/epic-switcher
account-switcher desktop-app epic-games epic-games-launcher github-actions golang open-source react utility vite wails windows
Last synced: about 14 hours ago
JSON representation
Epic Switcher is designed to facilitate switching between accounts in the Epic Games Launcher (Windows only)
- Host: GitHub
- URL: https://github.com/symonxdd/epic-switcher
- Owner: symonxdd
- Created: 2025-10-29T04:03:06.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-01-16T02:41:35.000Z (1 day ago)
- Last Synced: 2026-01-16T16:26:19.665Z (about 18 hours ago)
- Topics: account-switcher, desktop-app, epic-games, epic-games-launcher, github-actions, golang, open-source, react, utility, vite, wails, windows
- Language: JavaScript
- Homepage: https://epic-switcher.vercel.app
- Size: 8.32 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
- Epic Switcher is designed to facilitate switching between accounts in the Epic Games Launcher
- Currently only for Windows
## ๐ฅ Downloads
- Grab the latest version from the [**Releases page**](https://github.com/symonxdd/epic-switcher/releases/latest)
- No install required
> [!TIP]
> GitHub 'Releases' is GitHub jargon for downloads.
โ ๏ธ What's the "Windows protected your PC" message?
### โ ๏ธ Windows SmartScreen Warning
When you run the app for the first time on Windows, you might see a warning like this:
### ๐ง What's actually happening?
This warning appears because the app is **new** and **hasn't yet built trust** with Microsoft SmartScreen, **not because the app is malicious**.
According to [Microsoft's official documentation](https://learn.microsoft.com/en-us/windows/security/operating-system-security/virus-and-threat-protection/microsoft-defender-smartscreen/), SmartScreen determines whether to show this warning based on:
- Whether the file matches a **known list of malicious apps** or is from a **known malicious site**
- Whether the file is **well-known and frequently downloaded**
- Whether the app is **digitally signed** with a costly trusted certificate
This is **just a generic warning** โ many indie or open-source apps trigger it until they build trust or pay for expensive certificates.
### โ
How to dismiss and run
1. Click **"More info"**
2. Click **"Run anyway"**
### ๐คจ Why not prevent the warning
To fully avoid SmartScreen warnings on Windows, developers are expected to:
- Buy and use an **EV (Extended Validation) Code Signing Certificate**
- Have enough users download the app over time to build a strong **reputation score**
These certificates can cost **hundreds of dollars per year**, which isn't always feasible for solo developers or small open-source projects.
We're focused on keeping this tool free and accessible.
> For full details on how SmartScreen works, check out [Microsoft's official documentation](https://learn.microsoft.com/en-us/windows/security/operating-system-security/virus-and-threat-protection/microsoft-defender-smartscreen/)
Thanks for supporting open-source software! ๐
## ๐ก Motivation
`throw new NotImplementedException();`
## ๐ผ๏ธ Screens
### Accounts page

### Add Session modal

### Manage page

### Delete Session modal

### How it Works page

### Settings page

> [!NOTE]
> **Developer section below:** The following content is intended for developers interested in the inner workings of Epic Switcher.
## ๐๏ธ Project Layout
Here's a quick overview of the main files and folders:
```
epic-switcher/
โโโ .github/
โ โโโ workflows/
โ โโโ release.yml # GitHub Actions workflow for cross-platform builds + releases
โ
โโโ backend/ # Go backend logic
โ โโโ helper/ # Cross-platform utilities and command wrappers
โ โ โโโ command_default.go # Default command runner (used on non-Windows)
โ โ โโโ command_windows.go # Windows-specific command runner (hides terminal window)
โ โโโ models/ # Data structures (LoginSession)
โ โโโ app.go # Main backend bindings exposed to the frontend
โ
โโโ build/ # App icons, packaging resources, and Wails build outputs
โ โโโ appicon.png # Icon used for the app window and release packages
โ
โโโ frontend/ # Vue 3 frontend (served with Vite)
โ โโโ src/
โ โ โโโ main.jsx # React app entry point
โ โ โโโ App.jsx # Root React component
โ โโโ index.html # HTML entry point
โ
โโโ go.mod # Go dependencies (the Go module manifest)
โโโ go.sum # Go dependency checksums
โโโ main.go # App entry point (launches Wails)
โโโ release.js # Script to automate version bumping and pushing a new release
โโโ wails.json # Wails project configuration
โโโ README.md # You're reading it โจ
```
> [!NOTE]
> The two files at `app/helper/command_*.go` are **OS-specific** and use [Go build tags](https://pkg.go.dev/go/build#hdr-Build_Constraints) to automatically select the correct one during build time. This ensures clean handling of platform quirks without any runtime checks.
## ๐ง Dev Prerequisites
- To build or run in dev mode, follow the [official Wails installation guide](https://wails.io/docs/gettingstarted/installation).
- You'll need Go installed, along with Node and a package manager like `npm`, `yarn`, or `pnpm`.
## โ๏ธ Live Development
To start the app in dev mode:
```bash
wails dev
```
## ๐ฆ Release Build
To generate a production-ready, standalone binary:
```bash
wails build
```
This compiles the app and outputs a native executable, ready to distribute.
## ๐ Release Workflow
Epic Switcher uses a fully automated release pipeline powered by **GitHub Actions** and a helper script.
To create a new release, I run the release script:
```bash
npm run release
```
This will:
1. Prompt to select the version type (`Patch`, `Minor`, or `Major`)
2. Bump the version in `frontend/package.json`
3. Commit the version bump and create a Git tag
4. Push the commit and tag to GitHub
> [!NOTE]
> The version bump uses a clear commit message like: `chore: bump version to v1.2.3`
When a `v*` tag is pushed, the [`release.yml`](.github/workflows/release.yml) GitHub Actions workflow is triggered.
- ๐ง Builds a native binary for Windows (.exe).
- ๐ Renames and organizes the build artifacts.
- ๐ Creates a new GitHub Release and uploads the binary with an OS-specific label.
๐ก The release process can be viewed under the repo's **Actions** tab
> [!NOTE]
> _Thanks to my previous work on my other project (AVD Launcher), I already had a release pipeline ready. It only required minor adjustments to fit this project._
## Built with โค๏ธ
This project is built with:
- [Wails](https://wails.io/)
- [Go](https://go.dev/)
- [React](https://react.dev/)
### Credits
- Logo symbol by [Epicons](https://www.svgrepo.com/svg/355688/user-a-solid) from [SVGRepo](https://www.svgrepo.com/)
- Demo screenshot background by [Unsplash](https://unsplash.com/photos/a-close-up-of-a-cell-phone-with-a-purple-background-Cp4dn8_6Y5I)
Made with ๐ by Symon