Open-source project
HearthSim/HSTracker avatar
HearthSim/HSTracker

HSTracker: a macOS deck tracker that reads Hearthstone memory

A deck tracker and deck manager for Hearthstone on macOS

1,258 stars221 forksSwiftMIT

At a glance

What is it?
HSTracker is a Swift macOS application that watches your Hearthstone game, shows the cards in your opponent's hand and in your deck, and doubles as a deck manager you can import from a deckstring. It is MIT licensed, and it uploads your games to HSReplay.net if you use that integration.
Who is it for?
Adopt HSTracker if you play Hearthstone on macOS and want a live view of the state of the game alongside a deck library, and if you are comfortable with an application that reads another application's memory. Do not adopt it on Windows, where the project points to a different deck tracker.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the application does, and where it runs

HSTracker is described as an automatic deck tracker and deck manager for Hearthstone on macOS. That is a narrow description covering a narrow tool, and the narrowness is the point. It is not a game client, it does not replace Blizzard's application, and it is not a companion to a card database. It watches a game that is already running and tells you what is in it.

The platform constraint is explicit in the requirements. macOS 10.10 or higher is needed, and for Windows support the documentation directs you to a separate project, Hearthstone Deck Tracker. The two projects share an organisation and a name pattern, but they are separate codebases, and anyone arriving from Windows needs to switch rather than port.

The application is a native macOS app distributed as an archive you download, extract, and move into your Applications directory as HSTracker.app. It is written in Swift, which the repository's primary language confirms, and it is a HearthSim project, the same group that runs hearthsim.info.

The release history is active. Version 3.7.0 was published on 2026-10-14, 3.6.14 on 2026-10-11, and 3.6.13 on 2026-09-24, and the last push to the repository was on 2026-10-16. The MIT licence applies to the application code, and the README separately notes that all Hearthstone assets are copyright Blizzard Entertainment, which is the right way to handle a project that displays somebody else's game data.

The install and launch order that matters

The installation steps are short, and one of them is a hard requirement rather than advice.

You download the latest version, extract the archive, and move HSTracker.app into your Applications directory. Then you launch HSTracker before Hearthstone. That ordering is the part worth internalising, because a tracker that attaches to a running game cannot attach to a game that has not started.

After launch, you create a new deck from the Deck Manager or import it from a deckstring. The documentation adds that HSTracker will also auto-detect the deck you play with, which means the deckstring import is a convenience for managing your collection rather than a prerequisite for tracking a game.

The three steps in one place, with the application and the platform requirement spelled out:

text
macOS 10.10 or higher
HSTracker.app
Launch HSTracker before Hearthstone

The download itself is not on GitHub. The instruction is to get the latest version from hsdecktracker.net, and the project homepage is the HSReplay.net downloads page. That is a deliberate separation between the source repository and the distribution channel, and it is the pattern HearthSim uses across its tools, where the site handles versioning and the repository holds the code.

The two screenshots in the README show the two halves of the product, the deck tracker and the deck manager, and they are the fastest way to understand the scope before installing anything.

Deck tracking and the deck manager are separate products

The features are listed as three items, and the first two are the application itself.

The deck tracker is the live view. It shows the state of the current game, which in practice means the cards in your opponent's hand and the cards remaining in your own deck, updating as the game proceeds. The value of that is straightforward: knowing the cards still in your deck tells you what you can draw, and knowing your opponent's hand tells you what they can play, which changes how you sequence your turns.

The deck manager is the offline half. It is where you create, edit, and store decks, and it accepts a deckstring for import. A deckstring is a compact encoded representation of a deck that you can copy from elsewhere and paste, which is what makes it possible to move a deck between tools without retyping thirty card names.

Splitting these two is the design that makes the tool pleasant. The tracker is a window over a running game and needs to be fast and unobtrusive, while the manager is a document editor where you can spend time. Bundling them into one screen would compromise both.

The third feature, HSReplay.net integration, is the one that needs a decision rather than a setting. HSTracker uploads your games to HSReplay.net, and the documentation says that for support on that integration you should email [email protected], which is a different address from the community channels, which tells you the replay service is operated as a separate concern.

The repository layout and the release machinery

