{"id":19558509,"url":"https://github.com/mach-kernel/launchk","last_synced_at":"2025-04-26T23:31:58.048Z","repository":{"id":46670954,"uuid":"315070215","full_name":"mach-kernel/launchk","owner":"mach-kernel","description":"Cursive TUI that queries XPC to peek at launchd state","archived":false,"fork":false,"pushed_at":"2024-05-31T12:57:42.000Z","size":441,"stargazers_count":107,"open_issues_count":2,"forks_count":12,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-04T18:22:01.103Z","etag":null,"topics":["apple","cursive","launchctl","launchd","ncurses","rust","services","xpc","xpc-objects","xpc-service"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/mach-kernel.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}},"created_at":"2020-11-22T15:33:56.000Z","updated_at":"2025-02-13T02:47:07.000Z","dependencies_parsed_at":"2023-12-21T22:32:11.099Z","dependency_job_id":"792cc90a-4bd6-4bd7-b557-fa1d9ada4479","html_url":"https://github.com/mach-kernel/launchk","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mach-kernel%2Flaunchk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mach-kernel%2Flaunchk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mach-kernel%2Flaunchk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mach-kernel%2Flaunchk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mach-kernel","download_url":"https://codeload.github.com/mach-kernel/launchk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251068039,"owners_count":21531475,"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":["apple","cursive","launchctl","launchd","ncurses","rust","services","xpc","xpc-objects","xpc-service"],"created_at":"2024-11-11T04:47:19.709Z","updated_at":"2025-04-26T23:31:57.744Z","avatar_url":"https://github.com/mach-kernel.png","language":"Rust","readme":"# launchk\n\n[![Rust](https://github.com/mach-kernel/launchk/actions/workflows/rust.yml/badge.svg?branch=master)](https://github.com/mach-kernel/launchk/actions/workflows/rust.yml)\n\nA [Cursive](https://github.com/gyscos/cursive) TUI that makes XPC queries \u0026 helps manage launchd jobs.\n\nShould work on macOS 10.10+ according to the availability sec. [in the docs](https://developer.apple.com/documentation/xpc?language=objc).\n\n\u003cimg src=\"https://user-images.githubusercontent.com/396039/120085936-6700a180-c0aa-11eb-8606-31dc6a3cbe99.gif\" width=\"600\"\u003e\n\n#### Install\n\nBinaries are available via brew tap:\n\n```\nbrew tap mach-kernel/pkgs\nbrew install mach-kernel/pkgs/launchk\n```\n\n#### Features\n\nUse `:` to enter command mode, `/` to enter filtering mode, and any of `sguadl` for filtering by [system, global, user, agent, daemon, loaded]. `Ctrl-U` to clear, `Tab` to complete, `Enter` to submit. \n\n- Poll XPC for jobs and display changes as they happen\n- Filter by `LaunchAgents` and `LaunchDaemons` in scopes (fsnotify watched):\n  - System (/System/Library/)\n  - Global (/Library)\n  - User (~/) \n- `load`\n- `unload`\n- `dumpstate` (opens in `$PAGER`)\n- `dumpjpcategory` (opens in `$PAGER`)\n- `procinfo` (opens in `$PAGER`, does not require root!)\n- `edit` plist in `$EDITOR` with support for binary plists\n- `csrinfo` show all CSR flags and their values\n\n#### xpc-sys\n\nWhile building launchk, XPC convenience glue was placed in `xpc-sys`. \n\n[[See its README here]](xpc-sys/README.md)\n\n### Credits\n\nA big thanks to these open source projects and general resources:\n\n- [block](https://crates.io/crates/block) Obj-C block support, necessary for any XPC function taking `xpc_*_applier_t`  \n- [Cursive](https://github.com/gyscos/cursive)\n- [tokio](https://github.com/tokio-rs/tokio)\n- [plist](https://crates.io/crates/plist)\n- [notify](https://docs.rs/notify/4.0.16/notify/)\n- [bitflags](https://docs.rs/bitflags/1.2.1/bitflags/)  \n- [libc](https://crates.io/crates/libc)\n- [lazy_static](https://crates.io/crates/lazy_static)\n- [xcrun](https://crates.io/crates/xcrun)\n- [Apple Developer XPC services](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingXPCServices.html)  \n- [Apple Developer XPC API reference](https://developer.apple.com/documentation/xpc?language=objc)  \n- [MOXIL / launjctl](http://newosxbook.com/articles/jlaunchctl.html)  \n- [geosnow - A Long Evening With macOS' sandbox](https://geosn0w.github.io/A-Long-Evening-With-macOS%27s-Sandbox/)  \n- [Bits of launchd - @5aelo](https://saelo.github.io/presentations/bits_of_launchd.pdf)  \n- [Audit tokens explained (e.g. ASID)](https://knight.sc/reverse%20engineering/2020/03/20/audit-tokens-explained.html)  \n- [objc.io XPC guide](https://www.objc.io/issues/14-mac/xpc/)\n- [Fortinet XPC RE article](https://www.fortinet.com/blog/threat-research/a-look-into-xpc-internals--reverse-engineering-the-xpc-objects)\n- [This HN comment](https://news.ycombinator.com/item?id=2565780) re history\n- The various source links found in comments, from Chrome's sandbox and other headers with definitions for private API functions.\n- After all, it is Apple's launchd :\u003e)\n\nEverything else (C) David Stancu \u0026 Contributors 2021\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmach-kernel%2Flaunchk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmach-kernel%2Flaunchk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmach-kernel%2Flaunchk/lists"}