Geeklink Home
v0.1.0[English] Control Geeklink Home local gateway devices and scenes over LAN via the bundled self-contained Node.js runtime. Supports device listing, scene list...
Security Scan
OpenClaw
Benign
medium confidencePurpose & Capability
Name/description match the implementation: the skill bundles a Node.js CLI (vendor/geeklink-lan-cli.js) and small wrapper scripts that require the node binary. The included scripts and SKILL.md describe LAN host + pairingToken usage which aligns with controlling a local Geeklink gateway.
Instruction Scope
Runtime instructions only instruct the agent/user to obtain gatewayHost and pairingToken from the official app and run the packaged Node.js CLI. The workflow is narrowly scoped to device/scene listing, state checks, and control. One note: SKILL.md and scripts mention caching a session (login command) and a persistent watcher; where session tokens or watcher state are stored is not specified in the docs—that could result in sensitive pairing tokens being written to disk inside the skill runtime (expected for this use but worth auditing).
Install Mechanism
No external install/download step is declared; the package is instruction-and-file based with bundled vendor code. This is low risk compared with arbitrary remote downloads. The vendor CLI is large (~185KB) — since it's included rather than fetched at install time, inspect it for unexpected network calls/telemetry prior to use.
Credentials
The skill requests no environment variables, no credentials, and no config paths. The only sensitive inputs are the gatewayHost and pairingToken the user must copy from the official app, which is appropriate for local gateway control. Still, those tokens are sensitive and may be stored by the runtime.
Persistence & Privilege
The skill is not forced-always and uses normal autonomous invocation defaults. SKILL.md documents a persistent watcher (single instance) started when the skill runtime is loaded — this is consistent with the described functionality and not an unexplained privilege escalation.
Assessment
This package appears coherent for local LAN control of a Geeklink gateway, but take these precautions before installing or enabling it: 1) Review the bundled vendor/geeklink-lan-cli.js (or run it in a sandbox) to check for any external network endpoints or telemetry beyond local LAN access. 2) Treat the pairingToken as a secret — confirm where the runtime stores cached sessions and whether those files are protected or written to persistent disk. 3) If possible, run the skill in a network-limited environment that allows LAN access but blocks outbound internet to detect any unexpected exfiltration. 4) If you are not comfortable reviewing the JS bundle, prefer running the CLI manually from an isolated machine rather than enabling it as a persistent skill.scripts/geeklink-home.js:16
Shell command execution detected (child_process).
vendor/geeklink-lan-cli.js:1820
Shell command execution detected (child_process).
vendor/geeklink-lan-cli.js:3648
File read combined with network send (possible exfiltration).
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.Like a lobster shell, security has layers — review code before you run it.
Runtime requirements
🏠 Clawdis
Binsnode
latest
Geeklink Home Control | Geeklink Home 局域网控制
[English] | 中文
English
Use the local Geeklink Home gateway over LAN through the bundled self-contained Node.js skill runtime.
Features
- Local LAN access to the Geeklink Home gateway
- Pairing-token based authentication
- Device catalog, scene catalog, and state snapshot access
- Background watcher with recent event and single-device state queries
- Scene activation and local device control
- Multi-gang panels are expanded into practical sub-devices such as
吊灯and筒灯 - Packaged around the bundled
vendor/geeklink-lan-cli.jsruntime - The persistent runtime keeps a single watcher instance per loaded skill
Setup
- Ensure
vendor/geeklink-lan-cli.jsexists in the installed skill package. - Open the gateway details page in the Geeklink app and go to
AI Skill Access. - Copy
gatewayHostandpairingTokenfrom that page. - Use the cross-platform Node wrapper scripts in
scripts/to query devices, scenes, states, and execute actions. - When loaded by ClawHub/OpenClaw as a skill runtime, the watcher is started automatically and tools can read recent events.
Core Workflow
- Open the gateway details page in the Geeklink app and enter
AI Skill Access. - Read the
gatewayHostandpairingTokenshown on that page. - Run
node scripts/geeklink-home.js login --host <host> --pairing-token <token>once to cache session. - Use:
node scripts/geeklink-home.js catalog devices --refreshnode scripts/geeklink-home.js catalog devices --query 吊灯 --refreshnode scripts/geeklink-home.js catalog scenes --refreshnode scripts/geeklink-home.js state snapshot --refreshnode scripts/geeklink-home.js scene activate <sceneId>node scripts/geeklink-home.js device control <catalogDeviceId> ...
Natural Language Mapping
When the user asks for:
- "What devices do I have?" -> run
catalog devices --refresh - "What scenes are available?" -> run
catalog scenes --refresh - "Turn on living room light" -> find the matching expanded
catalog_device_id(for example吊灯under a panel), then rundevice control <id> --power on - "Set bedroom AC to 26 cool high" ->
device control <id> --power on --temperature 26 --mode cool --fan-speed high - "Run away mode" -> find
scene_id, then runscene activate <sceneId> - "Is the living room light on?" -> use
geeklink_get_device_state - "What changed recently?" -> use
geeklink_get_recent_events
Do not guess catalog_device_id. Always list devices first if the mapping is unclear. When a panel exposes named roads, prefer the expanded road device like 吊灯 instead of the parent panel name.
Release Notes
- Version:
0.1.0 - Validated:
- Device catalog
- Scene catalog
- Local device control
- State snapshot
- Single-watcher recent event tracking
- ClawHub publisher owner id for this package is
lintertion.
中文说明
通过内置的自包含 Node.js 运行时,在局域网内直接访问 Geeklink Home 网关。
功能
- 在局域网内访问 Geeklink Home 网关
- 基于 pairing token 的认证
- 读取设备目录、场景目录、状态快照
- 提供后台 watcher、最近事件和单设备状态查询
- 执行场景和本地设备控制
- 以
vendor/geeklink-lan-cli.js为底层运行时 - 多路面板会展开成更符合用户习惯的子设备,例如
吊灯、筒灯 - 常驻 skill runtime 只会启动一个 watcher 实例
使用前准备
- 确认已安装的 skill 包中存在
vendor/geeklink-lan-cli.js。 - 在 Geeklink App 的网关详情页进入
AI技能接入页面。 - 在该页面查看并复制
gatewayHost和pairingToken。 - 通过
scripts/中的跨平台 Node 包装脚本完成登录、列表查询、场景执行和设备控制。 - 如果由 ClawHub/OpenClaw 以常驻 skill runtime 加载,watcher 会自动启动,并支持读取最近事件。
建议工作流
- 先在 Geeklink App 的网关详情页打开
AI技能接入页面。 - 记录页面展示的
gatewayHost和pairingToken。 - 首次使用先执行:
node scripts/geeklink-home.js login --host <host> --pairing-token <token> - 然后按需执行:
node scripts/geeklink-home.js catalog devices --refreshnode scripts/geeklink-home.js catalog devices --query 吊灯 --refreshnode scripts/geeklink-home.js catalog scenes --refreshnode scripts/geeklink-home.js state snapshot --refreshnode scripts/geeklink-home.js scene activate <sceneId>node scripts/geeklink-home.js device control <catalogDeviceId> ...
自然语言意图映射
- “我有哪些设备” ->
catalog devices --refresh - “有哪些场景” ->
catalog scenes --refresh - “打开客厅主灯” -> 先找到展开后的子设备
catalog_device_id,再执行device control <id> --power on - “卧室空调调到 26 度制冷高速” ->
device control <id> --power on --temperature 26 --mode cool --fan-speed high - “执行离家模式” -> 找到
scene_id,再执行scene activate <sceneId> - “客厅灯现在开着吗” ->
geeklink_get_device_state - “最近发生了什么变化” ->
geeklink_get_recent_events
不要猜测 catalog_device_id。如果设备匹配不确定,先列出设备再确认。对于多路面板,优先使用展开后的子设备名,例如 吊灯、筒灯,不要只盯着父设备名。
发布说明
- 版本:
0.1.0 - 已验证能力:
- 设备目录
- 场景目录
- 本地设备控制
- 状态快照
- 单实例 watcher 最近事件跟踪
- 该包发布到 ClawHub 时使用的
ownerId为lintertion。
Comments
Loading comments...
