Wox Plugin Submit2store
Overview
Submit the current plugin repository to the Wox store through a PR against Wox-launcher/Wox. Ensure a reusable fork exists first, read local plugin metadata, refuse duplicate submissions, and only modify store-plugin.json when the plugin ID is not already present.
Workflow
- Ensure the user already has a fork of
Wox-launcher/Wox, or create one. - Read the current plugin repository before touching the store repo.
- Validate that the plugin has enough public metadata and release assets for a store entry.
- Clone the user's fork into a temporary directory and add
upstreamforhttps://github.com/Wox-launcher/Wox. - Check upstream
store-plugin.jsonfor the current plugin ID. - Stop and tell the user not to submit when the ID already exists.
- Add the new store entry when the ID is absent.
- Commit on a branch in the fork and open a PR to
Wox-launcher/Wox.
Ensure A Fork Exists First
Treat fork setup as the first gate. Do not clone or edit a working copy until one of these is true:
- the user already has a fork of
Wox-launcher/Wox - the current authenticated GitHub user can create one now
Use this order:
- Check whether the user already has a fork and reuse it when present.
- If
ghis available and authenticated, create the fork from the CLI. - If
ghis unavailable, unauthenticated, or fails, send the user to the web fork flow and continue only after the fork exists.
For CLI-driven fork handling:
- prefer reusing an existing fork instead of creating a new one
- if a fork is missing, create it with GitHub CLI
- after the fork exists, treat the fork as
originand the official repo asupstream
For web fallback:
- direct the user to
https://github.com/Wox-launcher/Wox/fork - wait for the user to confirm the fork is ready
- continue by cloning the fork repository, not the upstream repository
When the user has direct write access to Wox-launcher/Wox, a fork is not required. Otherwise, do not assume direct push access.
Read Local Metadata First
Read at least these files before preparing the store entry:
plugin.jsonpackage.jsonwhen version information needs confirmation- local screenshots or icon files when URLs need to be derived
- git remotes to determine the GitHub repository URL
Extract or derive these values:
- plugin
Id NameAuthorVersionMinWoxVersionRuntimeDescription- repository
Website .woxdownload asset URL- public icon URL
- optional screenshot URLs
- supported operating systems
Stop and ask the user to fix the repository first when any of these conditions hold:
plugin.jsonstill contains template placeholders such as{{.Id}}or{{.Name}}- the repository URL cannot be determined
- the plugin does not have a public release asset that matches the installable
.woxpackage - the icon or screenshot is only local and no stable public URL can be formed
Clone The Fork And Check For Duplicates
Clone the user's fork into a temporary directory instead of modifying the current plugin workspace. Add the official repository as upstream so the branch and PR target remain Wox-launcher/Wox.
Inspect store-plugin.json from the current upstream default branch and search by the exact plugin ID from the local plugin.json.
When the ID already exists:
- do not modify
store-plugin.json - tell the user that the plugin is already listed
- include the existing matching entry or its location so the user can verify it quickly
When the ID does not exist:
- continue to create a new entry
- preserve the file's existing formatting and ordering style
Build The Store Entry
Use the field template and sourcing rules in references/store-plugin-entry.md.
Apply these rules while building the JSON object:
- Keep
Id,Name,Author,Version,MinWoxVersion, andRuntimealigned with local plugin metadata. - Prefer a plain
Descriptionstring when no i18n payload exists. - Add
I18nonly when the repository already has trustworthy localized copy. - Convert local OS names to the store style:
Windows,Darwin,Linux. - Set
DateCreatedandDateUpdatedto the current local timestamp inYYYY-MM-DD HH:MM:SS. - Use raw GitHub content URLs for
IconUrlandScreenshotUrls. - Use the canonical repository URL for
Website. - Use the latest release asset URL for
DownloadUrl.
Before editing store-plugin.json, re-check that the generated URLs and filenames match the actual repository layout and release asset names.
Prepare The PR
After editing the cloned fork workspace:
- Create a branch such as
codex/add-<plugin-name>-store-entry. - Commit only the
store-plugin.jsonchange. - Push to the user's fork.
- Open a PR targeting
Wox-launcher/Wox.
Use a concise PR title such as Add <Plugin Name> to store.
Use a PR body that includes:
- what plugin was added
- the repository URL
- the release download URL
- screenshots or icon coverage when relevant
Report Back To The User
Always end with one of these outcomes:
Already listed: explain that no submission is needed.Ready to submit: summarize the new store entry and PR URL.Waiting for fork: tell the user to finish the web fork flow before continuing.Blocked: list the missing metadata or missing public assets that prevented submission.