The github-proxy.com was created previously to Blueprints, load branches, pull requests, and commits on GitHub without CORS issues and add a dynamic packaging functionality. This service is hosted and maintained by a community contributor, Christoph Khouri, and he will end this service at the beginning of 2026 (but your Blueprints are safe).

The good news: The Playground team has introduced an automatic migration layer in WordPress Playground. If your Blueprints currently rely on github-proxy.com, they will continue to work automatically.
What is changing?
When Playground encounters a github-proxy.com URL in a Blueprint, it will now automatically rewrite it to use native Playground resources like git:directory.
Your Blueprints will continue to work, but you’ll see a console warning to update them. Update your Blueprints to use native resources for future compatibility and to remove these warnings.
How to migrate
The automatic migration handles several patterns:
| github-proxy.com pattern | Migrates to |
|---|---|
?repo=owner/name |
zip wrapping git:directory at HEAD |
?repo=...&branch=trunk |
zip wrapping git:directory with branch ref |
?repo=...&pr=123 |
zip wrapping git:directory with refs/pull/123/head |
?repo=...&commit=abc |
zip wrapping git:directory with commit ref |
?repo=...&release=v1.0 |
zip wrapping git:directory with tag ref |
?repo=...&directory=subdir |
zip wrapping git:directory with path |
?repo=...&release=v1.0&asset=file.zip |
url to GitHub releases download |
?repo=...&release=latest&asset=file.zip |
url to GitHub /releases/latest/download/ |
https://github-proxy.com/https://... |
url with the inner GitHub URL |
Here is how you can update your Blueprints to match the native implementation:
1. Repositories, Branches, and Pull Requests
The old proxy returned a ZIP file of a repository. You can now achieve this natively using the git:directory resource.
Old:
{
"resource": "url",
"url": "https://github-proxy.com/proxy/?repo=user/repo&branch=main"
}
New:
Use the git:directory resource directly in your steps (like installPlugin or installTheme).
{
"step": "installPlugin",
"pluginData": {
"resource": "git:directory",
"url": "https://github.com/my-user/my-repo",
"ref": "main"
}
}
You can target specific commits or pull requests using the ref property:
- Pull request:
"ref": "refs/pull/123/head" - Commit:
"ref": "abcdef123456..."
2. Release Assets
If you were using the proxy to fetch a specific asset (like a plugin zip) from a GitHub release, you can now use the resource zip with an inner object.
Old:
{
"resource": "url",
"url": "https://github-proxy.com/proxy/?repo=user/repo&release=v1.0&asset=plugin.zip"
}
New:
{
"resource": "zip",
"inner": {
"resource": "git:directory",
"url": "https://github.com/owner/repo",
"ref": "main"
}
}
Why is this better?
The proxy was vital in Playground’s early days. Recent infrastructure improvements, Playground’s built-in CORS proxy, and Git over HTTP support now enable native GitHub repository access. This removes the dependency on third-party services and improves stability.
A huge thank you to Christoph for keeping this service running and stable over the past years. It played a massive role in making Playground useful early on.
Please check your Blueprints today. If you have any questions, please get in touch with the Playground Team via the #playground Slack channel.