[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94888":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":9,"createdAt":9,"pushedAt":9,"updatedAt":20,"readmeContent":21,"aiSummary":22,"trendingCount":16,"starSnapshotCount":16,"syncStatus":23,"lastSyncTime":24,"discoverSource":25},94888,"Whisky","frankea\u002FWhisky","frankea","Active community fork of the archived whisky-app\u002Fwhisky — a modern Wine wrapper for macOS built with SwiftUI",null,"https:\u002F\u002Fgithub.com\u002Ffrankea\u002FWhisky","Swift",414,28,7,10,0,41.39,false,"main","2026-08-24 04:01:22","\u003Cdiv align=\"center\">\n\n  # Whisky 🥃\n  *Wine but a bit stronger*\n\n  > **Active community fork.** The original [whisky-app\u002Fwhisky](https:\u002F\u002Fgithub.com\u002Fwhisky-app\u002Fwhisky)\n  > was archived on April 9, 2025 with a final maintenance notice. This fork, maintained by\n  > [@frankea](https:\u002F\u002Fgithub.com\u002Ffrankea), continues development — addressing the backlog of\n  > upstream issues and adding new functionality. Not affiliated with the original project or\n  > getwhisky.app.\n\n  ![](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Ffrankea\u002FWhisky\u002FCI.yml?style=for-the-badge&label=CI)\n  [![](https:\u002F\u002Fimg.shields.io\u002Fcodecov\u002Fc\u002Fgithub\u002Ffrankea\u002FWhisky?style=for-the-badge&logo=codecov&label=Coverage&flag=whiskykit)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Ffrankea\u002FWhisky)\n  [![](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Ffrankea\u002FWhisky\u002Ftotal?style=for-the-badge&logo=github&label=Downloads)](https:\u002F\u002Fgithub.com\u002Ffrankea\u002FWhisky\u002Freleases)\n  [![](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Ffrankea\u002FWhisky\u002Flatest\u002Ftotal?style=for-the-badge&label=Latest)](https:\u002F\u002Fgithub.com\u002Ffrankea\u002FWhisky\u002Freleases\u002Flatest)\n  [![](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Ffrankea\u002FWhisky?style=for-the-badge)](https:\u002F\u002Fgithub.com\u002Ffrankea\u002FWhisky\u002Fissues)\n  [![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocumentation-DocC-blue?style=for-the-badge)](https:\u002F\u002Ffrankea.github.io\u002FWhisky\u002Fdocumentation\u002Fwhiskykit\u002F)\n\u003C\u002Fdiv>\n\n## Overview\n\nWhisky provides a clean and easy-to-use graphical wrapper for Wine built in native SwiftUI. You can make and manage bottles, install and run Windows apps and games, and unlock the full potential of your Mac with no technical knowledge required.\n\n\u003Cimg width=\"650\" alt=\"Whisky in action\" src=\".\u002Fimages\u002Fdemo.gif\">\n\n\u003Cimg width=\"650\" alt=\"Config\" src=\".\u002Fimages\u002Fconfig-screenshot.png\">\n\n*Familiar UI that integrates seamlessly with macOS*\n\n\u003Cdiv align=\"right\">\n  \u003Cimg width=\"650\" alt=\"New Bottle\" src=\".\u002Fimages\u002Fnew-bottle-screenshot.png\">\n\n  *One-click bottle creation and management*\n\u003C\u002Fdiv>\n\n\u003Cimg width=\"650\" alt=\"debug\" src=\".\u002Fimages\u002Fdebug-screenshot.png\">\n\n*Debug and profile with ease*\n\n---\n\n## Key Features\n\n- **Wine 11.0** - Latest stable Wine with improved compatibility and networking\n- **DXMT & DXVK Graphics** - DirectX 11 through native Metal translation (DXMT) out of the box, with DXVK over MoltenVK as the universal fallback\n- **Launcher Compatibility** - Built-in support for Steam, Epic, EA App, Rockstar, Battle.net, and more\n- **Controller Support** - SDL environment variable controls for gamepad detection and mapping issues\n- **Stability Diagnostics** - One-click diagnostic reports for troubleshooting crashes and freezes\n- **Native SwiftUI** - Beautiful, familiar macOS interface\n\n## System Requirements\n\n- **CPU**: Apple Silicon (M-series chips)\n- **OS**: macOS Sequoia 15.0 or later\n\n## Installation\n\n### Homebrew (recommended)\n\n```sh\nbrew install --cask frankea\u002Fwhisky\u002Fwhisky\n```\n\nThis taps [frankea\u002Fhomebrew-whisky](https:\u002F\u002Fgithub.com\u002Ffrankea\u002Fhomebrew-whisky) and installs the latest signed\u002Fnotarized DMG. `brew upgrade --cask` picks up new releases.\n\n> The default `brew install --cask whisky` still installs the **archived original** (last release April 2025) and always will until that cask is updated. Use the qualified `frankea\u002Fwhisky\u002Fwhisky` form to get this fork.\n\n### Manual\n\n1. Download the latest **[Whisky-X.Y.Z.dmg](https:\u002F\u002Fgithub.com\u002Ffrankea\u002FWhisky\u002Freleases\u002Flatest)** (signed and notarized — Gatekeeper-approved).\n2. Open the DMG and drag **Whisky.app** to **\u002FApplications**.\n3. Launch Whisky. On first run it downloads the Wine runtime (~330 MB) and sets up your default bottle.\n\nIn-app updates are delivered through Sparkle from `https:\u002F\u002Ffrankea.github.io\u002FWhisky\u002Fappcast.xml`.\n\n### Migrating from the original Whisky\n\nThe original [whisky-app\u002Fwhisky](https:\u002F\u002Fgithub.com\u002Fwhisky-app\u002Fwhisky) was archived on **April 9, 2025** with a final maintenance notice. If you're running it today, you're on a stale build with no path forward for new fixes. This fork picks up where the upstream left off — version `3.0.1` shipped 54 requirements covering the 10 categories of upstream issue tracking (#40–#50).\n\nTo switch:\n\n1. Install this fork: `brew install --cask frankea\u002Fwhisky\u002Fwhisky` or follow the manual steps above.\n2. Open it and choose **File → Migrate from the Original Whisky**. It finds the bottles the original app left in `~\u002FLibrary\u002FContainers\u002Fcom.isaacmarovitz.Whisky\u002F` and imports the ones you pick. Bottles are referenced **in place** — nothing is moved or copied — so the original app keeps working if you'd like to keep it around.\n3. *(Optional)* Once you're happy, remove the original app: drag **\u002FApplications\u002FWhisky.app** to the Trash, or `brew uninstall --cask whisky` if you installed it via Homebrew. Your bottles stay put.\n\nThe original app uses a different bundle identifier (`com.franke.Whisky` here vs. `com.isaacmarovitz.Whisky`), which is why bottles aren't shared automatically. The old **Bottle → Export** \u002F **File → Import Bottle** route still works if you'd rather move bottles by hand or onto another Mac. With no critical bottles, you can skip migration entirely — the new app creates a fresh bottle on first launch.\n\n## Uninstalling\n\nDragging **Whisky.app** to the Trash (or `brew uninstall --cask frankea\u002Fwhisky\u002Fwhisky`) removes the app but leaves the Wine runtime, your bottles, and app data behind — by design, so reinstalling doesn't re-download ~330 MB or lose your bottles.\n\n> ⚠️ **Back up your bottles first if you want to keep them.** Removing the container below deletes every bottle stored in its default location. Bottles you created in a custom folder live wherever you put them — check **Bottle → Reveal in Finder** before deleting anything.\n\nTo remove Whisky **completely**, delete the app and then these paths (all under `~\u002FLibrary`):\n\n```sh\n# 1. The app itself\nrm -rf \"\u002FApplications\u002FWhisky.app\"          # or: brew uninstall --cask frankea\u002Fwhisky\u002Fwhisky\n\n# 2. Bottles + bottle list (default bottle location is inside this container)\nrm -rf ~\u002FLibrary\u002FContainers\u002Fcom.franke.Whisky\nrm -rf ~\u002FLibrary\u002FContainers\u002Fcom.franke.Whisky.WhiskyThumbnail\n\n# 3. The Wine runtime (~330 MB) and other app support\nrm -rf ~\u002FLibrary\u002FApplication\\ Support\u002Fcom.franke.Whisky\n\n# 4. Caches, logs, preferences, and saved state\nrm -rf ~\u002FLibrary\u002FCaches\u002Fcom.franke.Whisky\nrm -rf ~\u002FLibrary\u002FLogs\u002Fcom.franke.Whisky\nrm -rf ~\u002FLibrary\u002FHTTPStorages\u002Fcom.franke.Whisky\nrm -f  ~\u002FLibrary\u002FPreferences\u002Fcom.franke.Whisky.plist\n```\n\nIf you also installed bottles in a **custom location**, delete those folders too. Migrated bottles that still belong to the original app live under `~\u002FLibrary\u002FContainers\u002Fcom.isaacmarovitz.Whisky` and are left untouched by the steps above.\n\n## Telemetry (opt-in)\n\nWhisky sends **no data by default**. During first-run setup you can opt in to\nanonymous usage telemetry — a checkbox that is **off** unless you tick it, and a\ntoggle you can change anytime in **Settings → Privacy**.\n\nWhen (and only when) enabled, Whisky sends five events covering the first-run\nfunnel, so the maintainer can see where new installs fail:\n\n| Event | Properties |\n| --- | --- |\n| `runtime_install_started` | — |\n| `runtime_install_succeeded` | — |\n| `runtime_install_failed` | `reason`: one of `download_failed`, `verify_failed`, `tarball_missing`, `extract_failed`, `runtime_incomplete` |\n| `first_bottle_created` | — |\n| `first_program_launch_attempted` | — |\n\n`runtime_install_started` is sent once per setup attempt; the `_succeeded` \u002F\n`_failed` events are sent per install attempt (so retries are counted). The two\n`first_…` events are sent at most once per install.\n\nNo personal data, file names, paths, raw error text, or identifiers tied to you\nare ever sent. Events carry a random per-install anonymous ID (reset if you opt\nout). Every event Whisky can send is the list above, and all of it is declared in\none file, [`Whisky\u002FUtils\u002FTelemetry.swift`](Whisky\u002FUtils\u002FTelemetry.swift), with\nevery automatic-capture feature of the analytics SDK disabled and no person\nprofile ever created (`identify()` is never called). Each event also carries the\nSDK's standard context — app and macOS version, hardware model, locale, and more;\nsee [SECURITY.md](SECURITY.md) for the full list. Like any HTTPS request,\nPostHog's ingestion sees the connecting IP (GeoIP enrichment is disabled); none\nof this is tied to your identity.\n\n## Documentation\n\n- **[Support](docs\u002FSUPPORT.md)** - Where to file bugs and what to expect from a single-maintainer fork\n- **[Governance & continuity](docs\u002FGOVERNANCE.md)** - Who maintains this and the honest bus-factor situation\n- **[Runtime dependencies](docs\u002FDEPENDENCIES.md)** - The bundled Wine\u002FDXVK\u002FD3DMetal\u002FDXMT versions and their upstream sources\n\nWhiskyKit, the core framework powering Whisky, has comprehensive API documentation:\n\n- **[WhiskyKit API Documentation](https:\u002F\u002Ffrankea.github.io\u002FWhisky\u002Fdocumentation\u002Fwhiskykit\u002F)** - Full API reference with usage examples\n- **[Getting Started Guide](https:\u002F\u002Ffrankea.github.io\u002FWhisky\u002Fdocumentation\u002Fwhiskykit\u002Fgettingstarted)** - Learn how to integrate WhiskyKit\n- **[Architecture Overview](https:\u002F\u002Ffrankea.github.io\u002FWhisky\u002Fdocumentation\u002Fwhiskykit\u002Farchitecture)** - Understand how WhiskyKit components work together\n\n### Troubleshooting\n\n- **[Launcher Troubleshooting](docs\u002FLauncherTroubleshooting.md)** - Fix issues with Steam, Epic, Battle.net, etc.\n- **[Steam Compatibility Guide](docs\u002FSteamCompatibility.md)** - Detailed guide for Steam on Whisky\n- **[Stability Troubleshooting](docs\u002FStabilityTroubleshooting.md)** - Diagnose crashes, freezes, reboots, and kernel panics\n- **Controller Issues** - Enable \"Controller Compatibility Mode\" in Bottle Config → Controller & Input\n- **[Game Configurations](https:\u002F\u002Fgithub.com\u002Ffrankea\u002FWhisky\u002Fblob\u002Fmain\u002FWhiskyKit\u002FSources\u002FWhiskyKit\u002FGameDatabase\u002FResources\u002FGameDB.json)** - 80+ curated per-game compatibility configs, also browsable in-app under Game Configurations\n\n### Upstream issue audit\n\nPer-issue accounting of how this fork addresses the open issues from the\narchived upstream repo. Read [docs\u002FAUDIT.md](docs\u002FAUDIT.md) for the\nmethodology — including how to read the `addressed-direct` vs\n`addressed-categorical` distinction and what `unverified` GameDB entries\nactually mean.\n\n### Test coverage\n\nThe Coverage badge above is scoped to the **`whiskykit` flag** — line\ncoverage of the framework that holds the bottle, Wine, GameDB, and\nPE-parser logic, measured by `swift test --enable-code-coverage` per\n[`.github\u002Fworkflows\u002FCI.yml`](.github\u002Fworkflows\u002FCI.yml). The blended\nproject-wide number on the [Codecov dashboard](https:\u002F\u002Fcodecov.io\u002Fgh\u002Ffrankea\u002FWhisky)\nreads much lower because it averages in the SwiftUI app target, which\nonly receives best-effort UI-test coverage. Read the badge as\n\"WhiskyKit unit-test coverage,\" not full-app coverage.\n\nWhiskyUITests gives behavioural coverage of the SwiftUI surface (toolbar,\ncreate-bottle sheet, fixture-dependent flows). CI now runs them with\n`-enableCodeCoverage YES` and uploads the resulting app-target coverage to\nCodecov under a separate `whiskyapp` flag (best-effort — the upload never gates\nCI). Because UI tests exercise far less of the app than the unit tests do of\nWhiskyKit, expect the app-target number to read lower than the WhiskyKit badge\nabove.\n\n---\n\n## Credits & Acknowledgments\n\nWhisky is possible thanks to the magic of several projects:\n\n- [msync](https:\u002F\u002Fgithub.com\u002Fmarzent\u002Fwine-msync) by marzent\n- [DXVK-macOS](https:\u002F\u002Fgithub.com\u002FGcenx\u002FDXVK-macOS) by Gcenx and doitsujin\n- [DXMT](https:\u002F\u002Fgithub.com\u002F3Shain\u002Fdxmt) by 3Shain\n- [MoltenVK](https:\u002F\u002Fgithub.com\u002FKhronosGroup\u002FMoltenVK) by KhronosGroup\n- [Sparkle](https:\u002F\u002Fgithub.com\u002Fsparkle-project\u002FSparkle) by sparkle-project\n- [SemanticVersion](https:\u002F\u002Fgithub.com\u002FSwiftPackageIndex\u002FSemanticVersion) by SwiftPackageIndex\n- [swift-argument-parser](https:\u002F\u002Fgithub.com\u002Fapple\u002Fswift-argument-parser) by Apple\n- [CrossOver](https:\u002F\u002Fwww.codeweavers.com\u002Fcrossover) by CodeWeavers and WineHQ\n- D3DMetal by Apple\n\nSpecial thanks to Gcenx, ohaiibuzzle, Nat Brown, and [Isaac Marovitz](https:\u002F\u002Fgithub.com\u002FIsaacMarovitz) (original author) for their support and contributions!\n\n---\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n        \u003Cpicture>\n          \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".\u002Fimages\u002Fcw-dark.png\">\n          \u003Cimg src=\".\u002Fimages\u002Fcw-light.png\" width=\"500\">\n        \u003C\u002Fpicture>\n    \u003C\u002Ftd>\n    \u003Ctd>\n        Whisky doesn't exist without CrossOver. If you want a fully-supported commercial Wine experience on macOS, check out \u003Ca href=\"https:\u002F\u002Fwww.codeweavers.com\u002Fcrossover\">CrossOver\u003C\u002Fa> from CodeWeavers. (This fork has no affiliate arrangement and receives nothing from CrossOver sales.)\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n","Whisky 是一个面向 macOS 的现代化 Wine 图形化封装工具，旨在让非技术用户也能轻松运行 Windows 应用与游戏。它基于 SwiftUI 原生开发，提供一键创建和管理 Wine “Bottle”（运行环境）、内置主流游戏平台（Steam\u002FEpic\u002FEA 等）启动器支持、DXMT\u002FDXVK 图形翻译层（适配 Apple Silicon 的 Metal 后端）、控制器映射配置及稳定性诊断功能。项目为已归档的 whisky-app\u002Fwhisky 的活跃社区分支，持续修复上游问题并增强兼容性。适用于在 Apple Silicon Mac 上运行 Windows 游戏、生产力软件或测试跨平台应用的普通用户与开发者。",2,"2026-08-17 02:30:12","trending"]