An open API service indexing awesome lists of open source software.

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 1 month ago
JSON representation

Epic Switcher is designed to facilitate switching between accounts in the Epic Games Launcher (Windows only)

Awesome Lists containing this project

README

          



Project Icon

Epic Switcher


- Epic Switcher is designed to facilitate switching between accounts in the Epic Games Launcher
- Currently only for Windows



Main screen

## ๐Ÿ“ฅ 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:


SmartScreen Warning Screenshot a



SmartScreen Warning Screenshot b

### ๐Ÿง  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

Epic Switcher started the same way most of my projects do: **I, or people around me needed it.**

Not too long ago, my siblings and I used to play Fortnite together. At some point, I gave her my main Fortnite account since I wasn't playing much anymore, which meant I had to make a separate account to play with them.

Aside from Fortnite (which I don't really play anymore), I'm really into Rocket League, and that's on my main account โ€” the one I gave her. So I was constantly switching between Epic Games accounts, and the official launcher makes that way slower and more annoying than it should be. Logging out, logging back in, re-entering credentials, and dealing with 2FA almost every time got frustrating fast.

Existing solutions were either over-engineered, had outdated UIs, or were bundled with features I didn't want. I just wanted something:

- Fast
- Minimal
- One-click

So I built Epic Switcher. Once it proved useful, I open-sourced it in case it helps others with the same problem.


## ๐Ÿ–ผ๏ธ Screens

### Accounts
![accounts](./docs/screens/accounts.png)


### Customize avatar
![customize-avatar](./docs/screens/customize-avatar.png)


### Manage
![manage](./docs/screens/manage.png)


### Add session
![add-session](./docs/screens/add-session.png)


### Edit nickname
![edit-nickname](./docs/screens/edit-nickname.png)


### Delete session
![delete-session](./docs/screens/delete-session.png)


### Trust & Transparency
![how-it-works](./docs/screens/transparency.png)


### Settings
![settings](./docs/screens/settings-update-notice.png)


> [!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


Powered by Wails