Skip to content
🌊海洋蓝
🌸樱花粉
🍃森林绿
🔮幻夜紫
🌙暗夜黑

手把手带你上手鸿蒙应用开发利器 DevEcoCode

前言

接上篇 《手把手带你上手鸿蒙应用开发利器 DevEcoCli》

DevEcoCli 是一个面向 HarmonyOS 应用开发的统一命令行入口。

DevEcoCliDevEco Studio 工具链统一封装为一个 CLI,内置 ohpmhvigorhdcemulatorhilog,同时集成 HarmonyOS 技能安装、项目脚手架、本地 HarmonyOS 文档检索和 MCP 服务。


虽然DevEcoCli提供了众多对标DevEco Studio工具的能力,但是如果直接使用DevEcoCli对于开发者来说,还是需要记忆不少相关命令,还是会出现记错、记漏以及太依赖开发者的主动性,不能完全发挥DevEcoCli的能力。

因此在目前流行的开发流程中,DevEcoCli一定是结合相关的AI工具(agent)来使用的。开发者可以选择自己习惯的AI工具,如Cursor、Trae、Codex等配合DevEcoCli来使用。

DevEcoCode 介绍

但是!但是!但是!万少这里是强烈推荐使用鸿蒙官方推出的DevEcoCode。

DevEcoCode 是一款面向 HarmonyOS 开发场景的 AI Agent 工具,支持代码编写、编译构建、设备运行、文档查阅、运行时调试及 ArkTS 问题修复等能力。

DevEcoCode 基于开源项目 OpenCode 扩展开发,保留了 OpenCode 的终端交互、配置体系、Provider / MCP / Skill / Plugin 等能力,并针对 HarmonyOS 工程增加了 DevEco Studio、Hvigor、HDC、Skill、HarmonyOS 知识库、ArkTS 检查和设备调试相关集成。

大白话总结就是——专门为 HarmonyOS 开发而生。

可以用下面这张图来理解 DevEcoCode 的整体能力架构,以及它与 DevEcoCli、DevEco Studio 工具链之间的调用关系:

DevEcoCode 能力架构

另外需要注意的是,使用DevEcoCode之前,需要先安装好DevEcoCli,因为上面提到的大部分能力都是在底层通过mcp tool的方式调用了DevEcoCli的能力。

DevEcoCode 前置环境

  • 目前提供 Windows 与 macOS 版本,暂不支持鸿蒙 PC(小道消息:Q4 可能会支持)

    • Node.js 22 及以上

    • DevEco Studio 6.1 及以上(编译构建、Hvigor、HDC、模拟器/真机运行)

    • 已配置 DEVECO_HOME 环境变量,指向 DevEco Studio 安装目录

DevEcoCode 安装

打开终端,输入命令进行安装。

npm install -g @deveco/deveco-code

安装成功后,查看版本信息。

deveco --version

DevEcoCode 启动

启动命令如下

deveco

需要注意的是,首次使用需要登录你的华为开发者账号。

登录之后,可以使用 DevEcoCode 提供的免费 GLM 5.1 模型,输入 /model 进行选择,另外免费模型在高峰期可能会出现排队的情况。

image-20260709114201159

DevEcoCode 接入自己的模型

当然,DevEcoCode 也支持接入自己的大模型,进入 /model 后,按下 Ctrl + A 即可。

当前DevEcoCode 支持接入市场上大部分的大模型,列表如下。

DevEcoCode是基于opencode,支持的模型也是来自于opencode中定义的 https://models.dev/api.json

目前收录了 122 个 Provider。

大家可以根据自己已有的来选择接入,万少这里接入了智谱和 DeepSeek 的套餐,这里拿 DeepSeek 为例。

选择 DeepSeek。


然后会提醒你输入DeepSeek的API key

登录你的DeepSeek的API开发平台

https://platform.deepseek.com/api_keys

复制或者新建一个API Key


把Api key 填写进去即可,按下Enter进行确认。

因为目前 DeepSeek 提供了 flash 和 pro 两个版本,开发者可以再次输入 /model 来选择和切换。


