T0 · Data pack
Profile/icon/sound — no code, publishable today.
T1 · Local dev
This page. Separate Node process, not a sandbox.
T2 · Public sandbox
Default-deny capability; public upload closed.
1. Create the project
Node.js 20+ is enough; no installation needed:runtime.mjs contains a ready example: the Hello action writes “Hello” when it appears on a key and shows the time when pressed. The template is produced in the CLI language (see Developer CLI); the values on this page are from the --lang en template.
2. Load it into evoX
1
Open the Developer window
In the evoX desktop app, go to the Plugins section and click the Developer button in the top bar.
2
Select the project
Select the
my-plugin folder with Select project. The manifest is validated by the host; if there is an error you see a clear message.3
Grant trust and start
Read the T1 risk text and confirm trust, then start the plugin. The plugin runs as a separate Node process; you follow its status and logs from the same window.
4
Assign it to a key
On the Keys screen, assign the Hello action from the action library to a key. “Hello” appears on the key; pressing it writes the time.
3. Development loop
- Change the code → reload from the Developer window. You don’t need to close the app.
- Logs are shown bounded/redacted in the same window; your
console.erroroutput lands here. - Identity belongs to the host:
client.session.plugin.pluginIdis assigned, the plugin cannot choose its own identity/permissions.
Next steps
Write an integration plugin
OBS/Twitch/Spotify-style Market integrations (full Node + npm).
First real plugin (tutorial)
Build a weather indicator with settings + host-brokered network.
Event reference
The full event and host-RPC surface.
Manifest
Runtime, permission and action fields.
Public target (T2)
sandbox-js project:
npx @evoxapp/plugin-cli init my-plugin (default) — the publication target once public upload opens.