{"id":38086356,"url":"https://github.com/symonxdd/epic-switcher","last_synced_at":"2026-02-06T05:07:15.436Z","repository":{"id":321339016,"uuid":"1085451898","full_name":"symonxdd/epic-switcher","owner":"symonxdd","description":"Epic Switcher is designed to facilitate switching between accounts in the Epic Games Launcher (Windows only)","archived":false,"fork":false,"pushed_at":"2026-01-23T17:17:54.000Z","size":9186,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-24T07:43:26.286Z","etag":null,"topics":["account-switcher","desktop-app","epic-games","epic-games-launcher","github-actions","golang","open-source","react","utility","vite","wails","windows"],"latest_commit_sha":null,"homepage":"https://epic-switcher.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/symonxdd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-29T04:03:06.000Z","updated_at":"2026-01-23T17:17:55.000Z","dependencies_parsed_at":"2025-12-02T12:05:46.021Z","dependency_job_id":null,"html_url":"https://github.com/symonxdd/epic-switcher","commit_stats":null,"previous_names":["symonxdd/epic-switcher"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/symonxdd/epic-switcher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symonxdd%2Fepic-switcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symonxdd%2Fepic-switcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symonxdd%2Fepic-switcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symonxdd%2Fepic-switcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/symonxdd","download_url":"https://codeload.github.com/symonxdd/epic-switcher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symonxdd%2Fepic-switcher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29151745,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T02:39:25.012Z","status":"ssl_error","status_checked_at":"2026-02-06T02:37:22.784Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["account-switcher","desktop-app","epic-games","epic-games-launcher","github-actions","golang","open-source","react","utility","vite","wails","windows"],"created_at":"2026-01-16T20:52:49.423Z","updated_at":"2026-02-06T05:07:15.429Z","avatar_url":"https://github.com/symonxdd.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href='' target=\"_blank\"\u003e\n    \u003cimg src=\"./build/appicon.png\" alt=\"Project Icon\" width=\"100\" style=\"pointer-events: none;\"\u003e\n  \u003c/a\u003e\n  \u003ch1\u003eEpic Switcher\u003c/h1\u003e\n\u003c/div\u003e\n\n- Epic Switcher is designed to facilitate switching between accounts in the Epic Games Launcher  \n- Currently only for Windows\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./docs/screens/accounts.png\" alt=\"Main screen\" width=\"869\"\u003e\n\u003c/div\u003e\n\n## 📥 Downloads\n- Grab the latest version from the [**Releases page**](https://github.com/symonxdd/epic-switcher/releases/latest)  \n- No install required\n\n\u003cbr/\u003e\n\n\u003e [!TIP]\n\u003e GitHub 'Releases' is GitHub jargon for downloads.\n\n\u003cbr/\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cstrong\u003e⚠️ What's the \"Windows protected your PC\" message?\u003c/strong\u003e\n\u003c/summary\u003e\n\n### ⚠️ Windows SmartScreen Warning\nWhen you run the app for the first time on Windows, you might see a warning like this:\n\n\u003cdiv\u003e\n  \u003cimg src=\"./docs/screens/smartscreen-warning-a.png\" alt=\"SmartScreen Warning Screenshot a\" width=\"600\"\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\n  \u003cimg src=\"./docs/screens/smartscreen-warning-b.png\" alt=\"SmartScreen Warning Screenshot b\" width=\"600\"\u003e\n\u003c/div\u003e\n\n### 🧠 What's actually happening?\n\nThis warning appears because the app is **new** and **hasn't yet built trust** with Microsoft SmartScreen, **not because the app is malicious**.\n\nAccording 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:\n\n- Whether the file matches a **known list of malicious apps** or is from a **known malicious site**\n- Whether the file is **well-known and frequently downloaded**\n- Whether the app is **digitally signed** with a costly trusted certificate\n\nThis is **just a generic warning** — many indie or open-source apps trigger it until they build trust or pay for expensive certificates.\n\n### ✅ How to dismiss and run\n\n1. Click **\"More info\"**\n2. Click **\"Run anyway\"**\n\n### 🤨 Why not prevent the warning\n\nTo fully avoid SmartScreen warnings on Windows, developers are expected to:\n\n- Buy and use an **EV (Extended Validation) Code Signing Certificate**  \n- Have enough users download the app over time to build a strong **reputation score**\n\nThese certificates can cost **hundreds of dollars per year**, which isn't always feasible for solo developers or small open-source projects.  \nWe're focused on keeping this tool free and accessible.  \n\u003e 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/)\n\nThanks for supporting open-source software! 💙\n\n\u003c/details\u003e\n\n\u003cbr/\u003e\n\n## 💡 Motivation\n\nEpic Switcher started the same way most of my projects do: **I, or people around me needed it.**\n\nNot 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.\n\nAside 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.\n\nExisting solutions were either over-engineered, had outdated UIs, or were bundled with features I didn't want. I just wanted something:\n\n- Fast\n- Minimal\n- One-click\n\nSo I built Epic Switcher. Once it proved useful, I open-sourced it in case it helps others with the same problem.\n\n\u003cbr/\u003e\n\n## 🖼️ Screens  \n\n### Accounts\n![accounts](./docs/screens/accounts.png)\n\n\u003cbr/\u003e\n\n### Customize avatar\n![customize-avatar](./docs/screens/customize-avatar.png)\n\n\u003cbr/\u003e\n\n### Manage\n![manage](./docs/screens/manage.png)\n\n\u003cbr/\u003e\n\n### Add session\n![add-session](./docs/screens/add-session.png)\n\n\u003cbr/\u003e\n\n### Edit nickname\n![edit-nickname](./docs/screens/edit-nickname.png)\n\n\u003cbr/\u003e\n\n### Delete session\n![delete-session](./docs/screens/delete-session.png) \n\n\u003cbr/\u003e\n\n### Trust \u0026 Transparency\n![how-it-works](./docs/screens/transparency.png) \n\n\u003cbr/\u003e\n\n### Settings\n![settings](./docs/screens/settings-update-notice.png) \n\n\u003cbr/\u003e\n\n\u003e [!NOTE]\n\u003e **Developer section below:** The following content is intended for developers interested in the inner workings of Epic Switcher.\n\n\u003cbr/\u003e\n\n## 🗂️ Project Layout\nHere's a quick overview of the main files and folders:\n```\nepic-switcher/\n├── .github/\n│   └── workflows/\n│       └── release.yml         # GitHub Actions workflow for cross-platform builds + releases\n│\n├── backend/                    # Go backend logic\n│   ├── helper/                 # Cross-platform utilities and command wrappers\n│   │   ├── command_default.go  # Default command runner (used on non-Windows)\n│   │   └── command_windows.go  # Windows-specific command runner (hides terminal window)\n│   ├── models/                 # Data structures (LoginSession)\n│   └── app.go                  # Main backend bindings exposed to the frontend\n│\n├── build/                      # App icons, packaging resources, and Wails build outputs\n│   └── appicon.png             # Icon used for the app window and release packages\n│\n├── frontend/                   # Vue 3 frontend (served with Vite)\n│   ├── src/\n│   │   ├── main.jsx            # React app entry point\n│   │   └── App.jsx             # Root React component\n│   └── index.html              # HTML entry point\n│\n├── go.mod                      # Go dependencies (the Go module manifest)\n├── go.sum                      # Go dependency checksums\n├── main.go                     # App entry point (launches Wails)\n├── release.js                  # Script to automate version bumping and pushing a new release\n├── wails.json                  # Wails project configuration\n└── README.md                   # You're reading it ✨\n```\n\n\u003e [!NOTE]\n\u003e 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.\n\n\u003cbr/\u003e\n\n## 🔧 Dev Prerequisites\n- To build or run in dev mode, follow the [official Wails installation guide](https://wails.io/docs/gettingstarted/installation).  \n- You'll need Go installed, along with Node and a package manager like `npm`, `yarn`, or `pnpm`.\n\n\u003cbr/\u003e\n\n## ⚙️ Live Development\nTo start the app in dev mode:\n```bash\nwails dev\n```\n\n\u003cbr/\u003e\n\n## 📦 Release Build\nTo generate a production-ready, standalone binary:\n```bash\nwails build\n```\nThis compiles the app and outputs a native executable, ready to distribute.\n\n\u003cbr/\u003e\n\n## 🚀 Release Workflow\nEpic Switcher uses a fully automated release pipeline powered by **GitHub Actions** and a helper script.\n\nTo create a new release, I run the release script:\n```bash\nnpm run release\n```\n\nThis will:\n\n1. Prompt to select the version type (`Patch`, `Minor`, or `Major`)\n2. Bump the version in `frontend/package.json`\n3. Commit the version bump and create a Git tag\n4. Push the commit and tag to GitHub\n\n\u003e [!NOTE]\n\u003e The version bump uses a clear commit message like: `chore: bump version to v1.2.3`\n\nWhen a `v*` tag is pushed, the [`release.yml`](.github/workflows/release.yml) GitHub Actions workflow is triggered.\n\n- 🔧 Builds a native binary for Windows (.exe).\n- 🗃 Renames and organizes the build artifacts.\n- 📝 Creates a new GitHub Release and uploads the binary with an OS-specific label.\n\n💡 The release process can be viewed under the repo's **Actions** tab\n\n\u003cbr/\u003e\n\n\u003e [!NOTE]\n\u003e _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._\n\n\u003cbr/\u003e\n\n## Built with ❤️\nThis project is built with:\n- [Wails](https://wails.io/)\n- [Go](https://go.dev/)\n- [React](https://react.dev/)\n\n### Credits \n- Logo symbol by [Epicons](https://www.svgrepo.com/svg/355688/user-a-solid) from [SVGRepo](https://www.svgrepo.com/)\n- Demo screenshot background by [Unsplash](https://unsplash.com/photos/a-close-up-of-a-cell-phone-with-a-purple-background-Cp4dn8_6Y5I)\n\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eMade with 💛 by Symon\u003c/sub\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003ePowered by \u003ca href=\"https://wails.io/\"\u003eWails\u003c/a\u003e\u003c/sub\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsymonxdd%2Fepic-switcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsymonxdd%2Fepic-switcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsymonxdd%2Fepic-switcher/lists"}