手动编辑配置文件接入模型

开发者也可以手动编辑配置文件来接入大模型

DevEcoCode 开发应用流程

因为DevEcoCode是基于开源的OpenCode二次封装的,所以OpenCode的大部分已有的功能DevEcoCode也支持。

这里以一个开发新的HarmonyOS为例。

整个开发流程可以用下图概括:

DevEcoCode 开发应用流程

新建一个鸿蒙工程

使用DevEcoCode不像之前的DevEcoCli需要记住命令,这里开发者直接使用自然语言即可。

在当前目录下帮我创建一个API版本为21的HarmonyOS应用的工程


然后根据提示完成其他流程操作即可。


启动工程和预览

自然语言实现功能

然后你可以使用自然语言去实现你的功能,当DevEcoCode碰到自己不是很了解的知识时,它自己会调用DevEcoCli搜索文档的能力在本地的SDK库中去寻找资料,所以很快也很准确可以获取到技术,这个如果是用其他的AI agent可能默认会调用内置的Fetch工具在互联网上搜索资料,这样就太慢和笼统了,很容易失败!

帮我使用系统组件 沉浸式光感的tab实现  首页、分类、我的 ,其中的tab的图标帮我优先使用内置的图标,如果没有,帮我创建svg,不要使用emoji图标


需要注意的是,因为沉浸式光感是API23才有的,API21的工程不支持,这一点,DevEcoCode也识别出来了。

实际开发中,你可以直接中断对话,然后补上你的要求,及时调整方向。

当devecocode明确方案后,便会开始执行任务。

得到效果。

执行构建

需要注意的是,刚刚创建的工程使用的是自动签名。如果想要运行到真机,或者进行构建打包等操作,最后都先配置成手动签名,然后继续在已有的工程内开发。

想要执行构建,也是直接用自然语言对话即可。

帮我构建生产环境下的 APP 包 xxxxx

多模态

DevEcoCode 登录华为账号时,默认使用内置的 Qwen3-VL 多模态模型进行 UI 检查,该模型只能用于 UI 检查(非主动调用)。如果开发者想要在自然语言对话中使用多模态能力,目前只支持接入 Qwen 系列的多模态模型。

DevEcoCode 开发方式

DevEcoCode 支持 3 种开发方式,默认是 Build(按 Tab 进行切换)。

  • Build:默认模式,适合工程生成、代码生成、配置修正、测试执行、推包运行和发布执行。
  • Plan:适合需求拆解、技术方案、发布规划、测试规划和文档生成。
    • 不会改动文件,只做计划和方案。
  • Goal:适合 SDD 五阶段从需求到实现与构建验证的端到端特性交付。
    • 适合复杂任务。

按照任务的复杂度来使用:

  1. 简单的直接使用Build模式。
  2. 稍微复杂的,先 Plan 做好计划,再切换到 Build 模式。
  3. 最复杂的任务使用Goal模式。

三种开发方式的对比如下图所示:

DevEcoCode 三种开发方式

DevEcoCode 常见能力

DevEcoCode是基于OpenCode,因此常见的一些能力,如agent、skill、mcp等也都支持和通用。

DevEcoCode 常见命令一览

DevEcoCode 斜杠命令

命令别名分类描述来源
/init工程引导式 AGENTS.md 生成,让 AI 自动分析工程并输出工程规范文件内置 command
/debug调试以运行时证据驱动 ArkTS 问题调试内置 command
/review审查审查代码变更(支持 commit / branch / PR,默认未提交变更)内置 command
/editor会话在外部编辑器中编写提示内容内置 tui
/new/clear会话启动一个新的会话内置 tui
/exit会话关闭 DevEcoCode内置 tui
/skills提示列出所有可用的 Skill 并按需加载内置 command
/status系统查看当前系统状态(MCP 连接、Workspace 等)内置 tui
/models/moAgent切换当前使用的模型和 Provider内置 tui
/agentsAgent切换 Agent(build / goal 等)内置 tui
/mcpsAgent管理 MCP 服务器启用/禁用内置 tui
/variantsAgent切换当前模型的变体(如 effort 级别)内置 tui
/connectProvider连接 AI Provider(登录/添加 API Key)内置 tui
/sessions/resume, /continue会话切换/恢复历史会话内置 tui
/org/orgs, /switch-org账号切换组织(仅登录后可见)内置 tui
/workspaces工作区管理工作区(实验性功能)内置 tui
用户自定义命令工程deveco.jsonccommand 段中配置的自定义命令,可绑定 Agent、模型配置
MCP 注册命令/:name:mcp扩展已连接的 MCP Server 通过 Prompt 能力注册为斜杠命令MCP
Skill 注册命令技能工程内 SKILL.md 自动注册为可调用的斜杠命令(不与其他命令重名时)Skill

