By apple
Port games and engines to Apple platforms (macOS, iOS) using Metal 4. Handles shader compilation, GPU resource management, synchronization, debugging, GPU capture, MetalFX upscaling and frame interpolation, game controller input, and window setup. Orchestrates the porting workflow with milestone-based goals, discovery reports, and validation checklists.
ALWAYS use when compiling DXIL/HLSL to metallib with Metal shader converter (commonly referred to as MSC) via the metal-shaderconverter CLI or libmetalirconverter (IRCompiler, IRObject, IRShaderReflection) at runtime. Covers offline/runtime DXIL compilation, root signatures, reflection output, ray tracing shaders, geometry/tessellation emulation compilation, framebuffer fetch in HLSL, programmable blending in HLSL, Metal_HLSL.inc, and compatibility flags. Do NOT trigger for binding compiled shaders to encoders — use integrating-metal-shaderconverter-shaders for that.
ALWAYS use when creating Metal pipeline state objects with Metal 4 descriptors (MTL4RenderPipelineDescriptor, MTL4ComputePipelineDescriptor, MTL4MeshRenderPipelineDescriptor) via MTL4Compiler. Covers function descriptors, function constant specialization, flexible/unspecialized PSOs, color-attachment mapping, async compilation (MTL4CompilerTask), pipeline caching (MTL4Archive, MTL4PipelineDataSetSerializer), static/binary shader linking, and pipeline reflection. Do NOT trigger for HLSL/DXIL → metallib — use compiling-with-metal-shaderconverter.
ALWAYS use when a user porting a game to Metal reports a rendering issue — blank screen, wrong output, or anything that looks incorrect on Metal vs. the source platform. Covers black screen, missing geometry, wrong colors, gamma/sRGB problems, texture artifacts, z-fighting, alpha blending, flickering, visual corruption, and upside-down/mirrored geometry. Works with or without a GPU trace. Do NOT trigger when the user just wants to inspect an existing .gputrace.
ALWAYS use when integrating Metal shader converter (commonly referred to as MSC) shaders at runtime — binding model, top-level argument buffer (TLAB), root signature resource locations, descriptor/sampler heaps, static samplers, bindless resources, vertex fetch, separate stage-in, geometry/tessellation emulation, compute dispatch, unbounded arrays, and append/consume buffers. Do NOT trigger for compiling DXIL/HLSL to metallib — use compiling-with-metal-shaderconverter for that.
ALWAYS use when writing or porting Metal object lifetime management code in metal-cpp — including crashes on release, use-after-free, memory leaks, autorelease pool placement, NS::TransferPtr vs NS::RetainPtr ownership, bridge casts at ARC/metal-cpp boundaries, or any question about when and how Metal objects are retained, released, or destroyed.
Uses power tools
Uses Bash, Write, or Edit tools
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.

🔗 Jump to: Overview · Feedback · Getting started · Skills · Samples · License
The Game Porting Toolkit helps developers bring existing games and engines to Apple platforms, providing developer tools such as the evaluation environment for Windows games and Metal Shader Converter. To learn more, go to https://developer.apple.com/games/game-porting-toolkit/.
This repository includes:
A collection of agent skills to assist porting games to Apple platforms so you can produce higher-quality ports and ship on Apple platforms faster.
Metal-cpp, enabling the use of Metal directly from C++.
Code samples covering end-to-end porting techniques.
We would love to hear your feedback using the Apple Feedback Assistant. Select feedback for Developer Tools, and choose the Game Porting Toolkit sub-category. We aren't accepting pull requests on this repository at this time.
gpucapture and gpudebug — to streamline the debugging process.Clone with submodules so metal-cpp is populated:
git clone --recurse-submodules https://github.com/apple/game-porting-toolkit.git
If you already cloned without it, run:
git submodule update --init --recursive
Installation differs depending on your coding agent of choice.
Register the marketplace:
/plugin marketplace add apple/game-porting-toolkit
Alternatively, register the marketplace from the local git checkout:
/plugin marketplace add /path/to/game-porting-toolkit
Install the plugin:
/plugin install game-porting-skills@game-porting-toolkit
Register the marketplace:
codex plugin marketplace add https://github.com/apple/game-porting-toolkit
Alternatively, register the marketplace from the local git checkout:
codex plugin marketplace add /path/to/game-porting-toolkit
Install the plugin:
codex plugin add game-porting-skills@game-porting-toolkit
Install the extension from a local directory:
gemini extensions install /path/to/game-porting-toolkit/game-porting-skills
The workflow skills run a port as a resumable project, built on two levels: a goal spans many sessions ("get the simplest sample rendering"); a milestone is one session of bounded work toward it. porting-methodology is always loaded and defines the rules; the rest are steps you invoke, directly or through the porting-assistant agent.
porting-discover) — analyze the codebase; write a discovery report. Once per codebase.porting-plan-goal) — pick the simplest target; break it into dependency-ordered milestones.porting-start-milestone) — study code, load skills. No code yet.porting-execute) — write code to the engine's conventions.porting-validate) — verify at runtime: GPU capture, validation layers, leak checks, review.porting-handoff) — commit, update memory, write a handoff note.porting-status reports where things stand, any time.State lives on disk in .porting/ (discovery report, goal documents, handoff notes, porting-memory.md), so a port survives session boundaries and context resets.
For the full list of expert and workflow skills, see game-porting-skills/README.md.
npx claudepluginhub apple/game-porting-toolkit --plugin game-porting-skillsSkills for authoring, exporting, compiling, and running PyTorch models on Apple silicon via Core AI.
164 Apple platform development skills across 23 categories (iOS, macOS, watchOS, visionOS): code generators, product workflow, App Store/ASO, testing and TDD, design, performance, security, and more. Surfaced as 23 category skills that route to the full library.
Editorial "Apple Platform Design" bundle for Claude Code from Antigravity Awesome Skills.
Agent skills for building, debugging, profiling, testing, refactoring, and shipping Swift apps across Apple platforms.
Elite iOS and macOS development expertise with automatic skill activation for Swift, SwiftUI, UIKit, Xcode, and Apple frameworks plus code formatting tools
Develops iOS applications with XcodeGen, SwiftUI, and SPM. Use when configuring XcodeGen project.yml, resolving SPM dependency issues, deploying to devices, handling code signing, debugging camera/AVFoundation, iOS version compatibility issues, or fixing Library not loaded @rpath framework errors. Includes state machine testing patterns for @MainActor classes
Build and migrate iOS, macOS, iPadOS, watchOS, tvOS, and visionOS apps with Apple's Liquid Glass design system. Covers all SwiftUI glass APIs, migration workflows, platform-specific patterns, and real-world examples from Apple's Landmarks sample app.