Repository navigation
Conversation
platforms/<host>/scripts/ is now reserved like skills/: render never copies it into dist/. npm run validate runs platforms/<host>/scripts/validate.mjs on dist/<host> when it exists, and npm run package -- <host> runs its package.sh. The schema check also ignores "extensions" on an MCP server entry, where OpenAI declares OAuth; the Agent Plugins MCP schema doesn't list it.
Moves openai-zenrows (v0.1.8) into platforms/openai with its listing and review fields, OAuth mcp.json and the getting-started slot. Its submission checks and ZIP build move to platforms/openai/scripts. The getting-started description now names ChatGPT and Codex. Contact email is integrations@zenrows.com.
Collaborator
Author
Diff with the original repo
Changed or added (3 files): Not carried over into the plugin:
Full diff (66 lines)diff --git a/openai-zenrows/README.md b/dist/openai/README.md
index c70a347..2fd9f43 100644
--- a/openai-zenrows/README.md
+++ b/dist/openai/README.md
@@ -30,18 +30,18 @@ The plugin sends the URLs and options you ask the model to fetch to Zenrows, whi
## Support
- Documentation: [docs.zenrows.com](https://docs.zenrows.com)
-- Contact: [success@zenrows.com](mailto:success@zenrows.com)
+- Contact: [integrations@zenrows.com](mailto:integrations@zenrows.com)
## For maintainers
The package follows OpenAI's [plugin package format](https://developers.openai.com/plugins/build/plugins): a root `plugin.json` (Agent Plugins schema, with the listing, review and publication fields under `extensions.com.openai`), a root `mcp.json`, `skills/` and `assets/`.
```
-node scripts/validate.mjs # checks the documented submission limits
-bash scripts/package.sh # validates, then builds dist/zenrows-<version>.zip
+npm run validate # includes the submission limits, from platforms/openai/scripts/validate.mjs
+npm run package -- openai # validates, then builds .cache/packages/openai-zenrows-<version>.zip
```
-`scripts/validate.mjs` encodes the limits from OpenAI's [manifest field reference](https://developers.openai.com/plugins/deploy/submission#automatically-provide-submission-and-review-information) and [submission error reference](https://developers.openai.com/plugins/deploy/submission-errors). CI runs it on every push.
+`platforms/openai/scripts/validate.mjs` in [zenrows-integrations](https://github.com/ZenRows/zenrows-integrations) encodes the limits from OpenAI's [manifest field reference](https://developers.openai.com/plugins/deploy/submission#automatically-provide-submission-and-review-information) and [submission error reference](https://developers.openai.com/plugins/deploy/submission-errors). CI runs it on every push.
Things to know before submitting:
diff --git a/openai-zenrows/plugin.json b/dist/openai/plugin.json
index a10d893..4201c92 100644
--- a/openai-zenrows/plugin.json
+++ b/dist/openai/plugin.json
@@ -5,11 +5,11 @@
"description": "Live web data for ChatGPT and Codex: read pages, extract structured data, run batch jobs and site crawls, and drive hosted browser sessions through the Zenrows MCP server.",
"author": {
"name": "Zenrows",
- "email": "success@zenrows.com",
+ "email": "integrations@zenrows.com",
"url": "https://www.zenrows.com"
},
"homepage": "https://docs.zenrows.com",
- "repository": "https://github.com/ZenRows/openai-zenrows",
+ "repository": "https://github.com/ZenRows/zenrows-integrations",
"license": "MIT",
"keywords": ["web-scraping", "data-extraction", "browser-automation", "crawl", "mcp", "zenrows"],
"extensions": {
diff --git a/openai-zenrows/skills/getting-started/SKILL.md b/dist/openai/skills/getting-started/SKILL.md
index 329cb77..85b3e3d 100644
--- a/openai-zenrows/skills/getting-started/SKILL.md
+++ b/dist/openai/skills/getting-started/SKILL.md
@@ -1,6 +1,6 @@
---
name: getting-started
-description: First-run setup and troubleshooting for the Zenrows plugin. Use when the plugin was just installed, a Zenrows tool is missing or "not available", Zenrows returns a 401 or AUTH003, the Zenrows account needs connecting, or the user asks whether Zenrows is set up. Not for normal scraping tasks once the plugin works (use scrape-webpage).
+description: First-run setup and troubleshooting for the Zenrows plugin in ChatGPT and Codex. Use when the plugin was just installed, a Zenrows tool is missing or "not available", Zenrows returns a 401 or AUTH003, the Zenrows plugin needs sign-in, or the user asks whether Zenrows is set up. Not for normal scraping tasks once the plugin works (use scrape-webpage).
---
# Getting started
@@ -16,7 +16,7 @@ First confirm the Zenrows tools (`scrape`, `browser_*`) are available in this se
- Tools missing entirely: the Zenrows account is not connected yet. Ask the user to connect it from the Zenrows plugin, sign in to Zenrows and approve access.
- Tools present: call `scrape(url='https://httpbin.io/get', response_type='plaintext')` and branch:
- 200 with a body: Zenrows is working. Go to step 2.
- - 401 or `AUTH003`: the sign-in is missing or no longer valid. Ask the user to reconnect their Zenrows account from the Zenrows plugin, then retry. Do not ask for an API key.
+ - 401 or `AUTH003`: the sign-in is missing or no longer valid. Ask the user to reconnect Zenrows the same way as above, then retry. Do not ask for an API key.
- `AUTH004` or `AUTH014`: Zenrows is connected, but the account's credits or this API key's credit cap are used up. Reconnecting won't help. Tell the user to check their usage and plan in the Zenrows dashboard.
## 2. First successful scrape |
This was referenced Nov 2, 2026
tedi-z
previously approved these changes
Nov 5, 2026
# Conflicts: # CONTRIBUTING.md # package.json
platforms/<host>/scripts/ is now reserved like skills/: render never copies it into dist/. npm run validate runs platforms/<host>/scripts/validate.mjs on dist/<host> when it exists, and npm run package -- <host> runs its package.sh.
shared/text/<name>.md holds one fact in plain text. A skill inlines it with
{{< name}}; code uses {{text:name}}, a quoted string literal. using-zenrows
and extract-structured-data now take AUTH004, AUTH014, AUTH006 and REQS007's
page_not_recognised from there; every plugin renders byte-identically.
Validate fails on a snippet with markdown, more than one line, or no user.
kind: code in vars.yaml makes a host whose output isn't a plugin (code for
another project, or a marketplace listing): it ships only its own files, with
{{...}} filled in .ts/.js too, no skills, LICENSE, assets or plugin.json, keeps
its README out of dist, needs no release-please entry yet, and may keep a
scripts/check.sh.
Per-host scripts (validate.mjs, package.sh, npm run package) are only used by
the OpenAI plugin, and check.sh and the AUTH/REQS007 snippets only by the
Activepieces piece: they stay with those hosts. What's left is what any code
host needs: kind: code, and shared/text with {{< name}} and {{text:name}}.
Comments and CONTRIBUTING describe any code host, a piece or a listing.
# Conflicts: # CONTRIBUTING.md # scripts/lib.mjs # scripts/validate.mjs
scripts/ is the host's own and never ships; validate.mjs and package.sh keep their meaning, and anything else is the host's to run. No allow-list to extend per tool.
…at/openai # Conflicts: # CONTRIBUTING.md # scripts/lib.mjs
The host keeps only its own sections in platforms/openai/readme/, and its manifests use the shared description.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the OpenAI host in. This is the second host after Claude (#1) and is independent of it. Whichever PR merges second needs a small rebase of the release-please files and the README hosts list.
What changes
platforms/openai/, fromopenai-zenrowsv0.1.8:plugin.json, including the wholeextensions.com.openaiblock (listing, review test cases, publication);mcp.json, with OAuth DCR;vars.yaml: host "the model", host_full "ChatGPT and Codex", connection "Zenrows plugin".platforms/<host>/scripts/is reserved, likeskills/, and never ships:platforms/openai/scripts/validate.mjsholds OpenAI's submission limits, moved from openai-zenrows.npm run validateruns it ondist/openai.platforms/openai/scripts/package.shbuilds the upload ZIP. Run it withnpm run package -- openai. Hosts without one are told they need no packaging.extensionson an MCP server entry. That's where OpenAI declares OAuth, and the Agent Plugins MCP schema doesn't list it.dist/openaistarts at0.1.8.integrations@zenrows.com.What users will see
Small changes:
Checked
dist/openaivs openai-zenrows: the only differences are the two above, plus the email, repository and maintainer commands in the README.render --checkandvalidatepass.dist/copilotis unchanged.package.shoutput.shortDescriptionmakes validate fail through the OpenAI check.platforms/openai/scripts/also makes validate fail.Not in this PR