让 Mac 理解你的意图,而不只是执行命令。
每个开发者都写过自动化脚本。
打开某个应用,点击某个按钮,输入一段文字,等待几秒,再点击下一个按钮。我们用 AppleScript、用 PyAutoGUI、用 Selenium,花几个小时调试坐标和等待时间,然后祈祷屏幕分辨率不要变、按钮位置不要挪。
这些脚本很脆弱。窗口移动一下就崩了。按钮换个名字就废了。
问题的本质是:传统自动化工具只懂「怎么做」,不懂「做什么」。
它们需要你精确描述每一个步骤的每一个细节。但人类不是这样工作的——我们说「帮我订一张去上海的机票」,而不是「打开浏览器,输入 ctrip.com,等待页面加载,找到出发城市输入框,点击它,输入北京......」
LLM 的出现改变了这一切。现在我们有了能理解自然语言、能看懂屏幕内容、能自主规划步骤的 AI。
MacPilot 就是把这种能力带到桌面自动化领域的尝试。
1. 意图优先,而非步骤优先
你描述你想达成的目标,MacPilot 负责找到实现路径。它会观察屏幕,识别界面元素,规划操作步骤,然后执行。如果某一步失败了,它会尝试其他方式。
2. 容错胜于精确
真实世界是混乱的。网络会慢,弹窗会出现,按钮会移位。好的自动化不是假装这些不存在,而是设计成能处理这些意外。MacPilot 的 ReAct 循环让它能够观察结果、调整策略、从错误中恢复。
3. 安全作为一等公民
自动化工具有能力造成破坏。MacPilot 内置了权限控制、危险操作确认、完整审计日志。不是事后补丁,而是从第一天就融入架构。
4. 可观测、可调试、可信任
每一步决策都有日志。每一个操作都可追溯。你可以看到 AI 在想什么、为什么这样做。黑盒自动化是危险的,透明才能建立信任。
任务 → [观察屏幕] → [LLM 思考] → [选择工具] → [执行操作] → [检查结果] → 循环直到完成
传统工具需要你告诉它「点击坐标 (320, 480)」。MacPilot 让你说「点击登录按钮」,它会自己找到按钮在哪。
python src/cli.py "在 YouTube 搜索 Python 教程,播放第一个视频"uv sync
export DEEPSEEK_API_KEY="your-key"
# Command Line
python src/cli.py "打开 Safari 并访问 github.com"
# GUI
python src/cli.py --gui| 概念 | 说明 |
|---|---|
| ReAct Loop | 观察 → 思考 → 行动,循环直到任务完成 |
| Tools | 24+ 内置工具:文件、终端、键鼠、HTTP、浏览器 |
| Observers | 屏幕截图、OCR、GPT-4V/Claude Vision、Accessibility API |
| Workflow | DAG 工作流引擎,支持条件分支与并行执行 |
| Security | 权限分级、操作确认、完整审计日志 |
# GUI Mode
python src/cli.py --gui
# Command Line
python src/cli.py "打开 Finder"
# Enable OCR
python src/cli.py --ocr "找到搜索框并输入 hello"
# Record & Playback
python src/cli.py --record demo "演示操作"
python src/cli.py --play demo
# Persistent Tasks
python src/cli.py --persistent "复杂任务"
python src/cli.py --list-tasks
python src/cli.py --resume <task_id>| Provider | Models | Vision |
|---|---|---|
| DeepSeek | deepseek-chat | - |
| OpenAI | gpt-4o, gpt-4-turbo | Yes |
| Anthropic | claude-3.5-sonnet, claude-3-opus | Yes |
| Ollama | llama3, mistral, ... | - |
src/
├── agent/ # ReAct Agent, Executor, Recorder
├── llm/ # LLM Providers
├── tools/ # 24 Built-in Tools
├── observers/ # Screen, OCR, Vision, Accessibility
├── workflow/ # DAG Engine
├── security/ # Policy, Middleware, Audit
├── plugins/ # Plugin System
└── cli.py # Entry Point
# 基础安装
uv sync
# 可选功能
uv sync --extra ocr # OCR 支持
uv sync --extra vision # 多模态视觉
uv sync --extra ollama # 本地模型
uv sync --extra all # 全部功能"The best interface is no interface."
我们相信自动化的终极形态是消失。不是更好的脚本语言,不是更强的录制工具,而是直接说出你想做什么,然后它就完成了。
MacPilot 是通往那个未来的一小步。
它不完美。LLM 会犯错,视觉识别会失误,复杂任务可能需要多次尝试。但方向是对的——让机器去适应人类的表达方式,而不是反过来。
如果你也相信这个方向,欢迎一起构建。
MIT