.agents/skills/wox-plugin-creator/SKILL.md
python3 scripts/scaffold_wox_plugin.py --type nodejs --output-dir ./MyPlugin --name "My Plugin" --trigger-keywords mypython3 scripts/scaffold_wox_plugin.py --type python --output-dir ./MyPlugin --name "My Plugin" --trigger-keywords mypython3 scripts/scaffold_wox_plugin.py --type singlefile-python --output-dir ./Wox.Plugin.Weather.py --name "Weather" --trigger-keywords weatherpython3 scripts/scaffold_wox_plugin.py --type singlefile-nodejs --output-dir ./Wox.Plugin.Weather.js --name "Weather" --trigger-keywords weatherpython3 scripts/scaffold_wox_plugin.py --type script-nodejs --output-dir ./Wox.Plugin.Script.MyScript.js --name "My Script" --trigger-keywords my.py or CommonJS .js file with full Public API, loaded into the existing Python/Node runtime host. No extra process per query. Save reloads the plugin. Requires Wox 2.4.2+; header MinWoxVersion must be "2.4.2"..wox): multi-file package with dependencies, resources, TypeScript, and plugin.json.Single-file Python is the fastest path to a Python SDK plugin. Node.js first version must stay CommonJS (module.exports.plugin) and must not import @wox-launcher/wox-plugin.
scripts/scaffold_wox_plugin.py for nodejs, python, script-nodejs, script-python, singlefile-python, or singlefile-nodejs.--name and --trigger-keywords for every runtime. The scaffold exits without them.{{.ID}}, {{.Name}}, {{.Description}}, {{.TriggerKeywordsJSON}}, {{.Author}}.make init in the project root when the project has not been initialized yet.Wox.Plugin.Script.<Name>.<ext> (e.g., Wox.Plugin.Script.Memos.py).Wox.Plugin.<Name>.py or Wox.Plugin.<Name>.js.MinWoxVersion to "2.4.2". The scaffold applies this default when --min-wox-version is omitted. Do not lower it; Wox 2.4.2 is the first release that can load this plugin type, and store/CI reject older floors.~/.wox/ai/skills/wox-plugin-creator/assets/script_plugin_templates/ and fills metadata placeholders.~/.wox/ai/skills/wox-plugin-creator/assets/single_file_plugin_templates/ (or the repo .agents/skills/wox-plugin-creator/assets/single_file_plugin_templates/ fallback).references/sdk_nodejs.md or references/sdk_python.md.plugin.json, SettingDefinitions, QueryRequirements, validators, dynamic settings, and feature flags, read references/plugin_json_schema.md first.GetSetting / SaveSetting / OnSettingChanged, or Python get_setting / save_setting / on_setting_changed). These values participate in Wox cloud sync and can follow the user across machines. Do not store plugin settings in local files, custom JSON, or other side storage unless the value is truly machine-local and cannot live in settings.If a plugin needs to cache anything on disk, put it under the Wox plugin cache folder. Do this before inventing a local cache/, tmp/, downloads/, or data/ directory.
GetCacheFolder(ctx) / get_cache_folder(ctx) in init(), keep the path, then write files under it (downloads/, thumbs/, query JSON, and so on).WOX_DIRECTORY_PLUGIN_CACHE. It is the same ~/.wox/cache/plugins/<plugin-id>/ folder.gifbox-script-plugin.SettingDefinitions, always decide whether each setting is platform-specific before shipping it. Wox cloud sync replicates normal plugin settings across devices, so local paths, executable paths, shell commands, hotkeys, system integrations, browser profiles, and application paths should usually set IsPlatformSpecific: true. Account IDs, API keys, remote service hosts, and cross-platform user preferences should usually keep IsPlatformSpecific: false.DisabledInPlatforms only to disable a setting on selected platforms. It does not isolate stored values; use IsPlatformSpecific when the value must differ per platform after cloud sync.QueryRequirements instead of returning ad hoc setup results from query().references/settings_patterns.md.PluginSettingDefinitionItem and value objects directly.references/icons.md for icon selection, inline SVG patterns, and placement rules.assets/iconify/, prefer reusing that local reference before searching for a new one.scripts/search_iconify.py to search Iconify collections and fetch ready-to-inline SVG constants for icons.ts or icons.py.make package inside the template repo.wox-plugin-submit2store skill.plugin.json; they embed a JSON metadata block in the script header comments.MinWoxVersion as "2.4.2". Store delivery uses a .py or .js download URL with Runtime PYTHON or NODEJS. Do not mix those suffixes with SCRIPT or .wox.Wox enforces the same interpreter floors for SDK plugins, single-file SDK plugins, and script plugins. Store install fails, and queries show a setup result, when the machine is below these versions:
Do not target older interpreters. Script plugins still use the user's system Python or Node.js; they do not use a bundled runtime. Single-file SDK plugins run inside Wox's existing Python/Node runtime host and require Wox 2.4.2 or later (MinWoxVersion: "2.4.2").
scripts/scaffold_wox_plugin.py, scripts/search_iconify.pyreferences/plugin_overview.md, references/scaffold_nodejs.md, references/scaffold_python.md, references/sdk_nodejs.md, references/sdk_python.md, references/plugin_json_schema.md, references/settings_patterns.md, references/plugin_i18n.md, references/icons.mdassets/script_plugin_templates/, assets/single_file_plugin_templates/, assets/iconify/