Help us improve
Share bugs, ideas, or general feedback.
From build-macos-apps
Build, run, and debug local macOS apps and desktop executables using shell-first Xcode and Swift workflows. Use when asked to build a Mac app, launch it, diagnose compiler or linker failures, inspect startup problems, or debug desktop-only runtime issues.
npx claudepluginhub freak4pc/codex-curated-plugins --plugin build-macos-appsHow this skill is triggered — by the user, by Claude, or both
Slash command
/build-macos-apps:build-run-debugThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill to set up one project-local `script/build_and_run.sh` entrypoint
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Use this skill to set up one project-local script/build_and_run.sh entrypoint
and use that script as the default build/run path.
Prefer shell-first workflows:
./script/build_and_run.sh as the single kill + build + run entrypoint once it existsxcodebuild for Xcode workspaces or projectsswift build plus raw executable launch inside that script for true SwiftPM command-line toolsswift build plus project-local .app bundle staging and /usr/bin/open -n launch for SwiftPM AppKit/SwiftUI GUI appslldb, log stream, telemetry verification, or post-launch process checksDo not assume simulators, touch interaction, or mobile-specific tooling.
If an Xcode-aware MCP surface is already available and the user explicitly wants it, use it only where it fits. Keep that usage narrow and honest: prefer it for Xcode-oriented discovery, logging, or debugging support, and do not force simulator-specific workflows onto pure macOS tasks.
Discover the project shape.
git rev-parse --is-inside-work-tree.git init at the project/workspace root before building. Never run git init inside a nested subdirectory when the current workspace already belongs to a parent repo..xcworkspace, .xcodeproj, and Package.swift.Resolve the runnable target and process name.
.app bundle for AppKit/SwiftUI GUI apps.Create or update script/build_and_run.sh.
--debug to launch under lldb or attach the debugger--logs to stream process logs after launch--telemetry to stream unified logs filtered to the app subsystem/category--verify to launch the app and confirm the process exists with pgrep -x <AppName>swift build, locate the artifact, then invoke an ad hoc run command.dist/<AppName>.app, copy the binary to Contents/MacOS/<AppName>, generate a minimal Contents/Info.plist with CFBundlePackageType=APPL, CFBundleExecutable, CFBundleIdentifier, CFBundleName, LSMinimumSystemVersion, and NSPrincipalClass=NSApplication, then launch with /usr/bin/open -n <bundle>.--logs and --telemetry, launch the bundle with /usr/bin/open -n first, then stream unified logs with /usr/bin/log stream --info ....references/run-button-bootstrap.md as the canonical source for the
script shape and exact environment file format. Do not fork a second
authoritative snippet in another skill or command.script/build_and_run.sh, not in App/, Views/, Models/, Stores/, Services/, or Support/.Build and run through the script.
./script/build_and_run.sh../script/build_and_run.sh --debug, --logs, --telemetry, or --verify when the user asks for debugger/log/telemetry/process verification support.Summarize failures correctly.
Debug the right way.
--logs or --telemetry mode for config, entitlement, sandbox, and action-event verification.NSApp.setActivationPolicy(.regular) and NSApp.activate(ignoringOtherApps: true).--debug mode or direct lldb if symbolized crash debugging is needed.telemetry.Use Xcode-aware MCP tooling only when it helps.
find . -name '*.xcworkspace' -o -name '*.xcodeproj' -o -name 'Package.swift'xcodebuild -list -workspace <workspace>xcodebuild -list -project <project>./script/build_and_run.sh./script/build_and_run.sh --debug./script/build_and_run.sh --logs./script/build_and_run.sh --telemetry./script/build_and_run.sh --verifyreferences/run-button-bootstrap.md: canonical build_and_run.sh script shape.build_and_run.sh script can own the workflow.Provide: