{"id":26770705,"url":"https://github.com/alexjohnj/sauna","last_synced_at":"2026-04-28T20:31:39.605Z","repository":{"id":142964431,"uuid":"274404291","full_name":"alexjohnj/Sauna","owner":"alexjohnj","description":"A lightweight macOS app that displays your Steam friends list.","archived":false,"fork":false,"pushed_at":"2021-05-31T13:33:58.000Z","size":894,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-20T01:33:10.260Z","etag":null,"topics":["composable-architecture","macos","steam","steam-api","swift"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexjohnj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-06-23T12:49:24.000Z","updated_at":"2023-03-24T01:32:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"f050390e-61f1-4555-90b7-e09df822bf20","html_url":"https://github.com/alexjohnj/Sauna","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjohnj%2FSauna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjohnj%2FSauna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjohnj%2FSauna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjohnj%2FSauna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexjohnj","download_url":"https://codeload.github.com/alexjohnj/Sauna/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246112665,"owners_count":20725301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["composable-architecture","macos","steam","steam-api","swift"],"created_at":"2025-03-28T23:16:20.857Z","updated_at":"2026-04-28T20:31:34.577Z","avatar_url":"https://github.com/alexjohnj.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sauna\n\nSauna is a macOS (and watchOS, see below) app that lets you check which of your\nSteam friends are online without running the full Steam client.\n\n![Screenshot of Sauna for macOS.](/Screenshots/macOS.png?raw=true)\n\nCompared to the Steam client, Sauna is lightweight and a good macOS\ncitizen. Sauna is useful for people who play games in Boot Camp and want to see\nwho's online without rebooting or running the Steam client.\n\nSauna will notify you when a friend comes online or starts playing a new\ngame. These notifications can, of course, be disabled if you don't want them.\n\n## watchOS App\n\nThere is also a companion watchOS app in this repository. It offers similar\nfunctionality to the macOS app but is missing a few features, notably:\n\n- No auto-refreshing of the friends list.\n- No notifications for friends coming online and launching games.\n\n![Screenshot of Sauna for watchOS.](/Screenshots/watchOS.png?raw=true)\n\n## Requirements \u0026 Set Up\n\n### macOS\n\nSauna requires macOS 10.15 (Catalina) or newer.\n\nTo configure Sauna, you'll need a [Steam Web API key][api-docs] and your 64-bit\nSteam ID. You can get a personal API key by filling in [a form][api-key-form] on\nSteam's website. For many users, your Steam ID is the number in your profile's\nSteam community URL. If you have a vanity URL, there are various [online\ntools][steamid-io] that will retrieve your Steam ID.\n\n[api-docs]: https://steamcommunity.com/dev\n[api-key-form]: https://steamcommunity.com/dev/apikey\n[steamid-io]: https://steamid.io\n\n### watchOS\n\nSauna for watchOS requires watchOS 7 or newer.\n\nConfiguring the watchOS app is a bit more complex than the macOS app as you have\nto build you're own copy of it. Before starting, you'll need to have an Apple\ndeveloper account and have registered your Apple Watch on the developer portal.\n\nTo build the watchOS app, create a file in the root of the project directory\ncalled `Secrets.swift`. In it, add the following\n\n``` swift\nimport LibSauna\n\nlet kMySteamID = SteamID(rawValue: \"YOUR_STEAM_ID\")!\nlet kMySteamAPIKey: APIKey = \"YOUR_STEAM_API_KEY\"\n```\n\nfilling in your [Steam Web API key][api-docs] and your 64-bit [Steam\nID][steamid-io].\n\nOnce you've created this file, open the project in Xcode and navigate to the\nproject settings screen. For the _\"SaunaWatch\"_, _\"SaunaWatch WatchKit App\"_ and\n_\"SaunaWatch WatchKit Extension\"_ targets, change the team to your developer\naccount's team. You'll possibly also need to change the bundle IDs of the\ntargets.\n\nNow you can run the app on your watch by running the _\"SaunaWatch WatchKit App\"_\nscheme in Xcode. This may take a few tries as Xcode is unreliable when it comes\nto running apps on a device.\n\n## Development\n\nSauna for macOS is built using AppKit while the watchOS app is built using\nSwiftUI. Both apps use [The Composable Architecture][tca-github] and share much\nof their code via. the `LibSauna` package.\n\nI had intended to port Sauna for macOS to SwiftUI but given the state of SwiftUI\non macOS Big Sur, this is not going to happen with this release.\n\n[tca-github]: https://github.com/pointfreeco/swift-composable-architecture\n\n## Known Limitations\n\nSauna is limited to displaying 100 friends out of laziness. If this turns out to\nbe a significant issue, I'll look into increasing it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexjohnj%2Fsauna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexjohnj%2Fsauna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexjohnj%2Fsauna/lists"}