Skip to content

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

Notifications You must be signed in to change notification settings

symonxdd/epic-switcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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
  • 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, 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

Thanks for supporting open-source software! πŸ’™


πŸ’‘ Motivation

throw new NotImplementedException();


πŸ–ΌοΈ Screens

Accounts page

accounts-page


Add Session modal

add-account-modal


Manage page

manage-page


Delete Session modal

delete-session-modal


How it Works page

/how-it-works


Settings 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 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.
  • 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:

wails dev

πŸ“¦ Release Build

To generate a production-ready, standalone binary:

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:

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 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:

Credits

Made with πŸ’› by Symon from Belgium
Powered by Wails