将deveco-cli Skill或者MCP服务配置到智能体中。
命令格式:
devecocli init --agent <agents> --project <path> --path <path> --skill --mcp --force
参数:
| 参数名 | 说明 |
|---|---|
| --agent | 可选,智能体名称,多个智能体名称以英文逗号分隔。 缺省时配置到所有已检测到的智能体中。 |
| --project | 可选,指定工程路径,将deveco-cli Skill或MCP服务安装到该工程项目中。 默认安装在个人用户目录下。 |
| --path | 可选,指定deveco-cli Skill的配置路径。 不可与--project 、--agent 、--mcp同时使用。 |
| --skill | 可选,安装deveco-cli Skill。 不可与--mcp同时使用。 --mcp和--skill都缺省时,执行--skill。 |
| --mcp | 可选,配置MCP服务,与--project一起使用表示配置工程级MCP服务,独立使用表示配置用户级MCP服务。 不可与--skill同时使用。 |
| -f,--force | 可选,当目标位置已存在deveco-cli Skill或MCP服务时,覆盖重装。 |
示例:
# 配置Skill devecocli init -f # 安装或更新deveco-cli Skill devecocli init --skill devecocli init --agent agentname # agentname需替换为实际的智能体名称 devecocli init --path D:\work\ARKTS\NewsData -f # 配置MCP服务 devecocli init --mcp devecocli init --mcp --agent agentname # agentname需替换为实际的智能体名称 devecocli init --mcp --project D:\work\ARKTS\NewsData -f
从1.3.0版本开始,支持查询当前登录用户所在的团队信息,包括团队名称和团队ID。
命令格式:
devecocli auth team list --json
参数:
| 参数名 | 说明 |
|---|---|
| --json | 可选,输出格式。 鸿蒙电脑版DevEco CLI不支持该参数。 |
示例:
devecocli auth team list devecocli auth team list --json
按关键词搜索版本说明、指南、API参考、最佳实践、FAQ、变更预告中的内容。
命令格式:
devecocli docs search <keywords...> --catalog <name> --format <fmt> --limit <n>
参数:
| 参数名 | 说明 |
|---|---|
| <keywords...> | 必选,搜索关键词,多个关键词用空格隔开。 |
| --catalog | 可选,文档类别,取值包含harmonyos-releases(版本说明)、harmonyos-guides(指南)、harmonyos-references(API参考)、best-practices(最佳实践)、harmonyos-faqs(FAQ)、harmonyos-roadmap(变更预告)、all(所有分类)。默认为all。 |
| --format | 可选,输出格式,取值包括default、json。默认为default。 输出结果包含文档ID(用于指明文档路径)、标题、文档的概括内容。 |
| --limit | 可选,设置搜索结果返回条数,默认为20。 |
示例:
devecocli docs search 沉浸光感 devecocli docs search '@State' '@Prop' --catalog best-practices --limit 10 devecocli docs search Row Column --format json
按文档ID查询文档的完整内容。
命令格式:
devecocli docs read <documentId>
参数:
| 参数名 | 说明 |
|---|---|
| <documentId> | 必选,文档ID,需通过docs search命令获取。 |
示例:
devecocli docs read 开发指南/应用框架/UI_Design_Kit_UI设计套件/沉浸光感/ui-design-hds-component-material
查询文档类别和类别名称。
命令格式:
devecocli docs catalog --format <fmt>
参数:
| 参数名 | 说明 |
|---|---|
| --format | 可选,输出格式,取值包括default、json。默认为default。 |
示例:
devecocli docs catalog devecocli docs catalog --format json
创建HarmonyOS应用工程,仅支持创建工程模板中的Empty Ability模板。
命令格式:
devecocli create --app-name <name> --project-path <path> --bundle-name <bundle> --api-level <level>
参数:
| 参数名 | 说明 |
|---|---|
| --app-name | 必选,应用名称。 |
| --project-path | 可选,工程路径,默认为:./<appName>。 |
| --bundle-name | 可选,包名,默认为:com.example.<appname>,appname自动转为小写。更多请参考app.json5配置文件标签。 |
| --api-level | 可选,API级别,最小值为17,最大值从安装的DevEco Studio的HarmonyOS SDK中自动获取。 |
示例:
devecocli create --project-path ./MyApp --app-name MyApp devecocli create --project-path ./MyApp --app-name MyApp --bundle-name com.acme.myapp --api-level 23 devecocli create --app-name MyApp
编译并打包HarmonyOS工程或工程中的模块。
命令格式:
devecocli build --product <product> --modules <modules> --build-mode <mode>
参数:
| 参数名 | 说明 |
|---|---|
| --product | 可选,产品名称,默认为default。更多可参考products字段。 |
| --modules | 可选,模块名称,多个模块用空格隔开。 如需指定模块的target信息,使用module@target形式。 当工程中只有一个模块时,可缺省;当工程中存在多个模块,且仅存在一个entry类型模块时,可缺省。 |
| --build-mode | 可选,构建模式,默认为debug。更多可参考buildModeSet字段。 |
示例:
devecocli build --build-mode release devecocli build --modules entry library devecocli build --modules library@phone devecocli build --product oversea --modules entry --build-mode release
从1.3.0版本开始,支持配置调试签名。执行命令可自动生成签名所需的材料,并将签名信息配置到工程级的build-profile.json5中。
命令格式:
devecocli signature generate --product <product> --team-id <team-id> --force --help
参数:
| 参数名 | 说明 |
|---|---|
| --product | 可选,产品名称,默认为default。 |
| --team-id | 可选,团队ID(Team ID),默认为主账号用户ID(userID)。 |
| --force | 可选,强制覆盖本地的签名材料。 |
| --help,--h | 可选,查看帮助信息。 |
示例:
# 自动生成签名并写入工程配置 devecocli signature generate # 指定product devecocli signature generate --product default1 #default1为指定的product名称 # 指定team-id devecocli signature generate --team-id 1222 #1222为指定的team-id # 强制覆盖已存在的证书文件 devecocli signature generate --force # 查询帮助信息 devecocli signature generate --help
构建应用后,将应用安装到设备上,并启动执行。
命令格式:
devecocli run --module <module> --device <device> --product <product> --build-mode <mode> --ability <ability> --uninstall --skip-build --apply <fileName> --hotreload --hotreload-apply
参数:
| 参数名 | 说明 |
|---|---|
| --module | 可选,模块名称,多个模块用空格隔开。 如需指定模块的target信息,使用module@target形式。 当工程中只有一个可运行模块(entry / feature / shared)时,可缺省。 |
| --device | 设备的名称/序列号,单设备时可选,多设备时必填。若名称中带有空格,则名称需要添加英文引号。
说明: 在鸿蒙电脑上拉起多设备预览器的前提条件:开启DevEco Studio,以及鸿蒙电脑需要在设置 > 系统 > 开发者选项中,打开无线调试开关。 |
| --product | 可选,产品名称,默认为default。更多请参考products。 |
| --build-mode | 可选,构建模式名称,默认为debug。更多请可参考buildModeSet。 |
| --ability | 可选,待启动的Ability,默认是模块module.json5中的mainElement。 |
| --uninstall | 可选,安装前先卸载已有应用。 |
| --skip-build | 可选,跳过构建操作,直接安装应用。 说明: 使用该参数时,需确保对应模块已有构建产物。 |
| --apply | 可选,将全量构建部署生成缓存后的修改生成增量修改文件(.hqf文件),重启应用后增量修改文件会生效。 fileName须在工程.hvigor目录下,中记录被修改源文件相对工程根目录的路径。通过读取该文件,工具可以定位发生变化的文件,并执行增量编译,提高构建效率。 说明:
|
| --hotreload | 可选,使用热重载功能。 使用热重载功能时,该命令进程需持续存活,以使热重载构建可以快速响应。当不需要热重载功能时,通过执行“devecocli run --hotreload stop”命令终止该进程,释放系统资源。 鸿蒙电脑版DevEco CLI不支持该参数。 |
| --hotreload-apply | 可选,将热重载基础缓存后的修改生成增量修改文件(.hqf文件),并将.hqf文件应用到运行中的应用,使修改直接生效。 鸿蒙电脑版DevEco CLI不支持该参数。 说明:
|
示例:
devecocli run devecocli run --module entry --device 127.0.0.1:5555 devecocli run --module library@phone --device 127.0.0.1:5555 devecocli run --product oversea --module entry --ability EntryAbility devecocli run --build-mode release devecocli run --uninstall devecocli run --apply changes.txt devecocli run --hotreload-apply change.txt
查看hilog普通日志或崩溃日志。
命令格式:
devecocli log --device <device> --crash --level <level> --bundle-name <bundle-name> --keyword <keyword> --tail <num> --from <start> --to <end> --follow
参数:
| 参数名 | 说明 |
|---|---|
| --device | 设备名称或设备序列号,单设备时可选,多设备时必选。 |
| --crash | 可选,查看崩溃日志。 |
| --level | 可选,日志级别,取值包括D(Debug)、 I(Info)、 W(Warn)、E(Error)、F(Fatal)。 |
| --bundle-name | 可选,根据包名查看日志。 |
| --keyword | 可选,根据关键词查看日志,关键词区分大小写。 |
| --tail | 可选,显示最新的N行日志,取值为正整数。 |
| --from | 可选,起始时间偏移量,以当前时间为基准时间点,通过减去预设的时间偏移量,可计算得出起始时间。单位为m/s,m和s为小写,默认为s。 说明: 如当前时间为05:00:00,start设置为30s,则起始时间为04:59:30。 |
| --to | 可选,结束时间偏移量,以当前时间为基准时间点,通过减去预设的时间偏移量,可计算得出结束时间。单位为m/s,m和s为小写,默认为s。 不可与--follow同时使用。 说明: 如当前时间为05:00:00,end设置为10s,则结束时间为04:59:50。 |
| --follow | 可选,实时输出日志。 不可与--to同时使用。 |
示例:
devecocli log --level E devecocli log --crash --bundle-name com.example.app devecocli log --device 127.0.0.1:5555 --level W --keyword Init devecocli log --tail 100 --from 5m --to 2m devecocli log --follow --bundle-name com.example.app
从1.3.0版本开始,支持按照Code Linter代码规则,对ArkTS代码工程进行正确性、兼容性等检查,并自动修复问题。
命令格式:
devecocli check lint [path] --fix --incremental --config-path <path> --product <product> --format <format> --output-path <path> --limit <number>
参数:
| 参数名 | 说明 |
|---|---|
| [path] | 可选,待检查的文件或目录的路径,文件或目录所在的工程中必须包含build-profile.json5文件。默认为工程根目录。 不可与--incremental同时使用。 |
| --fix | 可选,填写时,进行代码检查及自动修复代码问题;不填写时,只进行代码检查。 |
| --incremental | 可选,对Git工程中的增量文件(包含新增/修改/重命名的文件)进行检查。 不可与[path]同时使用。 |
| --config-path | 可选,指定Code Linter代码检查规则配置文件的位置。 |
| --product | 可选,产品名称,默认为default。更多可参考products字段。 |
| --format | 可选,检查结果的输出格式,取值包括default、json。默认为default。 |
| --output-path | 可选,检查结果保存位置,支持相对路径和绝对路径。默认在控制台输出。 |
| --limit | 可选,控制台显示的最大记录条数。默认显示所有内容。 |
示例:
devecocli check lint devecocli check lint ./entry/src/main/ets devecocli check lint --fix devecocli check lint --incremental devecocli check lint --incremental --fix devecocli check lint --format json devecocli check lint --product default --config-path ./lint.json devecocli check lint ./entry --fix --format json devecocli check lint --output-path ./entry/output devecocli check lint --limit 20
从1.3.0版本开始,支持检查当前工程/模块/文件对目标SDK版本的兼容性。
鸿蒙电脑版DevEco CLI不支持该命令。
命令格式:
devecocli check compat [files] --source-version <version> --target-version <version> --modules <modules...> --format <format> --output-path <path> --limit <number>
参数:
| 参数名 | 说明 |
|---|---|
| [files...] | 可选,待检查的文件路径,支持相对路径或绝对路径,当前仅支持.ets、.c、.cpp后缀文件。 |
| --source-version | 必选,工程使用的精确的SDK版本号,格式为:HarmonyOS_SDK版本号_Beta/Release,如HarmonyOS_26.0.0(26)_Beta2,可在菜单栏点击File > Settings > HarmonyOS SDK查询。 |
| --target-version | 必选,需要检查兼容性的目标SDK版本,可以先通过check compat versions命令查询用于兼容性检查的SDK版本,版本大于--source-version。 |
| --modules | 可选,模块名称,指定要检查的模块,多个模块用空格隔开。默认检查工程中的所有模块。 |
| --format | 可选,输出格式,取值包括json、default。默认为default。 不填写时,若不指定--output-path,在控制台以文本形式输出;若指定--output-path,以csv形式输出。 |
| --output-path | 可选,兼容性报告的输出路径。默认值在控制台输出。 |
| --limit | 可选,控制台显示的最大记录条数。默认为100。 |
示例:
devecocli check compat ./entry/src/main/ets/pages/Index.ets --source-version "HarmonyOS_6.1.0(23)_Beta2" --target-version "HarmonyOS_26.0.0(26)_Beta2" devecocli check compat ./entry/src/main/ets/pages/Index.ets ./entry/src/main/ets/entrybackupability/EntryBackupAbility.ets --source-version "HarmonyOS_6.1.0(23)_Beta2" --target-version "HarmonyOS_26.0.0(26)_Beta2" devecocli check compat --source-version "HarmonyOS_6.1.0(23)_Beta2" --target-version "HarmonyOS_26.0.0(26)_Beta2" devecocli check compat --source-version "HarmonyOS_6.1.0(23)_Beta2" --target-version "HarmonyOS_26.0.0(26)_Beta2" --modules entry library devecocli check compat --source-version "HarmonyOS_6.1.0(23)_Beta2" --target-version "HarmonyOS_26.0.0(26)_Beta2" --format json devecocli check compat --source-version "HarmonyOS_6.1.0(23)_Beta2" --target-version "HarmonyOS_26.0.0(26)_Beta2" --output-path ./entry/output devecocli check compat --source-version "HarmonyOS_6.1.0(23)_Beta2" --target-version "HarmonyOS_26.0.0(26)_Beta2" --limit 20
从1.3.0版本开始,支持查询可用于兼容性检查的SDK版本。
鸿蒙电脑版DevEco CLI不支持该命令。
命令格式:
devecocli check compat versions --format <format>
参数:
| 参数名 | 说明 |
|---|---|
| --format | 可选,输出格式,取值包括default、json。默认为default。 |
示例:
devecocli check compat versions devecocli check compat versions --format json
查看模拟器实例。
命令格式:
devecocli emulator list
返回信息:
| 返回信息 | 说明 |
|---|---|
| Name | 模拟器名称。 |
| Status | 模拟器运行状态。 |
| Serial | 模拟器序列号。 |
| Device Type | 模拟器产品类型。 |
| OS Version | 模拟器镜像版本。 |
启动模拟器。首次使用时,需要签署HarmonyOS软件许可与服务协议,具体请参考emulator license accept。
命令格式:
devecocli emulator start [names...]
参数:
| 参数名 | 说明 |
|---|---|
| [names...] | 必选,模拟器实例名称或序列号,多个名称用空格隔开。 若名称中带有空格,则名称需要添加英文引号。 |
示例:
devecocli emulator start Phone devecocli emulator start Phone1 Phone2
emulator start命令仅支持启动release版本的模拟器。
关闭模拟器。
命令格式:
devecocli emulator stop [names...]
参数:
| 参数名 | 说明 |
|---|---|
| [names...] | 必选,模拟器实例名称或序列号,多个名称或序列号用空格隔开。 若名称中带有空格,则名称需要添加英文引号。 |
示例:
devecocli emulator stop Phone devecocli emulator stop 127.0.0.1:5555
创建模拟器。
命令格式:
devecocli emulator create <name> --device-type <type> --os-version <version> --force
参数:
| 参数名 | 说明 |
|---|---|
| <name> | 必选,模拟器名称。 |
| --device-type | 必选,模拟器产品类型,支持的产品类型请参考设备支持类型,全小写。 |
| --os-version | 必选,模拟器镜像版本。 |
| --force | 可选,覆盖已有同名的模拟器。 |
示例:
devecocli emulator create MyPhone --device-type phone --os-version "HarmonyOS 6.0.1(21)" devecocli emulator create MyPhone --device-type phone --os-version "HarmonyOS 6.1.1(24)"
删除模拟器。
命令格式:
devecocli emulator delete <name>
参数:
| 参数名 | 说明 |
|---|---|
| <name> | 必选,模拟器实例名称或序列号。 |
示例:
devecocli emulator delete MyPhone
查询模拟器镜像列表。
命令格式:
devecocli emulator image list --device-type <type> --all --format <format>
参数:
| 参数名 | 说明 |
|---|---|
| --device-type | 可选,模拟器产品类型,支持的产品类型请参考设备支持类型,全小写。 |
| --all | 可选,查询已下载和未下载的所有镜像。 |
| --format | 可选,控制输出格式,取值包括table、json,默认为table。 |
返回信息:
| 返回信息 | 说明 |
|---|---|
| OS Version | 镜像版本号,可用于下载镜像时指定--os-version参数。 |
| Device Type | 模拟器产品类型,可用于下载镜像时指定--device-type参数。 |
| Software Version | 镜像详细版本号,可用于下载镜像时指定--os-version参数。 |
| Release Type | 镜像发布类型。 |
| Upgradable | 对比本地镜像,是否有可更新的镜像版本,true/false。 |
| Downloaded | 本地是否已下载过镜像,true/false。 |
示例:
devecocli emulator image list devecocli emulator image list --all devecocli emulator image list --device-type phone devecocli emulator image list --format json
下载模拟器镜像。首次使用时,需要签署HarmonyOS SDK许可协议,具体请参考emulator license accept。
命令格式:
devecocli emulator image download --device-type <type> --os-version <version> --force
参数:
| 参数名 | 说明 |
|---|---|
| --device-type | 必选,模拟器产品类型,支持的产品类型请参考设备支持类型,全小写。 |
| --os-version | 必选,模拟器镜像版本。 |
| --force | 可选,覆盖已有的模拟器镜像。 |
示例:
devecocli emulator image download --device-type phone --os-version "HarmonyOS 6.0.1(21)" --force devecocli emulator image download --device-type phone --os-version "HarmonyOS 6.1.1(24)" --force
emulator image download命令仅支持下载release版本的模拟器镜像。
删除模拟器镜像。
命令格式:
devecocli emulator image remove --device-type <type> --os-version <version>
参数:
| 参数名 | 说明 |
|---|---|
| --device-type | 必选,模拟器产品类型,与下载镜像的--device-type参数一致。 |
| --os-version | 必选,模拟器镜像版本,与下载镜像的--os-version参数一致。 |
示例:
devecocli emulator image remove --device-type phone --os-version "HarmonyOS 6.0.1(21)"
查看HarmonyOS软件许可与服务协议和HarmonyOS SDK许可协议文本(只读)。
命令格式:
devecocli emulator license view
查看并接受协议。使用模拟器需要同意HarmonyOS软件许可与服务协议,下载镜像需要同意HarmonyOS SDK许可协议。
命令格式:
devecocli emulator license accept
从1.3.0版本开始,支持触发一次模拟器的摇一摇功能。
命令格式:
devecocli emulator shake --target <name|serial>
参数:
| 参数名 | 说明 |
|---|---|
| --target | 必选,模拟器名称或序列号。 |
示例:
devecocli emulator shake --target myPhone
从1.3.0版本开始,支持设置模拟器亮/熄屏。
命令格式:
devecocli emulator power --target <name|serial>
参数:
| 参数名 | 说明 |
|---|---|
| --target | 必选,模拟器名称或序列号。 |
示例:
devecocli emulator power --target myPhone
从1.3.0版本开始,支持旋转模拟器。
命令格式:
devecocli emulator rotate <direction> --target <name|serial>
参数:
| 参数名 | 说明 |
|---|---|
| <direction> | 必选,旋转方向,取值包括left、right。
|
| --target | 必选,模拟器名称或序列号。 |
示例:
devecocli emulator rotate left --target myPhone
从1.3.0版本开始,支持调整模拟器的音量。
命令格式:
devecocli emulator volume <direction> --target <name|serial>
参数:
| 参数名 | 说明 |
|---|---|
| <direction> | 必选,调整音量,取值包括up、down。
|
| --target | 必选,模拟器名称或序列号。 |
示例:
devecocli emulator volume up --target myPhone
从1.3.0版本开始,支持设置模拟器的折叠开合状态。
命令格式:
devecocli emulator fold <state> --target <name|serial>
参数:
| 参数名 | 说明 |
|---|---|
| <state> | 必选,折叠开合状态。支持以下状态:
|
| --target | 必选,模拟器名称或序列号。 |
示例:
# 双折叠 devecocli emulator fold open --target myPhone devecocli emulator fold half-open --target myPhone devecocli emulator fold close --target myPhone # 折叠2in1 devecocli emulator fold open --target myPhone devecocli emulator fold vertical-open --target myPhone devecocli emulator fold half-open --target myPhone devecocli emulator fold close --target myPhone # 三折叠 devecocli emulator fold single --target myPhone devecocli emulator fold double --target myPhone devecocli emulator fold triple --target myPhone devecocli emulator fold left-folded-right-half-folded --target myPhone devecocli emulator fold left-half-folded-right-expanded --target myPhone devecocli emulator fold left-expanded-right-folded --target myPhone devecocli emulator fold left-half-folded-right-folded --target myPhone devecocli emulator fold left-expanded-right-half-folded --target myPhone devecocli emulator fold left-half-folded-right-half-folded --target myPhone
从1.3.0版本开始,支持设置模拟器电池的电量和充电状态。
命令格式:
devecocli emulator battery --level <1-100> --status <status> --target <name|serial>
参数:
| 参数名 | 说明 |
|---|---|
| --level | 必选,模拟器电池电量,充电状态下取值范围为[0,100],未充电状态下取值范围为[1,100]。 不可与--status同时使用。 |
| --status | 必选,模拟器电池充电状态,取值为charging、discharging。
不可与--level同时使用。 |
| --target | 必选,模拟器名称或序列号。 |
示例:
devecocli emulator battery --target myPhone --level 90 devecocli emulator battery --target myPhone --status discharging devecocli emulator battery --target myPhone --status charging
从1.3.0版本开始,支持设置模拟器的地理坐标和方向信息。
命令格式:
devecocli emulator geolocation --longitude <value> --latitude <value> --altitude <value> --direction <value> --target <name|serial>
参数:
| 参数名 | 说明 |
|---|---|
| --longitude | 可选,经度,取值范围为 [-180.0, 180.0],支持小数点后八位。 |
| --latitude | 可选,纬度,取值范围为 [-90.0, 90.0],支持小数点后八位。 |
| --altitude | 可选,海拔高度,单位为m,取值范围为[-10000.0, 10000.0],支持小数点后两位。 |
| --direction | 可选,方向角,取值范围为[0, 359.99],支持小数点后两位。 |
| --target | 必选,模拟器名称或序列号。 |
当前仅支持设置经度、纬度、海拔高度、方向角中的一种。
示例:
devecocli emulator geolocation --target myPhone --longitude 116.400244 devecocli emulator geolocation --target myPhone --latitude 39.915599 devecocli emulator geolocation --target myPhone --altitude 45.49 devecocli emulator geolocation --target myPhone --direction 0
从1.3.0版本开始,支持启动运动模拟场景。
命令格式:
devecocli emulator scene <type> --target <name|serial>
参数:
| 参数名 | 说明 |
|---|---|
| <type> | 必选,模拟运动场景类型,取值包括outdoorRunning、outdoorCycling、drivingNavigation。
|
| --target | 必选,模拟器名称或序列号。 |
示例:
devecocli emulator scene outdoorRunning --target myPhone devecocli emulator scene outdoorCycling --target myPhone devecocli emulator scene drivingNavigation --target myPhone
从1.3.0版本开始,支持为模拟器设置传感器。
命令格式:
devecocli emulator sensor --light-intensity <value> --humidity <value> --temperature <value> --steps <value> --heartrate <value> --target <name|serial>
参数:
| 参数名 | 说明 |
|---|---|
| --light-intensity | 可选,光照强度传感器,取值范围为[0, 100000.0],支持小数点后1位。 |
| --humidity | 可选,湿度传感器,取值范围为[0, 100],支持小数点后1位。 |
| --temperature | 可选,温度传感器,取值范围为[-273.1, 100],支持小数点后1位。 |
| --steps | 可选,步数传感器,取值范围为[0, 10000],需要为整数。 |
| --heartrate | 可选,心率传感器,取值范围为[0, 255],需要为整数。 |
| --target | 必选,模拟器名称或序列号。 |
当前仅支持设置一种传感器。
示例:
devecocli emulator sensor --target myPhone --light-intensity 500 devecocli emulator sensor --target myPhone --humidity 50 devecocli emulator sensor --target myPhone --temperature 25 devecocli emulator sensor --target myPhone --steps 1000 devecocli emulator sensor --target myPhone --heartrate 80
查询所有已连接的设备,包括真机设备和运行中的模拟器。
命令格式:
devecocli device list
返回信息:
| 返回信息 | 说明 |
|---|---|
| Name | 真机或模拟器名称。 |
| Serial | 真机或模拟器序列号。 |
| Kind | 类型,真机或模拟器。 |
| Device Type | 设备类型。 |
查询已连接设备的详细信息,包括设备序列号、设备名称、设备类型、OS版本等。
命令格式:
devecocli device view --target <serialOrName>
参数:
| 参数名 | 说明 |
|---|---|
| -t, --target | 可选,目标设备名称或序列号。多设备缺省时,会列出所有已连接设备序列号和名称。 |
返回信息:
| 返回信息 | 说明 |
|---|---|
| Serial | 真机或模拟器序列号。 |
| Device Name | 真机或模拟器名称。 |
| Device Type | 设备类型。 |
| Os Version | 镜像版本号,可用于下载镜像时指定--os-version参数。 |
示例:
devecocli device view devecocli device view --target 127.0.0.1:5555 devecocli device view -t "My Device Name"
查询可用的Skill。
命令格式:
devecocli skills list --long
参数:
| 参数名 | 说明 |
|---|---|
| -l, --long | 可选,Skill详情,包括描述和已安装的智能体列表。缺省时,仅展示Skill名称。 |
示例:
devecocli skills list devecocli skills list --long devecocli skills list -l
按关键词搜索Skill。
命令格式:
devecocli skills find <keyword>
参数:
| 参数名 | 说明 |
|---|---|
| <keyword> | 必选,搜索关键词。 |
示例:
devecocli skills find deveco
将Skill添加到智能体中。
命令格式:
devecocli skills add --all --agent <agents> --skill <skill-name> --project <path> --path <path> --force
参数:
| 参数名 | 说明 |
|---|---|
| --all | 可选,添加所有可用的Skill,与--skill二选一。 |
| --agent | 可选,智能体名称,多个智能体时以英文逗号分隔。缺省时,添加到已检测到的智能体中。 |
| --skill | 可选,待添加的Skill名称,与--all二选一。 |
| --project | 可选,指定工程路径,将Skill添加到该工程项目中。 |
| --path | 可选,指定路径,将Skill添加到该路径,不可与--project或--agent同时使用。 |
| -f, --force | 可选,当目标位置已有同名Skill时,覆盖重添加。 |
示例:
devecocli skills add --all devecocli skills add --skill skillname --agent agentname --force # skillname需替换为实际的Skill名称 devecocli skills add --skill skillname --project ./my-app # skillname需替换为实际的Skill名称
从智能体中删除已添加的Skill。
命令格式:
devecocli skills remove --skill <skill-name> --agent <agents> --project <path> --path <path>
参数:
| 参数名 | 说明 |
|---|---|
| --skill | 必选,待删除的Skill名称。 |
| --agent | 可选,智能体名称,多个智能体时以英文逗号分隔。缺省时,删除已检测到的智能体中的Skill。 |
| --project | 可选,指定项目路径,删除该项目中的Skill。 |
| --path | 可选,指定路径,删除该路径下的Skill,不可与--project或--agent同时使用。 |
示例:
devecocli skills remove --skill skillname # skillname需替换为实际的Skill名称 devecocli skills remove --skill skillname --agent agentname # skillname需替换为实际的Skill名称
从1.3.0版本开始,支持以字符树的形式查看应用的界面布局,包括控件类型、控件ID、控件坐标边界([left,top,right,bottom]) 、控件文本和交互标志(clickable、longClickable、scrollable、checkable)。
命令格式:
devecocli ui layout --device <name|serial> --id <id> --window <windowId> --all-windows --depth <n> --format <format> --mode <mode>
参数:
| 参数名 | 说明 |
|---|---|
| --device | 真机或模拟器设备的名称/序列号,使用时只支持连接一个设备。 单设备时可选,多设备时必填。若名称中带有空格,则名称需要添加英文引号。 |
| --id | 可选,控件ID,填写时可输出匹配的控件节点(不含子节点)。 |
| --window | 可选,目标窗口ID,不可与--all-windows同时使用。 |
| --all-windows | 可选,包含系统窗口和应用窗口。默认只包含应用窗口。 不可与--window同时使用。 |
| --depth | 可选,字符树的深度,0表示不限制。默认为0。 |
| --format | 可选,输出格式,取值包含default、json,default也以json格式显示。默认为default。 |
| --mode | 可选,输出模式,取值包含full、simplified。默认为simplified。
|
示例:
devecocli ui layout devecocli ui layout --device Phone devecocli ui layout --device Phone --format json devecocli ui layout --mode full --depth 2 devecocli ui layout --id submit_button devecocli ui layout --window 15 --format json
从API version 20开始支持该命令。
从1.3.0版本开始,支持查看设备上的窗口列表。
命令格式:
devecocli ui window list --device <name|serial> --format <format> --all
参数:
| 参数名 | 说明 |
|---|---|
| --device | 真机或模拟器设备的名称/序列号,使用时只支持连接一个设备。 单设备时可选,多设备时必填。若名称中带有空格,则名称需要添加英文引号。 |
| --format | 可选,输出格式,取值包括default、json,默认为default。 |
| --all | 可选,包含系统窗口和应用窗口。默认只包含应用窗口。 |
返回信息:
| 返回信息 | 说明 |
|---|---|
| Id | 窗口ID。 |
| Name | 窗口名称。 |
| Pid | PID。 |
| DisplayId | 所属屏幕ID。 |
| Focused | 是否为聚焦窗口。
|
示例:
devecocli ui window list devecocli ui window list --device Phone devecocli ui window list --format json devecocli ui window list --all
从1.3.0版本开始,支持对真机或模拟器进行全屏截图。
命令格式:
devecocli ui screenshot --device <name|serial> --display <--displayId> --path <path>
参数:
| 参数名 | 说明 |
|---|---|
| --device | 真机或模拟器设备的名称/序列号,使用时只支持连接一个设备。 单设备时可选,多设备时必填。若名称中带有空格,则名称需要添加英文引号。 |
| --display | 可选,目标屏幕ID。 |
| --path | 必选,截图的输出路径,支持相对路径和绝对路径。路径可以是已存在的文件路径,也可以是完整的PNG文件路径。
|
示例:
# 传入已存在的文件夹 devecocli ui screenshot --path ./screenshots # 传入完整的PNG文件路径 devecocli ui screenshot --device Phone --path ./screenshots/phone.png devecocli ui screenshot --device Phone --display 0 --path ./screenshots/phone.png
从1.3.0版本开始,支持单击指定坐标或单击节点ID的中心位置。
命令格式:
devecocli ui click [x] [y] --device <name|serial> --id <id> --window <windowId>
参数:
| 参数名 | 说明 |
|---|---|
| [x] [y] | 可选,目标坐标,取值为大于0的整数,单位:px。 不可与--id同时使用,且与--id至少使用一个。 |
| --device | 真机或模拟器设备的名称/序列号,只支持连接一个设备。 单设备时可选,多设备时必填。若名称中带有空格,则名称需要添加英文引号。 |
| --id | 可选,控件ID。 不可与[x] [y]同时使用,且与[x] [y]至少使用一个。 |
| --window | 可选,目标窗口ID,可通过devecocli ui window list获取,与--id配合使用。 |
示例:
devecocli ui click 100 200 devecocli ui click 100 200 --device Phone devecocli ui click --id submit_button devecocli ui click --id submit_button --window main_window
从1.3.0版本开始,支持双击指定坐标或双击节点ID的中心位置。
命令格式:
devecocli ui doubleclick [x] [y] --device <name|serial> --id <id> --window <windowId>
参数:
| 参数名 | 说明 |
|---|---|
| [x] [y] | 可选,目标坐标,取值是大于0的整数,单位:px。 不可与--id同时使用,且与--id至少使用一个。 |
| --device | 真机或模拟器设备的名称/序列号,只支持连接一个设备。 单设备时可选,多设备时必填。若名称中带有空格,则名称需要添加英文引号。 |
| --id | 可选,控件ID。 不可与[x] [y]同时使用,且与[x] [y]至少使用一个。 |
| --window | 可选,目标窗口ID,可通过devecocli ui window list获取,与--id配合使用。 |
示例:
devecocli ui doubleclick 100 200 devecocli ui doubleclick 100 200 --device Phone devecocli ui doubleclick --id photo_thumb devecocli ui doubleclick --id photo_thumb --window main_window
从1.3.0版本开始,支持长按指定坐标或长按节点ID的中心位置。
命令格式:
devecocli ui longclick [x] [y] --device <name|serial> --id <id> --window <windowId>
参数:
| 参数名 | 说明 |
|---|---|
| [x] [y] | 可选,目标坐标,取值是大于0的整数,单位:px。 不可与--id同时使用,且与--id至少使用一个。 |
| --device | 真机或模拟器设备的名称/序列号,只支持连接一个设备。 若名称中带有空格,则名称需要添加英文引号。 |
| --id | 可选,控件ID。 不可与[x] [y]同时使用,且与[x] [y]至少使用一个。 |
| --window | 可选,目标窗口ID,可通过devecocli ui window list获取,与--id配合使用。 |
示例:
devecocli ui longclick 100 200 devecocli ui longclick 100 200 --device Phone devecocli ui longclick --id menu_item devecocli ui longclick --id menu_item --window main_window
从1.3.0版本开始,支持从起点缓慢滑到终点。内容随手指移动,手指离开即停止,适用于在特定区域滑动的场景,如拖动Slider。
命令格式:
devecocli ui swipe [x1] [y1] [x2] [y2] --device <name|serial> --speed <n>
参数:
| 参数名 | 说明 |
|---|---|
| [x1] [y1] | 必选,起点坐标,取值为大于0的整数,单位:px。 |
| [x2] [y2] | 必选,终点坐标,取值为大于0的整数,单位:px。 |
| --device | 真机或模拟器设备的名称/序列号,只支持连接一个设备。 若名称中带有空格,则名称需要添加英文引号。 |
| --speed | 可选,滑动速度,单位为px/s,取值范围为[200,40000]。默认值为600。 |
示例:
devecocli ui swipe 100 500 100 200 devecocli ui swipe 100 500 100 200 --device Phone devecocli ui swipe 100 500 100 200 --speed 1000
从1.3.0版本开始,支持从起点快速滑到终点。手指快速滑动后脱离屏幕,内容存在惯性滚动,适用于在特定区域快速滑动的场景。
命令格式:
devecocli ui fling [x1] [y1] [x2] [y2] --device <name|serial> --speed <n>
参数:
| 参数名 | 说明 |
|---|---|
| [x1] [y1] | 必选,起点坐标,取值为大于0的整数,单位:px。 |
| [x2] [y2] | 必选,终点坐标,取值为大于0的整数,单位:px。 |
| --device | 真机或模拟器设备的名称/序列号,只支持连接一个设备。 若名称中带有空格,则名称需要添加英文引号。 |
| --speed | 可选,滑动速度,单位为px/s,取值范围为[200,40000]。默认值为600。 |
示例:
devecocli ui fling 100 800 100 200 devecocli ui fling 100 800 100 200 --device Phone devecocli ui fling 100 800 100 200 --speed 1000
从1.3.0版本开始,支持按照指定的方向快速滑动且有惯性。适用于快速按方向浏览的场景,如页面滚动、列表快速滑动。
命令格式:
devecocli ui dircfling <direction> --device <name|serial>
参数:
| 参数名 | 说明 |
|---|---|
| <direction> | 必选,方向,取值为up,down,left,right。
|
| --device | 真机或模拟器设备的名称/序列号,只支持连接一个设备。 若名称中带有空格,则名称需要添加英文引号。 |
示例:
devecocli ui dircfling up devecocli ui dircfling down --device Phone devecocli ui dircfling left devecocli ui dircfling right
从1.3.0版本开始,支持拖拽操作。
命令格式:
devecocli ui drag [x1] [y1] [x2] [y2] --device <name|serial> --speed <n>
参数:
| 参数名 | 说明 |
|---|---|
| [x1] [y1] | 必选,起点坐标,取值为大于0的整数,单位:px。 |
| [x2] [y2] | 必选,终点坐标,取值为大于0的整数,单位:px。 |
| --device | 真机或模拟器设备的名称/序列号,只支持连接一个设备。 若名称中带有空格,则名称需要添加英文引号。 |
| --speed | 可选,滑动速度,单位为px/s,取值范围为[200,40000]。默认值为600。 |
示例:
devecocli ui drag 100 500 100 200 devecocli ui drag 100 500 100 200 --device Phone devecocli ui drag 100 500 100 200 --speed 1500
从1.3.0版本开始,支持在当前焦点、指定坐标或指定节点位置输入文本。
命令格式:
devecocli ui text [text] [x] [y] --device <name|serial> --id <id> --window <windowId>
参数:
| 参数名 | 说明 |
|---|---|
| [text] | 必选,待输入的文本。 |
| [x] [y] | 可选,目标坐标,取值是大于0的整数,单位:px。 不可与--id同时使用。 |
| --device | 真机或模拟器设备的名称/序列号,只支持连接一个设备。 若名称中带有空格,则名称需要添加英文引号。 |
| --id | 可选,控件ID,自动解析为中心坐标。 不可与[x] [y]同时使用。 |
| --window | 可选,目标窗口ID,可通过devecocli ui window list获取,与--id配合使用。 |
示例:
devecocli ui text "Hello World" devecocli ui text "Hello World" --device Phone devecocli ui text "Hello World" 100 200 devecocli ui text "Hello World" --id search_box devecocli ui text "Hello World" --id search_box --window main_window
启动本地MCP服务。智能体配置MCP服务后,可通过MCP协议调用ArkTS/C++语法检查工具。不同智能体平台配置MCP服务的界面不一样,某智能平台的配置示例如下。
推荐通过devecocli init --mcp自动配置。
{
"mcp": {
"deveco-mcp": {
"type": "local",
"command": [
"devecocli",
"serve",
"mcp"
],
"environment": {
"PROJECT_PATH": "D:\\code\\sample_in_harmonyos", // 工程路径
"NODE_MAX_OLD_SPACE_SIZE": "8192", // 可选,设置内部node进程最大的老生代内存大小,默认为8192
"DEVECO_PATH": "D:\\Applications\\DevEco Studio" // 可选,DevEco Studio的安装路径
},
"enabled": true
}
}
} | 工具名 | 用途 | 支持语言 |
|---|---|---|
| check | 静态语法分析,返回结构化诊断信息。 | ArkTS、C/C++ |
| hover | 获取指定位置的悬浮信息(类型、文档)。 | ArkTS、C/C++ |
| definition | 查找符号定义位置。 | ArkTS、C/C++ |
| declaration | 查找符号声明位置(ArkTS 中可能与定义不同)。 | ArkTS、C/C++ |
| references | 查找符号在全工程中的所有引用。 | ArkTS、C/C++ |
| implementation | 查找符号的实现(如接口实现)。 | ArkTS、C/C++ |
| workspaceSymbol | 按名称在全工程搜索符号。 | ArkTS、C/C++ |
| documentSymbol | 获取单文件的符号树(函数、类、变量及范围)。 | ArkTS、C/C++ |
| callHierarchy | 查询函数调用关系。 | ArkTS、C/C++仅支持调用方 |
从1.3.0版本开始,支持启动本地LSP语言服务。智能体配置LSP服务后,可通过LSP协议实现代码检查、代码引用查找、代码跳转、代码补全等代码编辑相关的能力。
具体配置如下,当前支持ArkTS和clangd:
{
"lsp": {
"ArkTS": {
"command": [
"devecocli",
"serve",
"lsp",
"--arkts"
],
"extensions": [ // 支持的文件格式
".ets"
]
},
"clangd": {
"command": [
"devecocli",
"serve",
"lsp",
"--cpp"
],
"extensions": [ // 支持的文件格式
".c",
".cpp",
".cc",
".cxx",
".h",
".hpp",
".hxx",
".hh"
]
}
}
} 命令格式:
devecocli serve lsp --arkts --cpp --project-path <path> --auto-detect
参数:
| 参数名 | 说明 |
|---|---|
| --arkts | 必选,启动ArkTS语言服务器,不可与--cpp同时使用。 |
| --cpp | 必选,启动C/C++语言服务器,不可与--arkts同时使用。 |
| --project-path | 可选,工程根目录。默认为当前目录。 |
| --auto-detect | 可选,在当前目录和子目录中查找工程根目录,最多向下查找3层子目录。 不可与--project-path同时使用。 |
示例:
devecocli serve lsp --arkts devecocli serve lsp --cpp devecocli serve lsp --arkts --project-path ./MyApp devecocli serve lsp --arkts --auto-detect