涂鸦CLI正式开源:让AI Agent一行命令管理3000+品类智能设备

汇聚之精 2026-04-06 4944人围观

最近,CLI(命令行工具)正在成为AI Agent时代的基础设施。

飞书、企业微信、钉钉等多家主流办公协作平台,相继开源了各自的CLI工具,将消息、文档、日程等产品能力封装为命令行接口,供开发者和AI Agent直接调用。

背后的逻辑很明确:命令行是AI编程Agent最成熟的交互方式,Agent天生适合执行结构化的CLI指令。

办公场景的CLI化已经走在前面。但对AI+IoT开发者来说,一个问题随之浮现:消息可以CLI了,文档可以CLI了,日程可以CLI了——设备控制呢?

查看设备在线状态、调整空调温度、批量关闭某个房间的灯光、查询用电数据——这些日常开发中的高频操作,以往只能通过编写代码调用API,或者打开手机App手动完成。

今天,涂鸦正式开源tuya-smart-control-cli,为AI+IoT开发者提供了一套完整的设备管理命令行工具。

一、Enduser API与CLI是什么关系?

在介绍CLI之前,有必要先厘清两个概念。

Tuya Enduser API是涂鸦开放给开发者的官方接口,用于获取设备列表、控制设备、查询数据、发送通知等。能力完整,覆盖3000+设备品类、200+国家和地区。使用API需要编写代码、处理签名逻辑、管理Token生命周期、构造HTTP请求,适合二次开发和系统集成。

tuya-smart-control-cli是基于上述Enduser API封装的命令行工具。底层调用的是同一套API能力,但开发者无需编写完整代码,在终端输入命令即可完成设备查询、控制、通知等操作。CLI内置了鉴权流程和参数格式化,适合快速调试、批量操作和轻量级脚本编排。

需要特别说明API Key等凭证仍然必须配置。CLI不会内置密钥,也不支持免密使用。CLI省去的是编写代码、处理签名和构造请求的步骤,身份验证和权限管理与直接调用API完全一致。

简而言之:API是底层能力,CLI是基于这套API打造的开箱即用的命令行工具。

二、AI+IoT开发者为什么需要CLI?

01

设备调试效率大幅提升

开发者在硬件联调阶段需要频繁查看设备状态、测试指令下发。以往的流程是:编写脚本→引入SDK →处理签名→发起请求→解析返回,一轮调试往往需要十几分钟。

使用CLI后,一条命令即可完成:

tuyadevice detail0620068884f3eb414579

几秒内即可看到设备当前的属性状态——开关状态、亮度值、工作模式等。切换到下一台设备,只需更改device_id重新执行。

2d0f2a74-2e7c-11f1-ab55-92fbcf53809c.gif

02

批量操作无需开发管理后台

方案商在酒店、公寓、办公楼等场景下,往往需要同时管理大量设备。CLI配合Shell脚本,可以实现轻量化的批量运维:

# 查询某个房间下的所有设备tuya device list --room 333

# 批量关闭房间内所有灯光tuya device list --room 333 --json | jq -r'.[].device_id'|\ whilereadid;do tuya device control"$id"'{"switch_led":false}' done

无需单独开发管理系统,一个Shell脚本配合cron定时任务即可满足基础运维需求。

03

为AI Agent提供设备操作入口

当前各类AI Agent的核心交互方式就是执行Shell命令。当涂鸦的设备控制能力被封装为CLI后,AI Agent便可以在终端中直接操控智能设备——与它调用git、docker等工具的方式完全一致。

04

支持JSON输出,便于数据处理与集成

所有查询命令均支持--json参数,输出结构化JSON数据,方便与jq等工具配合使用,或作为管道数据传递给其他程序:

# 导出设备列表tuyadevice list --json > devices.json

# 提取所有设备IDtuya device list --json | jq'.[].device_id'

# 筛选在线设备tuya device list --json | jq'[.[] | select(.online==true)]'

三、5分钟完成安装与配置

2ccb48ea-2e7c-11f1-ab55-92fbcf53809c.png2cd1936c-2e7c-11f1-ab55-92fbcf53809c.png

环境要求

Node.js >= 18

涂鸦API Key(中国区:tuyasmart.com| 海外区:tuya.ai)

安装

gitclonehttps://github.com/tuya/tuya-smart-control-cli.gitcdtuya-smart-control-clinpm installnpmlink

执行npm link后,tuya命令将在全局可用。

2d5df172-2e7c-11f1-ab55-92fbcf53809c.gif

配置

# 交互式配置(推荐)tuya init

# 或通过环境变量配置exportTUYA_API_KEY="sk-AYxxxxxxxxxxxx"

2d69b69c-2e7c-11f1-ab55-92fbcf53809c.gif

运行tuya init会引导开发者输入API Key。CLI根据Key前缀自动识别所属区域并匹配对应的服务端地址,全球7个数据中心无需手动配置:

2d777b2e-2e7c-11f1-ab55-92fbcf53809c.png

验证连通性

tuyadoctor

该命令会依次检查配置文件、API Key有效性、网络连通性以及账号下的家庭数据:

Tuya CLI Doctor─────────────── Configfile: /Users/you/.tuya-cli/config.json API Key: sk-AY****xxxx (fromconfigfile) Base URL: https://openapi.tuyacn.com (China) API connection: OK (2home(s) found)

