← Back to Skills Marketplace
iyeque

Device Control (Iyeque)

by iyeque · GitHub ↗ · v1.1.1
cross-platform ✓ Security Clean
815
Downloads
0
Stars
1
Active Installs
3
Versions
Install in OpenClaw
/install iyeque-device-control
Description
Expose safe device actions (volume, brightness, open/close apps) for personal automation.
README (SKILL.md)

Device Control Skill

Control device volume, brightness, and applications via command line. Supports Linux, macOS, Windows, and WSL.

Security

All inputs are validated and sanitized to prevent command injection:

  • Volume/brightness values must be numbers between 0-100
  • App names are restricted to alphanumeric characters, spaces, dashes, and underscores
  • Shell metacharacters are blocked

Tool API

device_control

Execute a device control action.

  • Parameters:
    • action (string, required): One of set_volume, change_volume, set_brightness, open_app, close_app.
    • value (string/number, optional): The value for the action (0-100 for volume/brightness, delta for change_volume).
    • app (string, optional): The application name or path (required for open/close actions).

Usage:

# Set volume to 50%
node skills/device-control/ctl.js --action set_volume --value 50

# Change volume by +10 or -10
node skills/device-control/ctl.js --action change_volume --value 10
node skills/device-control/ctl.js --action change_volume --value -10

# Set brightness to 75%
node skills/device-control/ctl.js --action set_brightness --value 75

# Open an application
node skills/device-control/ctl.js --action open_app --app "firefox"
node skills/device-control/ctl.js --action open_app --app "Visual Studio Code"

# Close an application
node skills/device-control/ctl.js --action close_app --app "firefox"

Platform Support

Action Linux macOS Windows WSL
set_volume ✅ (pactl/amixer) ✅ (osascript) ✅ (nircmd) ✅ (nircmd)
change_volume
set_brightness ✅ (brightnessctl) ⚠️ (requires brightness CLI) ✅ (WMI) ✅ (WMI)
open_app
close_app ✅ (pkill) ✅ (pkill) ✅ (taskkill) ✅ (taskkill)

Requirements

  • Linux: pactl (PulseAudio) or amixer (ALSA), brightnessctl (optional, for brightness)
  • macOS: Built-in osascript, brightness CLI tool (optional, for brightness)
  • Windows/WSL: nircmd.exe for volume control (download from nirsoft.net)
Usage Guidance
This skill appears to do what it says: run local system commands to control volume, brightness, and open/close apps. Before installing or using it, consider: (1) it runs platform binaries on your machine — ensure you trust those utilities (e.g., nircmd on Windows) and install them from official sources; (2) SKILL.md mentions supplying an app path but the code rejects path separators, so use application names (not full paths) or update the skill if you need path support; (3) although inputs are allowlisted and numeric inputs validated, the skill sometimes invokes shell commands (necessary for certain platforms); only give it to agents you trust to run local commands; (4) test the skill in a safe environment first to confirm behavior on your OS. If you need the skill to accept full paths or handle other app name characters, request the author clarify or patch the sanitizeAppName behavior.
Capability Analysis
Type: OpenClaw Skill Name: iyeque-device-control Version: 1.1.1 The skill bundle is classified as benign. The `SKILL.md` file serves as clear documentation without any prompt injection attempts. The `ctl.js` script implements robust input sanitization for both numeric values and application names using strict allowlist regex, effectively preventing command injection. While it relies on external binaries like `nircmd.exe` being correctly installed and in the system's PATH, this is a common pattern for utility skills and not indicative of malicious intent or a vulnerability within the skill's logic itself. The code does not exhibit any signs of data exfiltration, persistence mechanisms, or unauthorized network activity.
Capability Assessment
Purpose & Capability
The skill claims to control volume, brightness, and apps and only requires node in metadata, which is consistent with the included ctl.js that shells out to platform-native tools (pactl/amixer, osascript, brightnessctl, nircmd, pkill/taskkill). The manifest does not request unrelated credentials or config paths. One inconsistency: SKILL.md says the `app` parameter may be an application name or path, but the code's sanitizeAppName disallows path separators ('/') so passing a full path will be rejected.
Instruction Scope
SKILL.md instructs running the bundled ctl.js with actions and arguments; the code follows those instructions and documents platform-specific dependencies. The runtime does read /proc/version to detect WSL and executes local system binaries. Inputs are validated with strict allowlists for app names and integer validation for numeric values, which limits command-injection risk. However some commands are invoked via shell (exec/execPromise) rather than execFile in a few platform branches (macOS osascript, nircmd and Windows powershell usage, Linux open_app uses exec), which is expected for these platform-specific tools but is worth noting.
Install Mechanism
No install script is provided (instruction-only with one included JS file). Nothing is downloaded or extracted by the skill itself. The skill relies on external platform utilities (pactl/amixer/brightnessctl/osascript/nircmd/pkill/taskkill) which the SKILL.md documents; installing those is left to the user and is expected for this capability.
Credentials
The skill requests no environment variables or credentials and does not access network endpoints or secrets. Its access is limited to local filesystem reads (to detect WSL) and launching local system binaries — proportional to the stated device-control purpose.
Persistence & Privilege
The skill is not always-enabled and does not request elevated or persistent platform privileges, nor does it modify other skills or system-wide agent settings. It only executes ad-hoc commands when invoked.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install iyeque-device-control
  3. After installation, invoke the skill by name or use /iyeque-device-control
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.1
Security: removed hardcoded WSL path, strict allowlist for app names, numeric validation with regex
v1.1.0
Security fixes: command injection prevention, input sanitization. Added change_volume action. Updated SKILL.md.
v1.0.0
Initial release
Metadata
Slug iyeque-device-control
Version 1.1.1
License
All-time Installs 1
Active Installs 1
Total Versions 3
Frequently Asked Questions

What is Device Control (Iyeque)?

Expose safe device actions (volume, brightness, open/close apps) for personal automation. It is an AI Agent Skill for Claude Code / OpenClaw, with 815 downloads so far.

How do I install Device Control (Iyeque)?

Run "/install iyeque-device-control" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Device Control (Iyeque) free?

Yes, Device Control (Iyeque) is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Device Control (Iyeque) support?

Device Control (Iyeque) is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Device Control (Iyeque)?

It is built and maintained by iyeque (@iyeque); the current version is v1.1.1.

💬 Comments