{"id":13584622,"url":"https://github.com/zbeekman/launchctl-tasks","last_synced_at":"2025-07-19T00:32:55.896Z","repository":{"id":152719857,"uuid":"152324863","full_name":"zbeekman/launchctl-tasks","owner":"zbeekman","description":"A set of short \u0026 sweet `launchctl` plists for automating boring tasks on macOS 🤖🍏","archived":false,"fork":false,"pushed_at":"2018-10-09T22:09:21.000Z","size":9,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T00:19:45.444Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"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/zbeekman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2018-10-09T21:38:39.000Z","updated_at":"2024-06-23T22:59:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"7c4da37b-600a-47ec-93af-282717e373cf","html_url":"https://github.com/zbeekman/launchctl-tasks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbeekman%2Flaunchctl-tasks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbeekman%2Flaunchctl-tasks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbeekman%2Flaunchctl-tasks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbeekman%2Flaunchctl-tasks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zbeekman","download_url":"https://codeload.github.com/zbeekman/launchctl-tasks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243527334,"owners_count":20305200,"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":[],"created_at":"2024-08-01T15:04:23.838Z","updated_at":"2025-03-14T05:21:34.555Z","avatar_url":"https://github.com/zbeekman.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"launchctl-tasks\n===============\n\nA set of short and sweet `launchctl` plists I have defined for running boring tasks on macOS\n\nWhy?\n----\n\n`launchctl` is the preferred means of automating tasks on macOS (over, say, `cron`). I original started\nusing `launchctl` to perform the following main tasks:\n\n - Ensuring software updates/maintanence can happen automatically/psuedo-automatically\n - I always had a manifest of installed software that was up-to-date in my time machine backups\n   (via [`brew bundle`])\n - Establishing reliable reverse ssh tunnels for NAT busting, so that my macOS boxes are accessible to me\n   even if they are behind some NAT on a network I don't control.\n\nI use the [LaunchControl App] for editing and managing the plist files, since it provides some great\nfunctionality. This is non-free software and I have purchased a license for it.\n\nContents\n--------\n\n__[User Agents]__\n\n* [sh.brew.update]: Ensure homebrew's package repository remains up to date; spend less of your life waiting\n  for homebrew git transactions to take place\n* [sh.brew.outdated]: Keep a list of outdated formulae in /tmp so your dot files can inform you about\n  outadted packages when you log in\n* [sh.brew.cask.outdated]: Keep a list of outdated casks in /tmp so your dot files can inform you when apps\n  installed as casks need updating\n* [com.github.mas-cli.mas]: Keep a list of outdated mac App store apps in /tmp so your dot files can remind\n  you to update them when you log in\n* [sh.brew.bundle.dump]: Ensure you have an up-to-date `.Brewfile` in your home directory. This way, a\n  manifest of installed software will always be up-to-date and make it into your TimeMachine backups should\n  you need to restore your machine and re-provision it\n* [sh.brew.fetch-outdated]: Download bottles (binary distributions) for outdated homebrew software in the\n  background, so that it is ready to install and will skip the download step when `brew upgrade` is run\n\n[`brew bundle`]: https://github.com/Homebrew/homebrew-bundle\n[LaunchControl App]: http://www.soma-zone.com/LaunchControl/\n[User Agents]: ./UserAgents\n[sh.brew.update]: ./UserAgents/sh.brew.update.plist\n[sh.brew.outdated]: ./UserAgents/sh.brew.outdated.plist\n[sh.brew.cask.outdated]: ./UserAgents/sh.brew.cask.outdated\n[com.github.mas-cli.mas]: ./UserAgents/com.github.mas-cli.mas.plist\n[sh.brew.bundle.dump]: ./UserAgents/sh.brew.bundle.dump.plist\n[sh.brew.fetch-outdated]: ./UserAgents/sh.brew.fetch-outdated.plists\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzbeekman%2Flaunchctl-tasks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzbeekman%2Flaunchctl-tasks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzbeekman%2Flaunchctl-tasks/lists"}