全部显示即表示配置完成。

2d825be8-2e7c-11f1-ab55-92fbcf53809c.gif

2cafbe5e-2e7c-11f1-ab55-92fbcf53809c.png四、完整命令参考

2cc2ed80-2e7c-11f1-ab55-92fbcf53809c.png

2ccb48ea-2e7c-11f1-ab55-92fbcf53809c.png2cd1936c-2e7c-11f1-ab55-92fbcf53809c.png

▍设备管理(核心功能)

# 列出所有设备tuyadevice list

# 按家庭或房间筛选tuyadevice list --home tuyadevice list --room

# 查看设备详情(含当前属性状态)tuyadevice detail

# 查看设备物模型(了解设备支持的操作能力)tuyadevice model

# 控制设备——单属性tuyadevice control '{"switch_led":true}'

# 控制设备——多属性同时设置tuyadevice control '{"switch_led":true,"bright_value":800}'

# 重命名设备tuyadevice rename "客厅主灯"

典型调试流程:device list定位设备→ device detail确认当前状态→ device model查看可操作属性→ device control下发指令。四步完成一轮调试,全程无需编写代码。

▍家庭与房间管理

# 列出所有家庭tuyahome list

# 列出指定家庭下的房间tuya home rooms

2dc41542-2e7c-11f1-ab55-92fbcf53809c.gif

▍天气查询

# 按经纬度查询天气tuyaweather39.90116.40

# 指定查询字段tuyaweather39.90116.40--codes '["w.temp","w.humidity"]'

2dd3bf88-2e7c-11f1-ab55-92fbcf53809c.gif

▍消息通知

支持短信、语音电话、邮件、App推送四种通知方式,均为发送给当前登录用户:

# 短信通知tuyanotify sms"设备已关闭"

# 语音电话通知tuya notify voice"警告:检测到异常温度"

# 邮件通知tuya notify mail"设备日报""所有设备运行正常"

# App推送通知tuya notify push"安防提醒""客厅检测到异常移动"

2de0d948-2e7c-11f1-ab55-92fbcf53809c.gif

在设备告警场景中,可以结合cron定时任务实现自动化监控——例如每小时检查一次设备状态,发现离线设备即自动发送短信通知。

▍数据统计

# 查看可用的统计配置tuyastats config

# 查询某设备的用电量数据(按小时维度)tuyastats data ele_usage SUM20250331002025033123

2cafbe5e-2e7c-11f1-ab55-92fbcf53809c.png五、支持的控制类型

2cc2ed80-2e7c-11f1-ab55-92fbcf53809c.png

2ccb48ea-2e7c-11f1-ab55-92fbcf53809c.png2cd1936c-2e7c-11f1-ab55-92fbcf53809c.png

2e0c2076-2e7c-11f1-ab55-92fbcf53809c.png

说明:当前CLI暂不支持门锁操作、视频/摄像头访问、图像处理、固件升级、设备配网/移除等功能。这些操作请通过涂鸦App或完整API实现。

2cafbe5e-2e7c-11f1-ab55-92fbcf53809c.png六、常见问题排查

2cc2ed80-2e7c-11f1-ab55-92fbcf53809c.png

2ccb48ea-2e7c-11f1-ab55-92fbcf53809c.png2cd1936c-2e7c-11f1-ab55-92fbcf53809c.png

运行tuya doctor即可自动检测大部分配置问题。常见错误码及处理方式:

2e403c58-2e7c-11f1-ab55-92fbcf53809c.png

2cafbe5e-2e7c-11f1-ab55-92fbcf53809c.png七、适用场景与目标开发者

2cc2ed80-2e7c-11f1-ab55-92fbcf53809c.png

2ccb48ea-2e7c-11f1-ab55-92fbcf53809c.png2cd1936c-2e7c-11f1-ab55-92fbcf53809c.png

涂鸦生态开发者:硬件联调阶段的设备调试效率将大幅提升——无需反复编写测试脚本,终端命令即可完成查询和控制。

方案商:酒店、公寓、办公楼等商业场景下的设备批量管理,可以通过CLI脚本实现轻量化运维,降低管理系统的开发成本。

AI Agent开发者:为Agent项目提供物理设备控制能力。CLI的命令行接口天然适配AI Agent的执行方式,可以与其他CLI工具组合使用。

硬件测试工程师设备功能的反复测试不再依赖手机App的手动操作,终端中即可批量运行测试用例。

回到文章开头的观察:办公协作平台集体CLI化,本质上是在回答同一个问题——AI Agent时代,软件应该长什么样?

答案正在变得清晰:每一个软件都需要两种形态。GUI服务于人,CLI服务于AI。当软件把自身能力封装为命令行接口的那一刻,它就从一个"需要人来操作的工具",变成了"可以被AI Agent直接调用的能力模块"。

这个趋势在办公软件领域已经发生。而AI+IoT领域的CLI化,意味着AI Agent的能力边界正在从数字世界延伸到物理世界——从"帮你发消息、写文档",到"帮你管理真实空间中的每一台设备"。

tuya-smart-control-cli的开源,是涂鸦推动AI进入物理世界迈出的坚实一步。

当这些物理设备控制的能力,以命令行的形式向AI Agent敞开时,AI进入物理世界的万千应用爆发才刚刚开始。

Powered By Z-BlogPHP