第 1 课

clone、pnpm 与本机 API/Web 起栈

clone 仓库、安装依赖、写入 Intelligence 密钥,启动 API 与 Web,并用 health 确认 8787。

图文25 分钟

课程目录第 1 / 2 课

学习位置仅保存在当前浏览器,有效期 180 天。

01 / 图文教材

clone、pnpm 与本机 API/Web 起栈

clone、pnpm 与本机 API/Web 起栈

本课按 OpenMuse 官方 README「Quick start」整理。
目标:clone 仓库、安装依赖、写入 CopilotKit Intelligence 密钥,启动 API 与 Web,浏览器打开 **http://localhost:8081**,并用 health 接口确认 API。
主要来源:GitHub CopilotKit/OpenMuse · README Quick start

你将得到什么

  • 本机 Web UI:http://localhost:8081
  • API health:http://localhost:8787/api/health 返回正常
  • 已复制并填写的 .env(至少含 Intelligence 项目密钥)
  • 对「OpenMuse 跑哪些进程」的清晰图景(本课先不起浏览器 worker)

课前准备

  1. Node.js 24 LTS(官方 Requirements)。用 node -v 确认主版本为 24。
  2. pnpm 11.19.0(README 钉死版本)。若尚未安装:
corepack enable
corepack prepare pnpm@11.19.0 --activate
pnpm -v

对照结果: pnpm -v 显示 11.19.0(或至少 11.x,以你能通过 --frozen-lockfile 安装为准)。

  1. 能访问 GitHub;本课需要一个 CopilotKit 账号,以便生成 Intelligence 项目密钥(官方:npx copilotkit@latest login / project select)。
  2. 磁盘与网络:首次 pnpm install 会拉较多依赖,预留数分钟。

说明: README 写「local sample app needs no model, Google account, or Docker」——指最小聊天样例可不配模型/Google/Docker;但 Rich Threads / 开对话仍依赖服务器侧 CPK_INTELLIGENCE_API_KEY。本课按官方 Quick start 原样配置该密钥。

一、OpenMuse 是什么(30 秒)

OpenMuse 是 CopilotKit 开源的个人 agent 应用(MIT):

部件作用
Expo/Web 客户端iOS / Android / Web 聊天与 Computer UI
Hono API + 任务 worker认证边界、任务引擎、审阅、持久化
Browser worker(可选)私有 Playwright/Chromium,token 保护
Linux computer(可选)Docker 内非 root 终端与 /workspace

本课只起 API + Web;浏览器 worker 留到下一课。

二、clone 并安装依赖

在终端执行(与官方 README 一致):

git clone https://github.com/CopilotKit/OpenMuse.git openmuse
cd openmuse
pnpm install --frozen-lockfile
cp .env.example .env

对照结果:

  • 当前目录名是 openmuse,存在 .env(由 .env.example 复制)。
  • pnpm install --frozen-lockfile 无 error 退出(exit code 0)。
  • 能看到 apps/server、apps/mobile、apps/worker 等目录(ls apps)。

若 frozen-lockfile 因环境差异失败:先核对 Node/pnpm 版本;仍失败再查 Issues,不要随意删 lockfile 后乱装,以免与文档漂移。

三、登录 CopilotKit 并写入密钥

官方步骤:

npx copilotkit@latest login
npx copilotkit@latest project select

按 CLI 提示在浏览器完成登录并选择(或创建)Intelligence 项目。把生成的 server-only 项目密钥写入 .env:

CPK_INTELLIGENCE_API_KEY=YOUR_CPK_INTELLIGENCE_API_KEY

同时保留 CLI 生成的 CPK_TELEMETRY_ID(README 要求部署与本地服务端环境一并保留;具体键名以你 .env.example 注释为准)。

对照结果:

  • .env 里 CPK_INTELLIGENCE_API_KEY 不再是空或示例占位。
  • 不要把该密钥提交进 Git,也不要贴进聊天/截图。

(可选)本课稍后再配模型

带真实模型浏览/推理时,README「Configure the agent and Google」要求例如:

AGENT_BACKEND=model
MODEL=openai/gpt-5
OPENAI_API_KEY=YOUR_OPENAI_API_KEY

提供商与模型 ID 以你账号与 CopilotKit 当时支持列表为准。本课验收以 进程起来 + health 为主;无模型时部分 Chat 能力会失败,属预期。

四、启动 API 与 Web

终端 A — API / 任务 worker(默认同进程):

pnpm dev

终端 B — Web:

pnpm dev:web

对照结果:

  1. 浏览器打开 http://localhost:8081,能看到 OpenMuse 界面(登录/访问方式以当前 Alpha UI 为准;Render 部署用 OPENMUSE_ACCESS_KEY,本地样例跟 README「Open localhost:8081」)。
  2. 另开标签或用 curl 检查 health:
curl -sS http://localhost:8787/api/health

期望:HTTP 成功且返回健康 JSON(具体字段以当前版本为准;关键是 8787 上 /api/health 可访问)。

端口提醒: Web 8081,API 8787,下一课浏览器 worker 8790。不要默认去撞 3000。

五、在 UI 里点一次「无模型」样例(可选)

README「Try it」第一条不依赖外网模型:

  1. 在 Chat 发送:Complete the permission slip
  2. 打开任务,填入虚构表单值,查看保存的 PDF 与准备好的回复草稿
  3. 官方说明:此流程只写本地 mailbox

对照结果: 能打开对应任务卡片,看到本地生成的 PDF/草稿,而不是整页白屏或立刻 401(若 401,回头检查 Intelligence 密钥是否只配在服务端 .env 且已重启 pnpm dev)。

六、本课排错速查

现象先检查
pnpm: command not foundcorepack / 安装 pnpm 11.19.0
Node 版本不对切换到 Node 24 LTS
Chat 无法开线程CPK_INTELLIGENCE_API_KEY 是否在 API 进程可读的 .env;改完是否重启
8081 打不开pnpm dev:web 是否在跑;是否被代理劫持 localhost
8787 health 失败pnpm dev 日志;端口占用 lsof -i :8787

本课小结

你已经按官方 Quick start 完成本机最小栈:仓库、依赖、Intelligence 密钥、API+Web。下一课配置 BROWSER_WORKER_URL / WORKER_TOKEN,安装 Chromium,并跑一次带浏览器的任务。

官方原文入口: https://github.com/CopilotKit/OpenMuse (README → Quick start)