The top level entries show an Xcode project with the usual supporting cast. There is HSTracker.xcodeproj for the application target, HSTracker/ for the sources, HSTrackerTests/ for the test target, Translations/ for localisation, Tools/ for build and helper tooling, scripts/ for shell helpers, and fastlane/ for release automation. A CHANGELOG.md and CONTRIBUTING.md sit at the root, along with a Config.xcconfig for build settings, a.swiftlint.yml for Swift linting, and the two screenshots.

Two of these deserve comment. The fastlane directory is the standard way to automate an app store or download release, and its presence tells you the release process is scripted rather than a set of manual steps in Xcode. The Translations/ directory tells you the interface is localised, and paired with the community Discord it suggests translation contributions are part of the normal maintenance flow.

The Gemfile and Gemfile.lock usually accompany the fastlane release tooling, pinning the Ruby gems that the automation depends on.

Then there is hs-build-dates.json, a data file at the root whose name indicates it records the Hearthstone build identifiers the application compares against. A tracker has to know which game version it is looking at, since the memory layout of the process changes between builds, and a checked-in mapping is how you handle that without shipping a new binary for every patch. The CHANGELOG at the root is where the changes to that mapping would show up, and the file is one of the more informative things in the tree for anyone wondering how the app handles a game update.

Against the Windows tracker, and against a manual deck list

The alternative for a Hearthstone player is a spreadsheet or a deck list in the game's own collection view, and the difference in approach is live information versus planned information. A manual list tells you what you brought. A tracker tells you what is in your opponent's hand right now, which is information you cannot get any other way during a game, and which is what changes a decision on turn six.

The other alternative is doing nothing and reading the game at the speed it happens, which works for a casual player and becomes untenable the moment you play a deck with a combo or a specific answer. A tracker is a tool for people who have already decided that knowing the state is worth the overhead.

The comparison with the Windows tracker is the one the project itself makes. Hearthstone Deck Tracker is the sibling project for Windows, and they are not ports of each other but separate applications built for their platforms. The macOS constraint is therefore a genuine limitation for anyone on Windows, and the honest framing is that the two projects together cover both platforms and you use the one that matches your system.

There is also the option of a web-based service that provides the same data without an application to install. The difference there is that a local application reads the game process on your machine, whereas a web service needs the data to leave it, which is a different privacy position. The HSReplay.net integration is the interesting middle case, since the upload is opt-in-ish in the sense that it is a feature you can decline, and the documentation treats it as its own support area.

Editorial conclusion

Adopt HSTracker if you play Hearthstone on macOS and want a live view of the state of the game alongside a deck library, and if you are comfortable with an application that reads another application's memory. Do not adopt it on Windows, where the project points to a different deck tracker. Verify first that you launch HSTracker before Hearthstone, because the tracking depends on that order, and decide whether the HSReplay.net upload is something you want before you import a deck.

Frequently asked questions

What is HSTracker and what platform does it support?

HSTracker is an automatic deck tracker and deck manager for Hearthstone on macOS, written in Swift and released under the MIT licence. The requirement is macOS 10.10 or higher, and for Windows the documentation points to the separate Hearthstone Deck Tracker project.

How do I install and set up HSTracker?

Download the latest version, extract the archive, move HSTracker.app into your Applications directory, and launch HSTracker before Hearthstone. Then create a new deck from the Deck Manager or import one from a deckstring, and the app will also auto-detect the deck you play with.

What does HSTracker do with my games?

The HSReplay.net integration uploads your games to HSReplay.net. The documentation says that for support on that integration you should email [email protected], separately from the community Discord.

Is HSTracker open source and can I contribute?

Yes. The project is released under the MIT licence, with a CONTRIBUTING.md at the root of the repository, a CHANGELOG.md, a developer Discord channel for HSTracker, and a Translations/ directory for localisation work.

Where do I get the HSTracker download?

From hsdecktracker.net, with the download link given as hsdecktracker.net/hstracker/download. The project homepage is the HSReplay.net downloads page at hsreplay.net/downloads, and the source lives in the HearthSim GitHub organisation.

Official sources

  1. HearthSim/HSTracker on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/hearthsim-hstracker.svg)](https://hysenlabs.com/projects/hearthsim-hstracker)

Was this useful?