DevEcoCode CLI 终端命令

命令描述
deveco不带参数时启动 TUI 交互界面(默认入口)
deveco run [message..]直接以指定消息运行 DevEcoCode(非交互模式)
deveco serve启动无头(headless)DevEco 服务器
deveco web启动服务器并在浏览器中打开 Web 界面
deveco attach <url>连接到正在运行的 DevEco 服务器
deveco acp启动 ACP(Agent Client Protocol)服务器
deveco models [provider]列出所有可用模型,可按 Provider 过滤
deveco providers管理 AI Provider 和认证凭据
deveco login [url]登录 DevEcoCode / OpenCode 账号
deveco mcp管理 MCP(Model Context Protocol)服务器
deveco session管理会话(列表、查看、删除等)
deveco agent create创建新的 Agent
deveco export [sessionID]将会话数据导出为 JSON
deveco import <file>从 JSON 文件或 URL 导入会话数据
deveco plugin <module>安装插件并更新配置
deveco pr <number>拉取并切换到 GitHub PR 分支,然后启动 deveco
deveco stats查看 Token 用量和费用统计
deveco db [query]打开交互式 SQLite shell 或执行查询
deveco generate生成代码/配置(内置脚手架)
deveco upgrade [target]升级 DevEcoCode 到最新或指定版本
deveco uninstall卸载 DevEcoCode 并清除所有相关文件

DevEcoCode 配置文件

DevEcoCode支持3种配置文件,优先级如下:

  1. 项目目录下 .deveco/deveco.jsonc
  2. 项目目录下 deveco.jsonc
  3. 用户目录下 .config/deveco/deveco.jsonc

完整配置一览:

json
{
  // 推荐始终声明,编辑器会据此做实时校验
  "$schema": "https://opencode.ai/config.json",

  // ── 基础 ──────────────────────────────────────────
  "username": "alice",
  "shell": "/bin/zsh",                       // 终端和 bash 工具用的默认 shell
  "logLevel": "INFO",                        // DEBUG | INFO | WARN | ERROR
  "model": "anthropic/claude-sonnet-4-6",    // 始终带 provider 前缀
  "small_model": "anthropic/claude-haiku-4-5",
  "default_agent": "build",                  // 必须指向一个非隐藏的 primary agent
  "autoupdate": "notify",                    // true | false | "notify"
  "share": "manual",                         // "manual" | "auto" | "disabled"
  "snapshot": true,                          // 文件快照(undo/revert),默认 true

  // ── 指令 / 技能 / 引用 ───────────────────────────
  "instructions": ["AGENTS.md", "docs/style.md"],
  "skills": {                                // 注意是对象,不是数组
    "paths": [".deveco/skills", "/abs/path"],
    "urls": ["https://example.com/.well-known/skills/"]
  },
  "references": {                            // 以别名建立 @ 自动补全的上下文
    "docs": { "path": "../docs", "description": "产品文档" },
    "sdk": { "repository": "Effect-TS/effect", "branch": "main", "hidden": true }
  },
  "watcher": { "ignore": ["**/dist/**"] },

  // ── Agent(单数,对象)────────────────────────────
  // 键名可以是内置:plan/build/general/explore/title/summary/compaction
  // 也可以是自定义 agent 名
  "agent": {
    "build": { "model": "anthropic/claude-sonnet-4-6" },
    "my-reviewer": {
      "description": "审查 PR 风格问题",
      "mode": "subagent",                    // "primary" | "subagent" | "all"
      "model": "anthropic/claude-sonnet-4-6",
      "variant": "default",
      "temperature": 0.2,
      "top_p": 1.0,
      "steps": 50,                           // 最大迭代轮数
      "color": "#FF5733",                    // 或 primary/secondary/...
      "hidden": false,
      "disable": false,
      "permission": { "edit": "deny", "bash": "ask" }
      // prompt 建议写在 .deveco/agent/<name>.md 文件里,而非内联
    }
  },

  // ── Command(单数,对象)──────────────────────────
  "command": {
    "deploy": {
      "template": "执行部署:$ARGUMENTS",     // 必填,命令正文;$ARGUMENTS/$1/$2...
      "description": "部署当前工程",
      "agent": "build",
      "model": "anthropic/claude-sonnet-4-6",
      "variant": "default",
      "subtask": false
    }
  },

  // ── Provider(单数)──────────────────────────────
  "enabled_providers": ["anthropic"],        // 设置后,仅这些 provider 生效
  "disabled_providers": ["openai"],
  "provider": {
    "anthropic": {
      "name": "Anthropic",
      "api": "https://api.anthropic.com/v1",
      "env": ["ANTHROPIC_API_KEY"],
      "npm": "@ai-sdk/anthropic",
      "options": {
        "apiKey": "sk-...",
        "baseURL": "https://api.anthropic.com/v1",
        "timeout": 60000,                   // ms;设 false 关闭超时
        "headerTimeout": 10000,
        "chunkTimeout": 5000
      },
      "models": {                           // 模型覆盖/自定义
        "claude-sonnet-4-6": {
          "name": "Claude Sonnet 4.6",
          "attachment": true,
          "reasoning": true,
          "tool_call": true,
          "limit": { "context": 200000, "input": 190000, "output": 8000 },
          "cost": { "input": 3.0, "output": 15.0 }
        }
      }
    }
  },

  // ── MCP(单数,对象)──────────────────────────────
  "mcp": {
    "playwright": {                          // 本地进程型
      "type": "local",                       // 必填
      "command": ["npx", "-y", "@playwright/mcp"],  // 数组,不是字符串
      "cwd": ".",
      "environment": { "BROWSER": "chromium" },
      "enabled": true,
      "timeout": 5000
    },
    "remote-thing": {                        // 远程型
      "type": "remote",
      "url": "https://mcp.example.com/sse",
      "headers": { "Authorization": "Bearer {env:TOKEN}" }, // {env:VAR} / {file:path} 插值
      "oauth": { "clientId": "...", "scope": "..." },       // 或 false 关闭自动探测
      "enabled": true
    },
    "old": { "enabled": false }              // 关闭继承自父配置的服务器
  },

  // ── Plugin(数组!)──────────────────────────────
  "plugin": [                                // 数组,不是对象
    "opencode-gemini-auth",                  // npm 包名
    "opencode-foo@1.2.3",                    // 锁定版本
    "./local-plugin.ts",                     // 相对路径
    ["opencode-bar", { "key": "val" }]       // [name, options] 元组
  ],

  // ── Permission ───────────────────────────────────
  "permission": {                            // 或顶层字符串 "allow"(很少用)
    "edit": "deny",
    "bash": { "git *": "allow", "rm *": "deny", "*": "ask" }, // 对象内插入顺序重要,取最后匹配
    "external_directory": { "~/secrets/**": "deny", "*": "allow" },
    "todowrite": "allow",                    // 这些只接受扁平 action:todowrite/question/webfetch/websearch/doom_loop
    "read": "allow"
  },

  // ── 输出 / 压缩 / 附件 / 服务 ────────────────────
  "tool_output": { "max_lines": 2000, "max_bytes": 51200 },
  "compaction": { "auto": true, "prune": false, "tail_turns": 2, "reserved": 1000 },
  "attachment": { /* 图片大小限制、缩放行为 */ },
  "formatter": true,                         // false | true | { 覆盖项 }
  "lsp": true,
  "server": {                                // opencode serve / web
    "port": 4096,
    "hostname": "0.0.0.0",
    "mdns": true,
    "mdnsDomain": "deveco.local",
    "cors": ["https://app.example.com"]
  },

  // ── 实验性 ───────────────────────────────────────
  "experimental": {
    "batch_tool": true,
    "openTelemetry": false,
    "primary_tools": ["edit"],
    "continue_loop_on_deny": false,
    "mcp_timeout": 30000,
    "disable_paste_summary": false,
    "policies": []
  },

  // ── DevEcoCode 特有:合规/法律(可选,全部回退到内置默认值)──
  "agreement": {
    "tms_url": "",
    "privacy_url": "",
    "terms_url": "",
    "privacy_id": "",
    "terms_id": ""
  }

  // ── 已废弃字段(能用但建议迁移)─────────────────
  // "mode": { ... }            → 用 "agent"
  // "reference": { ... }       → 用 "references"
  // "autoshare": true          → 用 "share": "auto"
  // "tools": { "edit": true }  → 用 "permission"
  // "layout": "stretch"        → 已固定为 stretch
  // "maxSteps"                 → 用 "steps"
}

