Skip to content

stevenleep/macpilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MacPilot

让 Mac 理解你的意图,而不只是执行命令。

Python 3.10+ macOS 12+ MIT License


Origin Story

每个开发者都写过自动化脚本。

打开某个应用,点击某个按钮,输入一段文字,等待几秒,再点击下一个按钮。我们用 AppleScript、用 PyAutoGUI、用 Selenium,花几个小时调试坐标和等待时间,然后祈祷屏幕分辨率不要变、按钮位置不要挪。

这些脚本很脆弱。窗口移动一下就崩了。按钮换个名字就废了。

问题的本质是:传统自动化工具只懂「怎么做」,不懂「做什么」。

它们需要你精确描述每一个步骤的每一个细节。但人类不是这样工作的——我们说「帮我订一张去上海的机票」,而不是「打开浏览器,输入 ctrip.com,等待页面加载,找到出发城市输入框,点击它,输入北京......」

LLM 的出现改变了这一切。现在我们有了能理解自然语言、能看懂屏幕内容、能自主规划步骤的 AI。

MacPilot 就是把这种能力带到桌面自动化领域的尝试。


Philosophy

1. 意图优先,而非步骤优先

你描述你想达成的目标,MacPilot 负责找到实现路径。它会观察屏幕,识别界面元素,规划操作步骤,然后执行。如果某一步失败了,它会尝试其他方式。

2. 容错胜于精确

真实世界是混乱的。网络会慢,弹窗会出现,按钮会移位。好的自动化不是假装这些不存在,而是设计成能处理这些意外。MacPilot 的 ReAct 循环让它能够观察结果、调整策略、从错误中恢复。

3. 安全作为一等公民

自动化工具有能力造成破坏。MacPilot 内置了权限控制、危险操作确认、完整审计日志。不是事后补丁,而是从第一天就融入架构。

4. 可观测、可调试、可信任

每一步决策都有日志。每一个操作都可追溯。你可以看到 AI 在想什么、为什么这样做。黑盒自动化是危险的,透明才能建立信任。


How It Works

任务 → [观察屏幕] → [LLM 思考] → [选择工具] → [执行操作] → [检查结果] → 循环直到完成

传统工具需要你告诉它「点击坐标 (320, 480)」。MacPilot 让你说「点击登录按钮」,它会自己找到按钮在哪。

python src/cli.py "在 YouTube 搜索 Python 教程,播放第一个视频"

Quick Start

uv sync
export DEEPSEEK_API_KEY="your-key"

# Command Line
python src/cli.py "打开 Safari 并访问 github.com"

# GUI
python src/cli.py --gui

Core Concepts

概念 说明
ReAct Loop 观察 → 思考 → 行动,循环直到任务完成
Tools 24+ 内置工具:文件、终端、键鼠、HTTP、浏览器
Observers 屏幕截图、OCR、GPT-4V/Claude Vision、Accessibility API
Workflow DAG 工作流引擎,支持条件分支与并行执行
Security 权限分级、操作确认、完整审计日志

Usage

# 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>

LLM Support

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, ... -

Architecture

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

Installation

# 基础安装
uv sync

# 可选功能
uv sync --extra ocr       # OCR 支持
uv sync --extra vision    # 多模态视觉
uv sync --extra ollama    # 本地模型
uv sync --extra all       # 全部功能

The Vision

"The best interface is no interface."

我们相信自动化的终极形态是消失。不是更好的脚本语言,不是更强的录制工具,而是直接说出你想做什么,然后它就完成了。

MacPilot 是通往那个未来的一小步。

它不完美。LLM 会犯错,视觉识别会失误,复杂任务可能需要多次尝试。但方向是对的——让机器去适应人类的表达方式,而不是反过来。

如果你也相信这个方向,欢迎一起构建。


License

MIT

About

让 Mac 理解你的意图,而不只是执行命令。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages