Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
By apple
Port games and engines to Apple platforms (macOS, iOS) by translating graphics code from D3D12/Vulkan/OpenGL to Metal 4, compiling HLSL/DXIL shaders to metallib, integrating MetalFX temporal upscaling and frame interpolation, validating and debugging GPU correctness with GPU traces and Metal validation, and managing the full porting lifecycle via a milestone-based assistant agent.
npx claudepluginhub apple/game-porting-toolkit --plugin game-porting-skillsALWAYS 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
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Agent skills for building, debugging, profiling, testing, refactoring, and shipping Swift apps across Apple platforms.
Editorial "Apple Platform Design" bundle for Claude Code from Antigravity Awesome Skills.
39 skills spanning Apple Kit frameworks from AccessorySetupKit to WidgetKit, plus CarPlay
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.
Elite iOS and macOS development expertise with automatic skill activation for Swift, SwiftUI, UIKit, Xcode, and Apple frameworks plus code formatting tools
Expert Swift 6.2 + SwiftUI for iOS 26, macOS 26, iPadOS 26, watchOS 26, visionOS 26, tvOS 26 with Liquid Glass, @Observable, actors, SwiftData inheritance
Skills for authoring, exporting, compiling, and running PyTorch models on Apple silicon via Core AI.

🔗 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.