Skip to content

Agent Skill

仓库内置了 mijia-api 的 agent skill 定义(skills/SKILL.md),供 AI 助手(如 opencode、Claude Code 等)安全地通过 uvx mijiaAPI CLI 控制米家设备。

Skill 是什么

Skill 是一段提供给 LLM 的“操作指南”:告诉模型哪些命令可以调用、哪些命令禁止调用、以及典型工作流。LLM 读取后会通过 bash 工具执行 uvx mijiaAPI ...,从而控制你的米家设备,而无需你编写 Python 代码或手动查文档。

前置条件

skill 通过 uvx mijiaAPI 调用 CLI,依赖 uv 来按需拉取并运行 mijiaAPI,无需手动安装 Python 或 mijiaAPI。请先安装 uv:

bash
curl -LsSf https://astral.sh/uv/install.sh | sh
bash
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

安装后重启终端,确认 uv --version 可正常输出。

安装 Skill

opencode

opencode 会自动加载以下目录中的 skill(SKILL.md),下载 SKILL.md到目录中即可:

  • 项目内:.opencode/skills/mijia-api/SKILL.md
  • 全局:~/.config/opencode/skills/mijia-api/SKILL.md

可用以下两条 curl 命令快速完成下载:

bash
# 下载到项目内
mkdir -p .opencode/skills/mijia-api && curl -fsSL https://raw.githubusercontent.com/Do1e/mijia-api/main/skills/SKILL.md -o .opencode/skills/mijia-api/SKILL.md

# 下载到全局
mkdir -p ~/.config/opencode/skills/mijia-api && curl -fsSL https://raw.githubusercontent.com/Do1e/mijia-api/main/skills/SKILL.md -o ~/.config/opencode/skills/mijia-api/SKILL.md

Claude Code

Claude Code 会从以下目录自动发现 skill(每个 skill 为 <name>/SKILL.md),下载 SKILL.md 到对应目录即可,之后可用 /mijia-api 斜杠命令调用:

  • 项目内(随 git 共享):.claude/skills/mijia-api/SKILL.md
  • 全局(所有项目可用):~/.claude/skills/mijia-api/SKILL.md
bash
# 下载到项目内
mkdir -p .claude/skills/mijia-api && curl -fsSL https://raw.githubusercontent.com/Do1e/mijia-api/main/skills/SKILL.md -o .claude/skills/mijia-api/SKILL.md

# 下载到全局
mkdir -p ~/.claude/skills/mijia-api && curl -fsSL https://raw.githubusercontent.com/Do1e/mijia-api/main/skills/SKILL.md -o ~/.claude/skills/mijia-api/SKILL.md

Codex

OpenAI Codex 默认从 $CODEX_HOME/skills/(未设置 CODEX_HOME 时回退到 ~/.codex/skills/)自动发现用户级 skill;项目级可放在 .codex/skills/ 下随仓库共享:

  • 项目内:.codex/skills/mijia-api/SKILL.md
  • 全局:~/.codex/skills/mijia-api/SKILL.md
bash
# 下载到项目内
mkdir -p .codex/skills/mijia-api && curl -fsSL https://raw.githubusercontent.com/Do1e/mijia-api/main/skills/SKILL.md -o .codex/skills/mijia-api/SKILL.md

# 下载到全局
mkdir -p ~/.codex/skills/mijia-api && curl -fsSL https://raw.githubusercontent.com/Do1e/mijia-api/main/skills/SKILL.md -o ~/.codex/skills/mijia-api/SKILL.md

通用方法

如果你的 AI 助手不在上述列表中,只要它遵循“目录下放 SKILL.md 即自动加载”的约定,都可以用同一种方式接入:

  1. 从仓库下载 skills/SKILL.md
  2. 保存到该助手对应的 skills 目录下,命名为 mijia-api/SKILL.md(即 <skills 根目录>/mijia-api/SKILL.md)。

行为规则(关键)

skill 对 LLM 设定了明确的边界,避免会话卡死:

  1. 禁止调用 login:它会在终端打印二维码并阻塞等待扫码,导致会话挂起。需要登录时,skill 会提醒你自行执行 uvx mijiaAPI login -p [path]
  2. 禁止调用 mcp:它会启动长时间运行的 stdio MCP server,永久阻塞。该命令仅供 MCP 客户端配置使用。
  3. 其余命令(-l/--list_devices--list_homes--list_scenes--list_consumable_items--run_scene--get_device_infogetsetrun)均为非阻塞,可直接调用。
  4. 当命令以退出码 1 退出并提示 请调用 'mijiaAPI login' 进行扫描登录 时,说明认证缺失/损坏/过期,模型会转告你执行登录命令而非自行修复。

TIP

若希望 LLM 能在会话内完成登录而不打断你,可改用 MCP Server ——它的 login/login_status 工具在后台线程等待扫码,不会阻塞会话。

认证文件

默认路径 ~/.config/mijia-api/auth.json,可用 -p /path/to/auth.json 覆盖。全局参数的 -p 放在参数前;子命令(get/set/run)的 -p 放在子命令后。

典型工作流

以下流程均可由 LLM 自主完成(除登录外):

  1. 列出设备,获取名称和 model:
    bash
    uvx mijiaAPI -l
  2. 查看设备规格(无需登录,发现可用的 --prop_name):
    bash
    uvx mijiaAPI --get_device_info yeelink.light.lamp4
  3. 获取/设置属性
    bash
    uvx mijiaAPI get --dev_name "卧室台灯" --prop_name "brightness"
    uvx mijiaAPI set --dev_name "卧室台灯" --prop_name "brightness" --value 60
    uvx mijiaAPI set --dev_name "卧室台灯" --prop_name "on" --value True

命令总览

命令 / 参数用途需要认证阻塞
login二维码登录否(创建认证)是(禁止调用)
mcp启动 MCP server(stdio)是(禁止调用)
-l--list_devices列出所有设备(含共享)
--list_homes列出家庭、房间和设备
--list_scenes列出各家庭场景
--list_consumable_items列出各家庭耗材
--run_scene 名称/ID [...]运行一个或多个场景
--get_device_info MODEL按 model 获取设备规格
get读取设备属性
set设置设备属性
run通过小爱音箱执行自然语言命令

TIP

完整的命令行参数说明请参考 CLI 参数参考,skill 的完整定义见仓库内的 skills/SKILL.md

基于 GPL-3.0 许可证发布