{"id":18022905,"url":"https://github.com/gingerbeardman/stapler","last_synced_at":"2025-07-16T21:07:27.154Z","repository":{"id":252563534,"uuid":"840802171","full_name":"gingerbeardman/stapler","owner":"gingerbeardman","description":"My take on the classic Macintosh app Stapler (with a little bit of LaunchList)","archived":false,"fork":false,"pushed_at":"2024-08-23T19:31:49.000Z","size":530,"stargazers_count":257,"open_issues_count":6,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-06T10:57:21.174Z","etag":null,"topics":["document-management","launcher-application","macintosh","project-management"],"latest_commit_sha":null,"homepage":"https://blog.gingerbeardman.com/2024/08/10/stapler-i-remade-a-32-year-old-classic-macintosh-app/","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/gingerbeardman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"ko_fi":"gingerbeardman"}},"created_at":"2024-08-10T18:16:13.000Z","updated_at":"2025-03-30T12:15:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"d189e665-8898-4ca2-a451-ac8144f87c32","html_url":"https://github.com/gingerbeardman/stapler","commit_stats":null,"previous_names":["gingerbeardman/stapler"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gingerbeardman%2Fstapler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gingerbeardman%2Fstapler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gingerbeardman%2Fstapler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gingerbeardman%2Fstapler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gingerbeardman","download_url":"https://codeload.github.com/gingerbeardman/stapler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248036067,"owners_count":21037092,"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":["document-management","launcher-application","macintosh","project-management"],"created_at":"2024-10-30T07:06:19.953Z","updated_at":"2025-04-09T12:08:24.542Z","avatar_url":"https://github.com/gingerbeardman.png","language":"Swift","funding_links":["https://ko-fi.com/gingerbeardman"],"categories":[],"sub_categories":[],"readme":"# Stapler\n\nMy take on the classic Macintosh app [Stapler](https://macintoshgarden.org/apps/stapler-11) (Chris Patterson, Patterson Software Works, 1992).\n\nWith a little bit of the early Mac OS X app [LaunchList](http://hasseg.org/launchList/) (Ali Rantakari, hasseg.org, 2009).\n\nMore info in [the accompanying blog post](https://blog.gingerbeardman.com/2024/08/10/stapler-i-remade-a-32-year-old-classic-macintosh-app/).\n\n## Download\n\n[https://github.com/gingerbeardman/stapler/releases/latest](https://github.com/gingerbeardman/stapler/releases/latest)\n\n- supported: macOS 12 and newer\n\n## What is it?\n\nThe idea is you set up a *Stapler Document* per project containing related apps, files, folders, etc.\n\nThen you can open them all at once by launching the single document.\n\nEach document contains a list of aliases that can be managed, inspected, launched using the app.\n\nTask-based computing.\n\n\u003cimg width=\"442\" alt=\"screenshot\" src=\"https://github.com/user-attachments/assets/9b5482f9-48f0-4609-bf66-8b54ae148132\"\u003e\n\n## Use cases\n- Work: text editor, run current game, pixel art editor, bitmap font app, todo list\n- Play: Music app, Hacker News app, Twitter app, script to position windows\n- Movie: run Caffeine to keep your computer on, shortcut to put displays to sleep\n\n----\n\n## Usage\n\n### Opening the app\n\n- The app is digitally signed by me and my Apple developer account\n- The app is *not* Notarised and I currently have no plans to do so\n- You may need to do the right-click-choose-open Gatekeeper dance a couple of times to open it\n\n### Editing a list\n\n1. Open `Stapler.app`\n2. Create a New Document\n3. Add some items\n   - using drag and drop from Finder or other apps\n   - or using the menu `Items` \u003e `Add`\n4. Items can be removed (they are aliases so files on disk are not affected)\n5. Save your list as a *Stapler Document*\n\nAll standard macOS Document-Based App conventions are supported through the File menu. And things like Undo just works!\n\n### Launching a list\n\n1. Open your *Stapler Document*\n2. All items in the list will be launched automatically\n3. `Stapler.app` will close (if it was not already open)\n\n*Tip*: hold the \u003ckbd\u003eCmd\u003c/kbd\u003e key whilst launching a *Stapler Document* to open it in edit mode.\n\n### Launching specific items\n\n1. Open `Stapler.app`\n2. Open a *Stapler Document*\n3. Select the items you want to launch\n4. Select `Items` \u003e `Launch` (or press \u003ckbd\u003eReturn\u003c/kbd\u003e)\n\n### Working with a list\n\n1. Open `Stapler.app`\n2. Open a *Stapler Document*\n   - use `File` \u003e `Open…`\n   - use `File` \u003e `Open Recent`\n3. Use the `Items` menu\n\n*Tip*: hold the \u003ckbd\u003eCmd\u003c/kbd\u003e key whilst launching a *Stapler Document* to open it in edit mode.\n\n### Keyboard controls\n\n|Press |Function|\n|:--|:----|\n|\u003ckbd\u003eCmd\u003c/kbd\u003e + \u003ckbd\u003eReturn\u003c/kbd\u003e|Add… (open file selector)|\n|\u003ckbd\u003eBackspace\u003c/kbd\u003e|Remove|\n|\u003ckbd\u003eSpace\u003c/kbd\u003e|Quick Look|\n|\u003ckbd\u003eCmd\u003c/kbd\u003e + \u003ckbd\u003eR\u003c/kbd\u003e|Reveal in Finder|\n|\u003ckbd\u003eReturn\u003c/kbd\u003e|Launch|\n\n### Permissions\n\n- All files you select or drop are recorded only as macOS filesystem bookmarks\n- The only files that are written to are Stapler Documents\n- Network permission is required to Quick Look .webloc files\n- The app should prompt for file access permission\n- You may want to grant additional file access permissions at:\n    - `System Settings \u003e Privacy \u0026 Security \u003e Full Disk Access`\n- Since 1.2.1 the app is Notarized so it can be run with fewer nags\n\n---\n\n## Bonus tip\n\nSystem Preferences \u003e Desktop \u0026 Dock \u003e Windows \u003e Close windows when quitting an application = OFF\n\nThen leave the windows of an app open as you quit it. When you next launch the app its windows will restore to their previous size and position. If you close the windows first, then the app will restore to having no windows open.\n\n----\n\n## Get involved\n\n- Please use Discussions for any questions\n- Wiki contains info for power users\n- Bug reports and PRs are very welcome!\n\n## Licence\n\n[MIT](/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgingerbeardman%2Fstapler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgingerbeardman%2Fstapler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgingerbeardman%2Fstapler/lists"}