引言
“Tiny AI companions that live on your macOS dock.”
这是「一天一个开源项目」系列的第 63 篇文章。今天介绍的项目是 lil agents(GitHub)。
很多人把 AI 编程助手放在 IDE 里(Cursor / VSCode 插件),或者放在终端里(Claude Code / Codex / Gemini CLI)。但有时候你只想“随手点一下就能问一句”,而不是切窗口、开新 Tab、找对命令。lil agents 的思路很轻:把两个小角色(Bruce / Jazz)放在 macOS Dock 上方来回走动,点击角色就弹出一个带主题的 AI 终端,并且能在 menubar 里一键切换不同的 AI CLI(Claude、Codex、Copilot、Gemini)。
它更像一个“桌面小挂件”:不替代你现有的 CLI,而是把它们变得更“随手可用”、更有情绪价值。
你将学到什么
- lil agents 的产品定位:用“桌面角色 + popover 终端”把 CLI 体验变轻
- 支持的 AI CLI:Claude Code / OpenAI Codex / GitHub Copilot CLI / Google Gemini CLI 的切换方式
- 交互细节:主题、slash commands、复制按钮、thinking bubbles、音效、onboarding
- 隐私与边界:本地运行、对话由所选 CLI 进程处理、更新机制会发送哪些信息
- 面向开发者的构建方式:Xcode 打开工程直接运行
前置知识
- 你在 macOS 上使用过至少一种 AI CLI(Claude Code / Codex / Copilot / Gemini CLI)
- 了解基本的终端安装方式(npm / brew / curl 脚本)
- 如果要自己构建:会用 Xcode(可选)
项目背景
项目简介
lil agents 是一个 macOS 应用:在 Dock 上方渲染两个小角色,让你通过点击角色打开一个“AI 终端 popover”。它不直接提供模型服务,而是把你本机安装的 AI CLI(Claude Code、Codex、Copilot CLI、Gemini CLI)作为后端能力,提供更轻便、更具玩味的桌面交互方式。
从 README 的措辞你能明显感觉到它在追求一种体验:角色会走路、会“思考”、会“vibe”。对很多开发者来说,这类“轻交互 + 低打断”的工具,反而更容易融入日常。
作者/团队介绍
- 作者:Ryan Stephen(仓库维护者)
项目数据
- ⭐ GitHub Stars: 909
- 🍴 Forks: 0(以 GitHub 页面展示为准)
- 📦 版本:持续更新中(以 Releases 为准)
- 📄 License: MIT
- 🌐 官网/下载:
https://lilagents.xyz
主要功能
核心作用
把“终端里的 AI CLI”变成“随手点一下就能聊的桌面组件”:
- Dock 上方常驻:小角色在 Dock 上方行走,存在感很轻
- 点击即用:点击角色弹出 AI 终端 popover(带主题)
- 多 CLI 一键切换:Claude / Codex / Copilot / Gemini 在 menubar 切换
- 补齐交互细节:slash commands、复制按钮、thinking bubbles、音效、onboarding
使用场景
-
碎片化提问
- 写代码时突然想问一句 API 用法/报错含义,点一下就问,不用切到大窗口。
-
多模型/多 CLI 对照
- 同一个问题在 Claude Code / Codex / Gemini 上各问一次,快速对比输出风格。
-
把“状态”做得更可感知
- thinking bubbles + 音效,让“AI 在工作”这件事更具反馈感。
-
轻量桌面工作流
- 你不想把聊天塞进 IDE,也不想一直开终端窗口:popover 形态很合适。
快速开始
先安装任意一个支持的 CLI(至少一个)。以下命令来自项目 README:
# Claude Code
curl -fsSL https://claude.ai/install.sh | sh
# OpenAI Codex
npm install -g @openai/codex
# GitHub Copilot CLI
brew install copilot-cli
# Google Gemini CLI
npm install -g @google/gemini-cli
然后在 https://lilagents.xyz 下载 macOS 版本并运行。
核心特性
-
Dock 上的动画角色
- 透明 HEVC 视频渲染动画角色,走动自然且不占太多 UI 空间。
-
Popover 终端交互
- 点击角色打开一个带主题的 AI 终端 popover。
-
Menubar 切换引擎
- 在 Claude、Codex、Copilot、Gemini CLI 之间一键切换。
-
主题系统
- Peach、Midnight、Cloud、Moss 四种视觉主题。
-
Slash Commands
- 在输入框支持
/clear、/copy、/help。
- 在输入框支持
-
复制体验优化
- 标题栏提供“复制上一条回复”按钮。
-
反馈与情绪化细节
- thinking bubbles(工作时的气泡短句)+ 完成音效 + 首次引导。
-
自动更新
- 通过 Sparkle 实现自动更新。
项目优势
| 对比项 | lil agents | 纯终端 CLI | IDE 内置聊天 |
|---|---|---|---|
| 入口成本 | ✅ 点击即聊 | ⚠️ 需要切到终端/命令 | ✅ 快捷键/面板 |
| 打断程度 | ✅ 低(popover) | ⚠️ 中(窗口/Tab) | ⚠️ 中(IDE 焦点变化) |
| 多 CLI 切换 | ✅ menubar 一键 | ⚠️ 手动切换命令/环境 | ⚠️ 受 IDE/插件限制 |
| 情绪化反馈 | ✅ 角色/气泡/音效 | ❌ 基本没有 | ⚠️ 有但偏严肃 |
| 隐私边界 | ✅ 本地 App,不收集项目数据 | ✅ 依 CLI 而定 | ⚠️ 依产品实现而定 |
为什么选择它?
- 你已经在用 AI CLI,但想要一个更“随手”的入口
- 你需要快速切换不同 CLI/模型对照输出
- 你喜欢“轻工具 + 轻交互”的桌面工作流
项目详细剖析
交互设计:把 CLI 变成桌面小挂件
lil agents 的关键不在于“又一个 Agent 框架”,而在于把交互入口做到了 Dock 附近:
- Dock 是 macOS 用户最频繁扫视的位置之一
- 角色动画提供了“在线/工作”的存在感
- popover 让对话不抢占屏幕主空间
依赖策略:本机 CLI 作为能力层
它支持的不是“某个模型”,而是“某类 CLI”:
- Claude Code(安装脚本)
- OpenAI Codex(npm 全局包)
- GitHub Copilot CLI(brew)
- Google Gemini CLI(npm 全局包)
这种设计的好处是:lil agents 不需要管理 provider API key 的差异化逻辑(至少对外表现如此),而是把“对话”和“鉴权/计费/条款”交回给你选择的 CLI 与 provider。
隐私与数据边界
项目在 README 中明确了隐私边界:
- 应用本身不收集/上传你的项目数据、文件路径或聊天内容
- 对话由你选择的 CLI 进程处理,发送给 provider 的内容遵循各自条款
- 更新检查通过 Sparkle,仅发送 app 版本与 macOS 版本
如果你在团队环境落地,建议把“各 CLI 的企业合规要求”和“provider 侧的数据策略”单独作为评估项。
构建方式
项目提供了非常直接的开发者路径:
- 用 Xcode 打开
lil-agents.xcodeproj,点击 Run 即可。
项目地址与资源
官方资源
- 🌟 GitHub: github.com/ryanstephen…
- 🌐 下载/官网:
https://lilagents.xyz - 🐛 Issue Tracker: github.com/ryanstephen…
相关资源
- Claude Code: claude.ai/download
- OpenAI Codex: github.com/openai/code…
- GitHub Copilot CLI: github.com/github/copi…
- Google Gemini CLI: github.com/google-gemi…
适用人群
- 想把 AI CLI 变成“随手点一下就能用”的 macOS 开发者
- 喜欢桌面小工具、状态可视化与轻交互的用户
- 需要在多个 AI CLI 之间快速切换、对照输出的重度使用者
欢迎来我中的个人主页找到更多有用的知识和有趣的产品