Build, run, and debug macOS apps with shell-first Xcode and Swift workflows. Use when launching apps or diagnosing build, startup, or runtime failures.
npx skills add https://github.com/openai/plugins --skill build-run-debug
Use this skill to set up one project-local script/build_and_run.sh entrypoint,
wire .codex/environments/environment.toml so the Codex app shows a Run button,
then 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.
git rev-parse --is-inside-work-tree.git init at the project/workspace root before building so Codex app git-backed features are available. Never run git init inside a nested subdirectory when the current workspace already belongs to a parent repo..xcworkspace, .xcodeproj, and Package.swift..app bundle for AppKit/SwiftUI GUI apps.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 thescript 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/..codex/environments/environment.toml at the project root once the script exists..codex/environments/environment.toml.references/run-button-bootstrap.md.Run action command to point at ./script/build_and_run.sh instead of creating a duplicate action../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.--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.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 and .codex/environments/environment.toml contract.build_and_run.sh script can own the workflow..codex/environments/environment.toml before the run script exists, and do not point the Run action at a stale script path.Provide:
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling
Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification
Take openai/build-run-debug from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.