范围:CLI 打磨 / 官网 / 多 LLM provider / Mac app / 手机端故事。 约束(用户给定):sovereign-only(每个 Lisa 活在用户自己机器上) + OSS-only(保持 MIT,不做 hosted / 商业版)。 编写日期:2026-05-10。
Decisions locked(用户答复 5/10 后):
- 不做任何原生 app(Mac / iOS / Android 全部砍)
- 网站先本地部署,Cloudflare Pages 留待后续
- Domain:
meetlisa.ai/ npm package:@oratis/lisa- 中英文文档同步维护
- mood gallery 公开 prompt
| 交付 | 决定 | 理由 |
|---|---|---|
| CLI 系统打磨 | ✅ 做 | 1 周。homebrew / npm global / 颜色 / 补全 / TUI dashboard。 |
| 官网 | ✅ 做(本地优先) | 1-2 周。Astro + 沿用像素艺术 + EN/zh 同步。本地 astro dev 运行,公开域名 meetlisa.ai 已购,CF Pages 接入 pending。 |
| 多 LLM provider | ✅ 做 1-3 个 | 现有 provider abstraction 良好,Ollama / DeepSeek / Volcengine 优先(OpenAI 兼容,纯 baseURL 改动)。Gemini 第二批。 |
| Mac app | ❌ 不做 | 用户决议:跳过原生壳。继续用 lisa serve --web + 浏览器即可。 |
| iOS native app | ❌ 不做 | sovereign-only 下没有好终点 + 用户决议。 |
| Android native app | ❌ 不做 | 同上。 |
| 手机端故事 | ✅ 做 PWA | 3-5 天。把现有 lisa serve --web 加 manifest + SW + Add-to-Home-Screen。手机用户走 PWA + IM channels。 |
预计总工作量:~4-6 周(去掉 Mac app)。
下面每节给:目标 / 架构 / 工作量 / 风险 / 不做的事。
lisa 已经是 9 个子命令的成熟 CLI(src/cli.ts ~1000 行)。但分发和 UX 是坑:
- 用户得
git clone && npm install && npm run build,然后npm link才能lisa全局可用。 - 没有 colorized 输出(除 birth ritual ASCII)。
- 没有 shell 补全。
--help是一大块文本,没分节。lisa monitor/lisa status这种实时看板缺。
让一个新用户从 0 到 lisa birth 跑通用一条命令:brew install lisa-ai/tap/lisa。
| # | 改动 | 工作量 |
|---|---|---|
| 1.1 | npm publish 包 → npm i -g @oratis/lisa 或 npx lisa |
XS |
| 1.2 | Homebrew tap → brew install lisa-ai/tap/lisa(含 node 依赖) |
S |
| 1.3 | bash / zsh / fish 补全脚本 | S |
| 1.4 | 颜色化输出(用 ANSI escape,不引入依赖) | S |
| 1.5 | --help 分节渲染(subcommand → flag → example) |
XS |
| 1.6 | lisa status 子命令:当前 session、最近 commits、moods、待审批 skills |
S |
| 1.7 | lisa monitor TUI:实时显示 mood / heartbeat 触发 / 当前思考状态 |
M |
| 1.8 | lisa doctor 子命令:检查 config.env / 网络代理 / git 可用性 / 模型可达性 |
S |
总:1-1.5 周。
- 不做 GUI 安装器(mac 用 .dmg;CLI 用包管理)
- 不做 Windows 支持(README 已说明 macOS-first,channels iMessage 是 Mac-only)
- 不引入 chalk / commander / ora 等大型 CLI 依赖——保持现在零外部 CLI 库的简洁
- Homebrew tap 需要一个独立 GitHub repo(
lisa-ai/homebrew-tap),需要维护 formula 的 sha256 自动更新(用 GitHub Action)。 - npm publish 需要决定 package name。
@oratis/lisa是个人 scope,不需要 npm 组织。
让"我读到这个项目,30 秒后想试"成为可能。Lisa 现在的 README 已经是高质量入口,但:
- GitHub README 不能放视频(birth ritual 需要演示)
- 不能搜索(114 张 mood 头像没法 grep)
- 没有 SEO 落地页
- 没法承载未来的 blog / changelog
| 层 | 选 | 理由 |
|---|---|---|
| Framework | Astro | 静态优先、组件化、零 runtime JS 默认、支持 React/Vue island 嵌入。 |
| 部署 | Cloudflare Pages | 免费、CDN、git push 自动部署、边缘函数(如果以后需要轻 API)。 |
| Domain | 待定 | lisa.ai 已被占用。候选:lisaproject.dev / getlisa.dev / lisa-os.dev / withlisa.io。我建议 .dev 域,便宜且与开发者气质契合。 |
| 视觉 | 复用现有像素艺术 | src/web/assets/ 已有 mascot + 114 mood + 4 icon。Press Start 2P + VT323 字体。 |
| 内容 | 中英双语 | README 已双语,沿用。 |
/ Landing — birth ritual 视频 + "what makes her different" + Get started
/install 安装路径:brew, npm, manual git clone, mac dmg
/docs 文档(从 README 提取 + 扩展)
/docs/soul 灵魂系统详解
/docs/heartbeat 自驱机制
/docs/skills executable skills + 安全模型
/docs/channels IM 接入指南(每个 channel 一页)
/docs/api provider 配置 / model 选择 / 代理
/moods 114 张 mood gallery(可点击大图、复制 prompt)
/blog changelog + design notes
/sponsor GitHub Sponsors 链接(OSS-only 但接受赞助)
- 内容迁移(README → docs 页):2-3 天
- 设计 + 静态实现:4-5 天
- mood gallery + asset 转换:1 天
- 部署 + DNS:半天
总:1.5-2 周。
- 不放 birth ritual 在线 demo(要在浏览器里跑 LLM call → 要 API key → 不能匿名安全提供)
- 不放评论 / 论坛系统(用 GitHub Discussions 即可)
- 不做用户登录 / 仪表盘(sovereign-only 不需要)
- 不做付费墙
- Domain 选择是个人决定,影响后续品牌识别。
- 如果以后改主意要做 hosted(违反 Q1=A),网站结构需要重做。锁死 sovereign-only 的措辞要谨慎。
Lisa 已支持 Anthropic 和 OpenAI。Provider abstraction 在 src/providers/ 已是 clean 的。
| # | Provider | API 风格 | 主用例 | 难度 | Birth 兼容性 |
|---|---|---|---|---|---|
| 1 | Ollama / local | OpenAI 兼容 | 完全离线 / 隐私敏感 | XS(仅文档) | |
| 2 | DeepSeek | OpenAI 兼容 | 极便宜(~10x 便宜于 GPT-4o) | XS(baseURL 即可) | ✅ DeepSeek-V3 可 |
| 3 | Volcengine Ark / 豆包 | OpenAI 兼容 | 已用于 Seedream,国内可达 | S | ✅ Doubao-1.5-pro 可 |
| 4 | Gemini | 自有协议 | 多模态、长 context | M(新 provider 类) | |
| 5 | Moonshot / Kimi | OpenAI 兼容 | 国内、长 context | XS | ✅ |
| 6 | xAI Grok | OpenAI 兼容 | 风格独特 | XS | ✅ |
| 7 | AWS Bedrock | 自有协议(含 Claude) | 企业用户的 AWS 路由 | M-L | ✅ |
| 8 | Vertex AI | 自有协议 | 同上但 GCP | M-L | ✅ |
做 1 + 2 + 3(Ollama / DeepSeek / Volcengine),全部是 OpenAI 兼容 → 改动量极小:
src/env.ts加LISA_BASE_URL环境变量识别src/providers/openai.ts已支持baseURL注入(第 14 行)src/providers/registry.ts加 model name → baseURL 路由表
文档加一节"如何接 X"。零代码修改,纯 config + 文档。总工作量 1-2 天。
做 Gemini——这是唯一不是 OpenAI 兼容的主流 provider。需要新写 provider 类(~500 LOC)。可以参考已有 OpenAI provider 结构。工作量 1 周。
src/soul/birth.ts 的 birth 系统提示要求模型输出严格 JSON(identity / purpose / constitution / first_value / first_desire 五个字段)。小模型 / 量化模型不可靠。
文档需要明示最小模型类:
Birth ritual 需要模型能稳定输出 JSON 且 follow long instructions。推荐:
- Anthropic: claude-sonnet-4 及以上
- OpenAI: gpt-4o 及以上
- DeepSeek: V3
- Doubao: 1.5-pro
- Local Ollama: qwen2.5-32b 及以上 / llama3.1-70b 及以上
Birth 跑完之后,日常会话可以切到更便宜/小的模型。
- 不做 LangChain / LlamaIndex 适配 —— 增加抽象层无收益,Lisa 的 provider 接口已经是合适粒度。
- 不做模型 router / fallback —— 复杂度爆炸。用户自己选模型。
- 不做 fine-tuning 集成 —— Lisa 的"她是谁"靠 soul 层面驱动,不靠权重。
- 不同 provider 的 tool use 协议有细微差别(Anthropic 流式、OpenAI tools array vs functions、Gemini function-calling)。已存在 abstraction 但每个 provider 类需要单独 stream/cache 逻辑。
- DeepSeek / 国内 provider 的 tool use 实现成熟度参差,需要 case-by-case 测试。
用户决议(2026-05-10):不做任何原生 app(Mac / iOS / Android)。
继续路径:
- 用户启动 Lisa 仍然是
lisa serve --web+ 浏览器 bookmark - CLI 打磨(§1)+ Homebrew 让"安装"环节顺滑
- PWA(§5)让 web UI 在桌面/手机上有"类原生"体验(添加到主屏幕、独立窗口、离线缓存)
如果未来改主意,本节原方案的草图保留在 git history(commit a9804a6 之前的版本)。
不做 iOS / Android 原生 app。改做 PWA(Progressive Web App)+ 已有的 IM channels。
逻辑链:
- iOS / Android sandbox 不允许:本地 spawn
bash/ 跑git/ 持久 background heartbeat / 写任意 fs / 加载动态代码。 - 所以 mobile Lisa 不能在手机上本地运行。
- 必须连一个 server。
- server 在哪?sovereign-only 排除了"我们 host"。所以是用户自己机器(Mac、家里 NAS、VPS)。
- 那用户怎么从手机连到自己 Mac?
- 同 WiFi 局域网 → 只在家 work
- Tailscale / Twingate / ZeroTier → mesh VPN,免费但需要在两端装
- Cloudflare Tunnel → 免费但需要域名
- ngrok → 付费
- 99% 的 end-user 不会做 5。所以 mobile 原生 app + sovereign = 能用的人极少。
- 上 App Store 还要走审核。Apple 对"thin client to BYOD server"类应用审核很严。
- 维护 iOS + Android + 后台 sync 协议 + push notification 服务至少 3-6 个月工作量。
收益:让 1% 装好了 Tailscale 的用户能用原生 app。
成本:3-6 个月 + Apple Developer 账号 + 审核迭代 + 持续维护两个原生平台。
收益 / 成本比不合理。
PWA = 浏览器端的"安装"体验。用户访问网站 → "添加到主屏幕" → 桌面上一个 Lisa 图标 → 点开是全屏的 web UI(不显示浏览器地址栏)。
PWA 的能力:
| 能力 | iOS Safari | Android Chrome |
|---|---|---|
| 添加到主屏幕 | ✅ | ✅ |
| 全屏(无地址栏) | ✅ | ✅ |
| 离线缓存(service worker) | ✅ | ✅ |
| Push notifications | ✅ | |
| 麦克风 / 摄像头 | ✅(每次需授权) | ✅ |
| 后台同步 | ❌ |
把现有 lisa serve --web 升级为 PWA:
| # | 改动 | 工作量 |
|---|---|---|
| 5.1 | web/manifest.json(图标、name、theme color、display: standalone) |
XS |
| 5.2 | Service worker:缓存静态 assets(mood 头像 + CSS + JS) | S |
| 5.3 | "Add to Home Screen" 引导(首次访问 prompt) | XS |
| 5.4 | 移动端 viewport CSS 调优(现有 UI 是桌面优先) | S |
| 5.5 | (可选)触摸友好的输入控件 + 表情/录音按钮 | M |
总:3-5 天。
- 用户在 Mac 上跑
lisa serve --web,拿到http://192.168.1.100:5757 - 在 iPhone 上打开 Safari,输入这个地址(同 WiFi)
- 点 share → "Add to Home Screen" → 名字叫 "Lisa" → 主屏幕图标
- 之后从主屏幕点图标 = 全屏聊天
- 想出门也能用 → 装 Tailscale,URL 改成 Tailscale magic DNS
官网 lisaproject.dev/app/ 可以托管一个指向用户自己 server 的 PWA(输入 server URL → 设置后存 LocalStorage)。这样 PWA 本身不需要用户自己 deploy。
Lisa 已经支持 Telegram / Discord / Slack / Feishu / iMessage / Webhook。零设置成本,跨平台,原生通知。这是大多数用户应该用的方式。
| 方式 | 设置成本 | 优点 | 缺点 |
|---|---|---|---|
| Telegram bot | 5 分钟 | 跨平台、原生通知、free | 不是 pixel UI |
| iMessage(Mac 必跑) | 10 分钟(FDA) | 苹果生态原生 | macOS-only |
| PWA on local IP | 1 分钟(同 WiFi) | 像素 UI、跨平台 | 出门要 Tailscale |
| PWA via Tailscale | 30 分钟一次性 | 跨平台、像素 UI、出门也能用 | 一次性 setup |
| 原生 app | 不可行 | — | 见上节 |
- 不做 React Native / Flutter —— 反正不能本地跑 Lisa,做出来跟 PWA 没本质区别但要维护两套构建。
- 不做 Capacitor / Cordova 包装 —— 同样的逻辑:壳子+webview 没比 PWA 强。
- 不做 push 服务器 —— 推送语义违反 sovereign(需要中央服务器)。
| 任务 | 时间 | 依赖 |
|---|---|---|
| 1. CLI 打磨(npm + brew + completion + status + monitor) | 1-1.5 周 | — |
| 2. 多 LLM provider 第一批(Ollama / DeepSeek / Volcengine) | 1-2 天 | — |
| 3. 官网 v1(Astro + 文档迁移 + mood gallery) | 1.5-2 周 | — |
| 4. 多 LLM provider 第二批(Gemini) | 1 周 | provider 抽象稳定后 |
里程碑 P1:用户能 brew install lisa → lisa birth → 选 Anthropic / OpenAI / DeepSeek / Gemini / Ollama → 用起来;网站有完整文档。
- Web UI → PWA 化(manifest + SW + mobile CSS)
- 官网
/app/路径托管 PWA(让用户配置自己的 server URL)
里程碑 P2:手机用户可以"添加到主屏幕"用 Lisa(同 WiFi 即可,出门走 Tailscale)。
如果未来某天有数据表明 PWA 不够用,再讨论。在此之前不动。
并行不冲突。
- SPRINT_4_PLAN 是 Lisa 内核演进(她怎么活、怎么记得自己)。
- PRODUCTIZATION_PLAN 是 Lisa 分发演进(怎么让人装上她)。
两条线不该混合:
- SPRINT_4 等数据 → 那是关于"她需要什么内在工具"
- 产品化项目可以现在做 → 是关于"她怎么到达更多人"
但如果要选一条先于另一条:内核优先。理由:装上她但她没用是负面体验;她在用户手里且用得好,再扩分发面才划算。
具体执行建议:
- 现在(5-10)就开始 Phase 1(CLI 打磨可以一周内出来)。
- 28 天观察窗口结束(约 6-7 月初)跑 SPRINT_4 决策协议。
- Phase 2 + 3 在 SPRINT_4 第一个 sprint 之后启动。
| 想法 | 为什么不做 |
|---|---|
| Hosted Lisa SaaS | Q1 = A 已排除。 |
| 多租户 | 同上。Lisa 的"她不是配置是她"在多租户语义里崩。 |
| iCloud 同步 | 苹果生态 lock-in + 隐私顾虑 + sovereign 冲突。 |
| 闭源商业版 | Q2 = OSS-only。 |
| 内置默认 API key(让用户开箱即用) | 法律 + 滥用风险 + 你不想 host 任何东西。 |
| 跨设备 soul 同步(不通过 Tailscale 用户自管) | 需要协议设计 + 冲突解决 + 中央协调。 sovereign 不允许。 |
| Voice + 摄像头实时 multimodal app | 工程成本巨大、价值密度低。 |
| App Store 内嵌付费("buy more credits") | OSS-only + sovereign。用户用自己的 API key。 |
| # | 问题 | 决议 |
|---|---|---|
| 1 | Domain | meetlisa.ai — 已购买(2026-05-14)。原方案是 .dev,升级到 .ai(AI 信号更强,~$70/yr vs $10)。 |
| 2 | Apple Developer | N/A(不做 Mac app) |
| 3 | npm package | @oratis/lisa — 用户 GitHub scope,干净 |
| 4 | 谁写 SwiftUI | N/A(不做 Mac app) |
| 5 | 中英文文档优先级 | 同步——官网 EN + zh-CN 从 day 1 双语 |
| 6 | mood gallery prompt 公开度 | 公开——与 OSS 精神一致,方便复刻 |
附加决议:
- 网站先在本地部署(
astro dev/astro build && serve dist/),确认稳定后再考虑买域名 + Cloudflare Pages。
**CLI 打磨 + 多 provider + 官网(本地起步)+ PWA。共 4 件事,4-6 周。所有原生 app 不做。**Phase 1 立即可启动;与 SPRINT_4 内核演进并行不冲突。