/plugin-commands
:::info This document covers all build, test, and smoke commands for eIsland native plugins. Each plugin lives under `plugins/` and has its own `package.json` with independent scripts. :::
$ npx -y skills add JNTMTMTM/eIsland --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/plugin-commands
Context preview
What this command does when you run it.
:::info This document covers all build, test, and smoke commands for eIsland native plugins. Each plugin lives under `plugins/` and has its own `package.json` with independent scripts. :::
Command definition
plugin-commands.mdtitle: Plugin Commands
icon: plug
Plugin Commands
:::info This document covers all build, test, and smoke commands for eIsland native plugins. Each plugin lives under `plugins/` and has its own `package.json` with independent scripts. :::
Overview
All commands are run from the individual plugin directory:
cd plugins/<plugin-name>
npm run <script>
| Plugin | Directory | Language | Build Tool | Tests | Smoke | |--------|-----------|----------|------------|-------|-------| | **Fullscreen Detector** | `eisland-windows-fullscreen-detector` | C | node-gyp | ✅ | ✅ | | **Performance Monitor** | `eisland-windows-performance-monitor` | C + C# | node-gyp + dotnet | ✅ | ✅ | | **Processes Attacker** | `eisland-windows-processes-attacker` | C | node-gyp | ❌ | ❌ | | **Toast Listener** | `eisland-windows-toast-listener` | C++ | node-gyp | ✅ | ✅ | | **SMTC Helper** | `eisland-windows-smtc-helper` | C# | dotnet | ✅ | ✅ | | **Bluetooth Helper** | `eisland-windows-bluetooth-helper` | C# | dotnet | ✅ | ✅ | | **Brightness Helper** | `eisland-windows-brightness-helper` | C# | dotnet | ✅ | ✅ | | **Application Icon Helper** | `eisland-windows-application-icon-helper` | C# | dotnet | ✅ | ✅ | | **Screenshot Helper** | `eisland-windows-screenshot-helper` | C# | dotnet | ✅ | ✅ |
Common Commands
All plugins share these three build commands:
| Command | Description | When to Use | |---------|-------------|-------------| | `npm run build` | Build the plugin | First build, or after source code changes | | `npm run clean` | Remove build artifacts | Free disk space, or troubleshoot build issues | | `npm run rebuild` | Clean + build | After modifying `binding.gyp`, `.csproj`, or adding new source files |
:::warning After modifying `binding.gyp` (e.g., adding a new source file or library), always run `npm run rebuild` — a regular `npm run build` may use cached artifacts. :::
Bulk Operations
Run from the **project root** to build or clean all plugins at once.
| Command | Description | |---------|-------------| | `npm run plugins:build` | Build all 10 plugins sequentially (uses `build:all` where available) | | `npm run plugins:clean` | Clean all 10 plugins in parallel |
:::tip `plugins:build` automatically uses `build:all` for Bluetooth, Power, SMTC, and WiFi Helpers (which include NativeAOT DLL targets). All other plugins use `build`. :::
Individual Plugin Commands
Each plugin also has a dedicated root-level command for targeted builds and cleans:
| Plugin | Build | Clean | |--------|-------|-------| | Bluetooth Helper | `npm run plugin:build:bluetooth` | `npm run plugin:clean:bluetooth` | | Brightness Helper | `npm run plugin:build:brightness` | `npm run plugin:clean:brightness` | | Power Helper | `npm run plugin:build:power` | `npm run plugin:clean:power` | | Processes Attacker | `npm run plugin:build:processes` | `npm run plugin:clean:processes` | | SMTC Helper | `npm run plugin:build:smtc` | `npm run plugin:clean:smtc` | | Toast Listener | `npm run plugin:build:toast` | `npm run plugin:clean:toast` | | WiFi Helper | `npm run plugin:build:wifi` | `npm run plugin:clean:wifi` | | Fullscreen Detector | `npm run plugin:build:fullscreen` | `npm run plugin:clean:fullscreen` | | Performance Monitor | `npm run plugin:build:perfmon` | `npm run plugin:clean:perfmon` | | Application Icon Helper | `npm run plugin:build:icon-helper` | `npm run plugin:clean:icon-helper` | | Screenshot Helper | `npm run plugin:build:screenshot-helper` | `npm run plugin:clean:screenshot-helper` |
:::info NativeAOT Build Requirement Building NativeAOT DLLs (`npm run build:ctypes` for SMTC, Bluetooth, Power, WiFi helpers) requires `vswhere.exe` in PATH. If the build fails with `'vswhere.exe' is not recognized`, add it:
export PATH="/c/Program Files (x86)/Microsoft Visual Studio/Installer:$PATH"
:::
---
Windows Fullscreen Detector
**Directory:** `plugins/eisland-windows-fullscreen-detector` | **Language:** C | **Build:** `node-gyp rebuild`
Build
| Command | Script | Description | |---------|--------|-------------| | `npm run build` | `node-gyp rebuild` | Compile the native addon | | `npm run clean` | `node-gyp clean` | Remove `build/` directory | | `npm run rebuild` | `node-gyp clean && node-gyp rebuild` | Full clean build |
Test
| Command | Script | Description | |---------|--------|-------------| | `npm test` | `vitest run` | All tests — shape validation, export verification | | `npm run test:polling` | `vitest run test/fullscreen-detector.polling.test.ts` | Polling-mode tests only |
Smoke
| Command | Script | Description | |---------|--------|-------------| | `npm run smoke` | `node --experimental-strip-types test/fullscreen-detector.smoke.ts` | Full smoke — `getFullscreenWindows()`, `isAnyFullscreenWindow()` | | `npm run smoke:polling` | `node --experimental-strip-types test/fullscreen-detector.polling.smoke.ts` | Polling smoke — multiple reads over time |
---
Windows Performance Monitor
**Directory:** `plugins/eisland-windows-performance-monitor` | **Language:** C + C# | **Build:** `node-gyp rebuild && dotnet build`
:::note This plugin has a dual build: the C addon is compiled by node-gyp, and the .NET temperature helper is compiled by `dotnet build`. :::
Build
| Command | Script | Description | |---------|--------|-------------| | `npm run build` | `node-gyp rebuild && dotnet build temperature-helper/...csproj -c Release` | Build C addon + .NET helper | | `npm run clean` | `node-gyp clean && dotnet clean temperature-helper/...csproj` | Remove all build artifacts | | `npm run rebuild` | `node-gyp clean && node-gyp rebuild && dotnet build temperature-helper/...csproj -c Release` | Full clean build |
Test
| Command | Script | Description | |---------|--------|-------------| | `npm test` | `vitest run` | All tests — CPU, memory, temperature, hardware shape validation |
Smoke
| Command | Script |
Read more
title: Plugin Commands icon: plug
Plugin Commands
:::info This document covers all build, test, and smoke commands for eIsland native plugins. Each plugin lives under `plugins/` and has its own `package.json` with independent scripts. :::
Overview
All commands are run from the individual plugin directory:
cd plugins/<plugin-name> npm run <script>
| Plugin | Directory | Language | Build Tool | Tests | Smoke | |--------|-----------|----------|------------|-------|-------| | **Fullscreen Detector** | `eisland-windows-fullscreen-detector` | C | node-gyp | ✅ | ✅ | | **Performance Monitor** | `eisland-windows-performance-monitor` | C + C# | node-gyp + dotnet | ✅ | ✅ | | **Processes Attacker** | `eisland-windows-processes-attacker` | C | node-gyp | ❌ | ❌ | | **Toast Listener** | `eisland-windows-toast-listener` | C++ | node-gyp | ✅ | ✅ | | **SMTC Helper** | `eisland-windows-smtc-helper` | C# | dotnet | ✅ | ✅ | | **Bluetooth Helper** | `eisland-windows-bluetooth-helper` | C# | dotnet | ✅ | ✅ | | **Brightness Helper** | `eisland-windows-brightness-helper` | C# | dotnet | ✅ | ✅ | | **Application Icon Helper** | `eisland-windows-application-icon-helper` | C# | dotnet | ✅ | ✅ | | **Screenshot Helper** | `eisland-windows-screenshot-helper` | C# | dotnet | ✅ | ✅ |
Common Commands
All plugins share these three build commands:
| Command | Description | When to Use | |---------|-------------|-------------| | `npm run build` | Build the plugin | First build, or after source code changes | | `npm run clean` | Remove build artifacts | Free disk space, or troubleshoot build issues | | `npm run rebuild` | Clean + build | After modifying `binding.gyp`, `.csproj`, or adding new source files |
:::warning After modifying `binding.gyp` (e.g., adding a new source file or library), always run `npm run rebuild` — a regular `npm run build` may use cached artifacts. :::
Bulk Operations
Run from the **project root** to build or clean all plugins at once.
| Command | Description | |---------|-------------| | `npm run plugins:build` | Build all 10 plugins sequentially (uses `build:all` where available) | | `npm run plugins:clean` | Clean all 10 plugins in parallel |
:::tip `plugins:build` automatically uses `build:all` for Bluetooth, Power, SMTC, and WiFi Helpers (which include NativeAOT DLL targets). All other plugins use `build`. :::
Individual Plugin Commands
Each plugin also has a dedicated root-level command for targeted builds and cleans:
| Plugin | Build | Clean | |--------|-------|-------| | Bluetooth Helper | `npm run plugin:build:bluetooth` | `npm run plugin:clean:bluetooth` | | Brightness Helper | `npm run plugin:build:brightness` | `npm run plugin:clean:brightness` | | Power Helper | `npm run plugin:build:power` | `npm run plugin:clean:power` | | Processes Attacker | `npm run plugin:build:processes` | `npm run plugin:clean:processes` | | SMTC Helper | `npm run plugin:build:smtc` | `npm run plugin:clean:smtc` | | Toast Listener | `npm run plugin:build:toast` | `npm run plugin:clean:toast` | | WiFi Helper | `npm run plugin:build:wifi` | `npm run plugin:clean:wifi` | | Fullscreen Detector | `npm run plugin:build:fullscreen` | `npm run plugin:clean:fullscreen` | | Performance Monitor | `npm run plugin:build:perfmon` | `npm run plugin:clean:perfmon` | | Application Icon Helper | `npm run plugin:build:icon-helper` | `npm run plugin:clean:icon-helper` | | Screenshot Helper | `npm run plugin:build:screenshot-helper` | `npm run plugin:clean:screenshot-helper` |
:::info NativeAOT Build Requirement Building NativeAOT DLLs (`npm run build:ctypes` for SMTC, Bluetooth, Power, WiFi helpers) requires `vswhere.exe` in PATH. If the build fails with `'vswhere.exe' is not recognized`, add it:
export PATH="/c/Program Files (x86)/Microsoft Visual Studio/Installer:$PATH"
:::
---
Windows Fullscreen Detector
**Directory:** `plugins/eisland-windows-fullscreen-detector` | **Language:** C | **Build:** `node-gyp rebuild`
Build
| Command | Script | Description | |---------|--------|-------------| | `npm run build` | `node-gyp rebuild` | Compile the native addon | | `npm run clean` | `node-gyp clean` | Remove `build/` directory | | `npm run rebuild` | `node-gyp clean && node-gyp rebuild` | Full clean build |
Test
| Command | Script | Description | |---------|--------|-------------| | `npm test` | `vitest run` | All tests — shape validation, export verification | | `npm run test:polling` | `vitest run test/fullscreen-detector.polling.test.ts` | Polling-mode tests only |
Smoke
| Command | Script | Description | |---------|--------|-------------| | `npm run smoke` | `node --experimental-strip-types test/fullscreen-detector.smoke.ts` | Full smoke — `getFullscreenWindows()`, `isAnyFullscreenWindow()` | | `npm run smoke:polling` | `node --experimental-strip-types test/fullscreen-detector.polling.smoke.ts` | Polling smoke — multiple reads over time |
---
Windows Performance Monitor
**Directory:** `plugins/eisland-windows-performance-monitor` | **Language:** C + C# | **Build:** `node-gyp rebuild && dotnet build`
:::note This plugin has a dual build: the C addon is compiled by node-gyp, and the .NET temperature helper is compiled by `dotnet build`. :::
Build
| Command | Script | Description | |---------|--------|-------------| | `npm run build` | `node-gyp rebuild && dotnet build temperature-helper/...csproj -c Release` | Build C addon + .NET helper | | `npm run clean` | `node-gyp clean && dotnet clean temperature-helper/...csproj` | Remove all build artifacts | | `npm run rebuild` | `node-gyp clean && node-gyp rebuild && dotnet build temperature-helper/...csproj -c Release` | Full clean build |
Test
| Command | Script | Description | |---------|--------|-------------| | `npm test` | `vitest run` | All tests — CPU, memory, temperature, hardware shape validation |
Smoke
| Command | Script |
eIsland - A sleek, Apple Dynamic Island inspired floating widget for Windows, built with Electron.
Repo: JNTMTMTM/eIsland
Other commands on eisland.
- /dev-commands
:::info This document covers the core development commands for building, running, and previewing the eIsland application. For environment setup and prerequisites, see [Frontend Setup](/developer/environment-setup/frontend-setup.md). :::
Open command - /esa-commands
:::info This document covers the ESA (Edge Security Acceleration) CDN cache purge commands for clearing cached content on Alibaba Cloud ESA. These commands use the official `@alicloud/esa20240910` SDK. :::
Open command - /package-commands
:::info This document covers the packaging and lifecycle commands for building distributable installers and managing native modules. For development commands (dev, build, preview), see [Development Commands](dev-commands.md). :::
Open command - /quality-commands
:::info This document covers the code quality commands for validating comment standards and i18n completeness in the eIsland frontend. :::
Open command - /release-commands
:::info This document covers the release and changelog commands for publishing eIsland builds and generating release notes. For packaging the installer locally, see [Package Commands](package-commands.md). :::
Open command - /test-commands
:::info This document covers the testing commands for running, filtering, and measuring test coverage in the eIsland frontend. :::
Open command

