@evoxapp/plugin-cli package is evox-plugin.
Installation
Node.js 20+ is required. You can use it withnpx without installing:
Language
CLI messages andinit templates (README, comments, action names, key titles) are produced in English or Turkish. The language is chosen in this order: --lang en|tr > EVOX_PLUGIN_LANG > LC_ALL > LC_MESSAGES > LANG > the system locale (tr if it is Turkish) > en. The C and POSIX locales do not count as a language choice. An invalid --lang value returns PLUGIN_CLI_LANG_INVALID; an invalid EVOX_PLUGIN_LANG value is ignored. Error codes and JSON output field names do not change with the language.
Template values follow the selected language: for example the author name is Yerel Geliştirici with --lang tr and Local Developer with --lang en. The examples on this page show the English template.
Commands
--plugin-id <uuid> is optional; if not given, it is generated automatically and shown in the output.
T1 (trusted-node) or T2 (sandbox-js)? The two init targets have different flows:
- T1 ·
--runtime trusted-node→ producesmanifest.json+runtime.mjs. It is loaded directly from the evoX Plugins → Developer window;validate/build/packare not needed. If you runvalidatein this project you get an error becauseevox-plugin.jsoncannot be found — this is expected. Steps: Quickstart. - T2 · default (
sandbox-js) → produces theevox-plugin.jsonconfig. Thevalidate→sandbox-test→build→pack→publish-checkpipeline is for these projects (the publication target once public upload opens).
A T1 (trusted-node) project does not use these pipeline commands; you develop it by reloading from the Developer window as you change code.
sandbox-test is a static compatibility check: it scans your sandbox-js source for Node/DOM/direct network (fetch/WebSocket/XHR) access and validates the browser bundle. Run it before submitting for publication; any violation produces a fail-closed non-zero exit (suitable for CI/pre-submit). The real T2 security boundary is the host-owned Electron Chromium Worker; sandbox-test complements it and does not replace it.
evox-plugin.json (sandbox-js/T2 config)
The root config file of a sandbox-js project. init produces it; the pipeline commands (validate/build/pack/publish-check) read it. (This file does not exist in a T1 trusted-node project; T1 works directly with manifest.json + runtime.mjs.)
dependencies.json is kept separately and inventoried by validate/pack.
publish-check does not replace moderation, a production scanner, signing or revocation. As long as public executable upload is not ready, PLUGIN_UPLOAD_NOT_READY is kept.