← Back to Skills Marketplace
lintertion

Geeklink Home

by lintertion · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ⚠ suspicious
110
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install geeklink-home
Description
[English] Control Geeklink Home local gateway devices and scenes over LAN via the bundled self-contained Node.js runtime. Supports device listing, scene list...
README (SKILL.md)

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.js runtime
  • The persistent runtime keeps a single watcher instance per loaded skill

Setup

  1. Ensure vendor/geeklink-lan-cli.js exists in the installed skill package.
  2. Open the gateway details page in the Geeklink app and go to AI Skill Access.
  3. Copy gatewayHost and pairingToken from that page.
  4. Use the cross-platform Node wrapper scripts in scripts/ to query devices, scenes, states, and execute actions.
  5. When loaded by ClawHub/OpenClaw as a skill runtime, the watcher is started automatically and tools can read recent events.

Core Workflow

  1. Open the gateway details page in the Geeklink app and enter AI Skill Access.
  2. Read the gatewayHost and pairingToken shown on that page.
  3. Run node scripts/geeklink-home.js login --host \x3Chost> --pairing-token \x3Ctoken> once to cache session.
  4. Use:
    • node scripts/geeklink-home.js catalog devices --refresh
    • node scripts/geeklink-home.js catalog devices --query 吊灯 --refresh
    • node scripts/geeklink-home.js catalog scenes --refresh
    • node scripts/geeklink-home.js state snapshot --refresh
    • node scripts/geeklink-home.js scene activate \x3CsceneId>
    • node scripts/geeklink-home.js device control \x3CcatalogDeviceId> ...

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 run device control \x3Cid> --power on
  • "Set bedroom AC to 26 cool high" -> device control \x3Cid> --power on --temperature 26 --mode cool --fan-speed high
  • "Run away mode" -> find scene_id, then run scene activate \x3CsceneId>
  • "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 实例

使用前准备

  1. 确认已安装的 skill 包中存在 vendor/geeklink-lan-cli.js
  2. 在 Geeklink App 的网关详情页进入 AI技能接入 页面。
  3. 在该页面查看并复制 gatewayHostpairingToken
  4. 通过 scripts/ 中的跨平台 Node 包装脚本完成登录、列表查询、场景执行和设备控制。
  5. 如果由 ClawHub/OpenClaw 以常驻 skill runtime 加载,watcher 会自动启动,并支持读取最近事件。

建议工作流

  1. 先在 Geeklink App 的网关详情页打开 AI技能接入 页面。
  2. 记录页面展示的 gatewayHostpairingToken
  3. 首次使用先执行:
    node scripts/geeklink-home.js login --host \x3Chost> --pairing-token \x3Ctoken>
    
  4. 然后按需执行:
    • node scripts/geeklink-home.js catalog devices --refresh
    • node scripts/geeklink-home.js catalog devices --query 吊灯 --refresh
    • node scripts/geeklink-home.js catalog scenes --refresh
    • node scripts/geeklink-home.js state snapshot --refresh
    • node scripts/geeklink-home.js scene activate \x3CsceneId>
    • node scripts/geeklink-home.js device control \x3CcatalogDeviceId> ...

自然语言意图映射

  • “我有哪些设备” -> catalog devices --refresh
  • “有哪些场景” -> catalog scenes --refresh
  • “打开客厅主灯” -> 先找到展开后的子设备 catalog_device_id,再执行 device control \x3Cid> --power on
  • “卧室空调调到 26 度制冷高速” -> device control \x3Cid> --power on --temperature 26 --mode cool --fan-speed high
  • “执行离家模式” -> 找到 scene_id,再执行 scene activate \x3CsceneId>
  • “客厅灯现在开着吗” -> geeklink_get_device_state
  • “最近发生了什么变化” -> geeklink_get_recent_events

不要猜测 catalog_device_id。如果设备匹配不确定,先列出设备再确认。对于多路面板,优先使用展开后的子设备名,例如 吊灯筒灯,不要只盯着父设备名。

发布说明

  • 版本:0.1.0
  • 已验证能力:
    • 设备目录
    • 场景目录
    • 本地设备控制
    • 状态快照
    • 单实例 watcher 最近事件跟踪
  • 该包发布到 ClawHub 时使用的 ownerIdlintertion
Usage Guidance
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.
Capability Analysis
Type: OpenClaw Skill Name: geeklink-home Version: 0.1.0 The skill bundle provides a legitimate interface for controlling Geeklink Home devices over a local network. The core logic in `vendor/geeklink-lan-cli.js` implements a standard SDK and CLI for interacting with a local gateway via HTTP, using a pairing-token authentication flow. It stores session data locally in `~/.geeklink-home/config.json`, which is typical for such tools. The instructions in `SKILL.md` and the internal system prompt are well-aligned with the stated purpose of home automation and do not contain any malicious prompt injection or data exfiltration attempts.
Capability Assessment
Purpose & 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.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install geeklink-home
  3. After installation, invoke the skill by name or use /geeklink-home
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial release of Geeklink Home LAN control skill. - Supports discovering and controlling Geeklink Home gateway devices and scenes over LAN. - Device and scene catalog listing, device state checks, and scene activation via local gateway access. - Pairing-token based authentication required; works with bundled Node.js runtime. - Multi-gang panels are expanded into named sub-devices for easier control (e.g., `吊灯`, `筒灯`). - Includes background watcher for recent events and single-device state queries. - Supports both English and Chinese usage documentation.
Metadata
Slug geeklink-home
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Geeklink Home?

[English] Control Geeklink Home local gateway devices and scenes over LAN via the bundled self-contained Node.js runtime. Supports device listing, scene list... It is an AI Agent Skill for Claude Code / OpenClaw, with 110 downloads so far.

How do I install Geeklink Home?

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

Is Geeklink Home free?

Yes, Geeklink Home is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Geeklink Home support?

Geeklink Home is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Geeklink Home?

It is built and maintained by lintertion (@lintertion); the current version is v0.1.0.

💬 Comments