{"id":51097232,"url":"https://github.com/tykimos/steampack","last_synced_at":"2026-06-24T07:32:40.299Z","repository":{"id":350634102,"uuid":"1207665010","full_name":"tykimos/steampack","owner":"tykimos","description":"Keep your Mac awake with a single click — macOS menu bar sleep toggle app","archived":false,"fork":false,"pushed_at":"2026-04-11T08:54:44.000Z","size":116,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-11T10:26:01.912Z","etag":null,"topics":["macos","macos-app","menu-bar-app","menubar","pmset","sleep","swift","utility"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tykimos.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-11T08:25:21.000Z","updated_at":"2026-04-11T08:54:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tykimos/steampack","commit_stats":null,"previous_names":["tykimos/steampack"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/tykimos/steampack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tykimos%2Fsteampack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tykimos%2Fsteampack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tykimos%2Fsteampack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tykimos%2Fsteampack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tykimos","download_url":"https://codeload.github.com/tykimos/steampack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tykimos%2Fsteampack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34722702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["macos","macos-app","menu-bar-app","menubar","pmset","sleep","swift","utility"],"created_at":"2026-06-24T07:32:40.000Z","updated_at":"2026-06-24T07:32:40.277Z","avatar_url":"https://github.com/tykimos.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"right\"\u003e\n\n[![한국어](https://img.shields.io/badge/lang-한국어-red?style=flat-square)](README_ko.md)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# SteamPack\n\n\u003cimg src=\"capture.jpg\" width=\"600\" alt=\"SteamPack Screenshot\"/\u003e\n\n**Keep your Mac awake with a single click.**\n\n[![MIT License](https://img.shields.io/badge/license-MIT-blue?style=for-the-badge)](LICENSE)\n[![macOS](https://img.shields.io/badge/macOS-13%2B-000000?style=for-the-badge\u0026logo=apple\u0026logoColor=white)](https://www.apple.com/macos/)\n[![Swift](https://img.shields.io/badge/Swift-F05138?style=for-the-badge\u0026logo=swift\u0026logoColor=white)](https://swift.org)\n[![Build](https://img.shields.io/badge/build-swiftc-lightgrey?style=for-the-badge)](scripts/build.sh)\n\n*Toggle · Store · Forget — sleep control from the menu bar.*\n\n[Getting Started](#-getting-started) · [How It Works](#-how-it-works) · [Usage](#-usage) · [Build](#-build-from-source) · [Architecture](#-architecture)\n\n\u003c/div\u003e\n\n---\n\n## What is this?\n\nSteamPack is a **lightweight macOS menu bar utility** that toggles your Mac's sleep mode with a single click. It runs `pmset -a disablesleep` under the hood — no more typing long terminal commands.\n\n\u003e **Why \"SteamPack\"?** — Like a steam-powered jetpack that keeps you flying, SteamPack keeps your Mac running without ever touching down to sleep.\n\n---\n\n## ✨ Features\n\n- **One-click toggle** — Enable or disable sleep from the menu bar\n- **Scheduled sleep** — Keep Mac awake for 10m / 30m / 1h / 2h / 4h, then auto-sleep\n- **Live countdown** — Remaining time displayed in the menu bar\n- **Start at Login** — Optional auto-start when you log in\n- **Secure password storage** — sudo password stored in macOS Keychain\n- **Zero footprint** — No dock icon, no window, just a menu bar icon\n- **Universal Binary** — Runs natively on Apple Silicon and Intel\n- **No dependencies** — Pure AppKit, no third-party libraries\n\n---\n\n## 🚀 Getting Started\n\n### Download DMG\n\n1. Download `SteamPack.dmg` from [Releases](../../releases)\n2. Open the DMG → drag **SteamPack** to **Applications**\n3. Launch SteamPack\n\n### Build from Source\n\n```bash\ngit clone https://github.com/tykimos/steampack.git\ncd steampack\nbash scripts/build.sh\nopen build/SteamPack.app\n```\n\n\u003e **Requires:** Xcode Command Line Tools (`xcode-select --install`)\n\n---\n\n## 👁 Usage\n\n| Step | Action |\n|------|--------|\n| **Launch** | Eye icon appears in the menu bar |\n| **First run** | Enter sudo password (stored in Keychain) |\n| **Toggle** | Click icon → **Disable Sleep** / **Enable Sleep** |\n| **Change password** | Click icon → **Change Password** |\n| **Quit** | Click icon → **Quit** (`⌘Q`) |\n\n### Menu Bar Icons\n\n| Icon | State | Meaning |\n|------|-------|---------|\n| `eye.half.closed.fill` | Normal | Sleep **enabled** — Mac can sleep |\n| `eye.fill` | Active | Sleep **disabled** — Mac stays awake |\n| `hourglass.badge.eye` + countdown | Timer | Sleep disabled for set duration — countdown shown as `MM:SS` |\n\n\u003cimg src=\"timer.jpg\" width=\"600\" alt=\"Scheduled Sleep Timer\"/\u003e\n\n---\n\n## ⚙️ How It Works\n\nSteamPack executes `sudo pmset -a disablesleep 1` (disable) or `0` (enable) using the password stored in your macOS Keychain.\n\n```mermaid\nflowchart TB\n    subgraph MenuBar[\"macOS Menu Bar\"]\n        ICON[\"👁 SteamPack Icon\"]\n    end\n\n    subgraph Menu[\"Drop-down Menu\"]\n        STATUS[\"Sleep Enabled / Disabled\"]\n        TOGGLE[\"Disable Sleep ⌘T\"]\n        CHANGEPW[\"Change Password\"]\n        QUIT[\"Quit ⌘Q\"]\n    end\n\n    subgraph Security[\"Security Layer\"]\n        KEYCHAIN[\"🔑 macOS Keychain\\n(sudo password)\"]\n    end\n\n    subgraph System[\"macOS System\"]\n        PMSET[\"sudo pmset -a disablesleep 1/0\"]\n    end\n\n    ICON --\u003e|Click| Menu\n    TOGGLE --\u003e KEYCHAIN\n    KEYCHAIN --\u003e|\"stdin pipe\"| PMSET\n    PMSET --\u003e|\"State changed\"| STATUS\n\n    style MenuBar fill:#e8f4fd,stroke:#2196F3,color:#1565C0\n    style Menu fill:#fff3e0,stroke:#FF9800,color:#E65100\n    style Security fill:#e8f5e9,stroke:#4CAF50,color:#2E7D32\n    style System fill:#fce4ec,stroke:#E91E63,color:#880E4F\n```\n\n---\n\n## 🏗 Architecture\n\n```\nsteampack/\n├── src/\n│   ├── AppMain.swift          # Entry point, NSStatusItem menu bar\n│   ├── SleepToggle.swift      # pmset execution \u0026 state detection\n│   ├── KeychainHelper.swift   # Keychain Services wrapper\n│   └── PasswordPrompt.swift   # Secure password input dialog\n├── scripts/\n│   ├── build.sh               # Build automation (swiftc)\n│   └── create-dmg.sh          # DMG packaging (hdiutil)\n├── AppInfo.plist              # App bundle configuration\n├── capture.jpg                # Screenshot\n├── README.md                  # English\n└── README_ko.md               # 한국어\n```\n\n---\n\n## 🔒 Security\n\n- Passwords stored exclusively in **macOS Keychain** (`com.steampack.sudo`)\n- Password passed to sudo via **stdin pipe** — not visible in process list\n- Authentication failure triggers password re-entry\n- Ad-hoc code signed\n\n---\n\n## 📄 License\n\nMIT License — see [LICENSE](LICENSE) for details.\n\n\u003cdiv align=\"center\"\u003e\n\n*Built with ❤️ and [Claude Code](https://claude.ai/code)*\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftykimos%2Fsteampack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftykimos%2Fsteampack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftykimos%2Fsteampack/lists"}