总结

本文从 DevEcoCli 的使用痛点出发,介绍了鸿蒙官方推出的 AI Agent 工具 DevEcoCode,要点回顾如下:

  • 产品定位:DevEcoCode 基于开源 OpenCode 扩展,专为 HarmonyOS 开发而生,底层通过 MCP 调用 DevEcoCli,复用 DevEco Studio 全套工具链(ohpm、hvigor、hdc、emulator、hilog)。
  • 核心优势:相比直接使用 DevEcoCli 死记命令,DevEcoCode 用自然语言对话即可完成新建工程、编码、构建、运行和调试,门槛更低、效率更高,也更能释放工具链的全部能力。
  • 上手路径:备齐前置环境(Node.js 22+、DevEco Studio 6.1+、DEVECO_HOME 环境变量)与 DevEcoCli → 执行 npm install -g @deveco/deveco-code 安装 → 输入 deveco 启动并登录华为账号 → 按需选择自带免费模型或接入自己的大模型。
  • 开发方式:根据任务复杂度,在 Build(默认,直接执行)/ Plan(只规划不改文件)/ Goal(端到端 SDD 五阶段) 三种模式间选择,用 Tab 切换。
  • 生态能力:天然继承 OpenCode 的 agent、skill、mcp、plugin 等机制,并可通过 deveco.jsonc 灵活配置 Provider、Agent、Command、权限等。

一句话概括:DevEcoCode = DevEcoCli 的工具能力 + OpenCode 的 AI 交互体验,让鸿蒙开发真正进入"动嘴就能开发"的阶段。如果你已经在用 DevEcoCli,强烈建议搭配 DevEcoCode,把精力从记命令转移到业务本身。

参考文献

  1. DevEco Studio 工具概览:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-tools-overview
  2. DevEcoCode:鸿蒙专属AI智能体:https://atomgit.com/openharmony-sig/deveco-code
  3. @deveco/deveco-cli · npm:https://www.npmjs.com/package/@deveco/deveco-cli
  4. HarmonyOS 7新特性:https://developer.huawei.com/consumer/cn/features/?ha_source=51cto&ha_sourceId=70000008
  5. HarmonyOS AI开发提效工具:DevEco Code & DevEco CLI:https://developer.huawei.com/consumer/cn/forum/topic/0202216647056043902?ha_source=51cto&ha_sourceId=70000008
  6. 社区干货合集:一帖看全,高效查阅 https://developer.huawei.com/consumer/cn/forum/topic/0201215860119833282?ha_source=51cto&ha_sourceId=70000008
  7. opencode:OpenCode 是一个开源的 AI 编码代理。它提供终端界面、桌面应用和 IDE 扩展等多种使用方式。

Released under the MIT License.