launchd

Render and manage macOS LaunchAgents from .launchd/jobs templates with launchctl actions.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/ebijun1007/vibe-coding --skill launchd
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: launchd
Source: https://github.com/ebijun1007/vibe-coding/tree/main/.claude/skills/launchd
Command: npx skills add https://github.com/ebijun1007/vibe-coding --skill launchd

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

macOS launchd (launchctl) job management for repository-scoped automations. Install, uninstall, list, status, reload, and kick jobs defined under the current repo's .launchd/jobs/*.plist.tmpl by rendering templates and placing them in ~/Library/LaunchAgents, enabling per-project scheduling.

Core Features & Use Cases

  • Template-driven deployment: renders .plist.tmpl templates into LaunchAgents with token substitution ({{REPO_PATH}}, {{LABEL}}, {{HOME}}, {{USER}}) for deterministic, repeatable setups.
  • Lifecycle management: supports install, uninstall, list, status, reload, and kick actions to manage per-repo jobs across macOS systems.
  • Safe governance: validates rendered plist with plutil, prompts for user confirmation on destructive actions, and uses bootstrap/bootout semantics to avoid leftover loads in edge cases.

Quick Start

Install all defined launchd jobs by rendering templates from .launchd/jobs and bootstrapping them with launchctl.

Frequently Asked Questions about launchd

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I manage macOS launchd jobs from a repository?

To manage macOS launchd jobs from a repository, use a template-driven approach that renders .plist.tmpl files into LaunchAgents. This allows you to install, uninstall, list, and reload per-project automation jobs directly from your repo's .launchd/jobs directory.

How do I deploy launchd plist templates with token substitution on macOS?

Deploy launchd plist templates by rendering .plist.tmpl files with token substitution for variables like {{REPO_PATH}}, {{HOME}}, and {{USER}}. The rendered plists are placed in ~/Library/LaunchAgents and bootstrapped using launchctl to schedule per-repo jobs.

Can I use launchctl to install and uninstall per-project LaunchAgents on macOS?

Yes, you can use launchctl to install and uninstall per-project LaunchAgents on macOS. The process uses bootstrap and bootout semantics to safely load and unload jobs defined in your repository, prompting for confirmation before executing destructive uninstall actions.

What is the best way to validate a rendered launchd plist before loading it?

The best way to validate a rendered launchd plist is by using the plutil command. Validating the plist file after template token substitution and before bootstrapping it with launchctl ensures the job definition is structurally safe and prevents loading errors.

Why do my launchd jobs leave leftover loads after uninstalling on macOS?

Leftover loads in launchd jobs often occur from improper unload semantics. Using bootout semantics instead of older unload commands ensures that LaunchAgents are fully removed from the system, avoiding edge cases where jobs remain active after an uninstall.