- Epic Switcher is designed to facilitate switching between accounts in the Epic Games Launcher
- Currently only for Windows
- 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?
When you run the app for the first time on Windows, you might see a warning like this:
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.
- Click "More info"
- Click "Run anyway"
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! π
throw new NotImplementedException();
Note
Developer section below: The following content is intended for developers interested in the inner workings of Epic Switcher.
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.
- 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, orpnpm.
To start the app in dev mode:
wails devTo generate a production-ready, standalone binary:
wails buildThis compiles the app and outputs a native executable, ready to distribute.
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 releaseThis will:
- Prompt to select the version type (
Patch,Minor, orMajor) - Bump the version in
frontend/package.json - Commit the version bump and create a Git tag
- 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.
This project is built with:








