让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
macOS Desktop Controller v2 - macOS 14 兼容版
功能概述
macOS Desktop Controller v2 - macOS 14 兼容版是一项面向实际任务的技能,主要用于基于 Python + AppleScript 的 macOS 14 兼容桌面自动化控制器,提供稳定可靠的 UI 自动化能力;🏗️ 架构设计;
核心要点
- 🎯 功能特性;
- 🔧 核心技能模块;
- 1. app_control_skill - 应用控制;
使用与执行
启动/关闭应用 :精确控制应用的启动、关闭、重启;窗口管理 :移动、调整大小。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
macOS Desktop Controller v2 - macOS 14 兼容版
基于 Python + AppleScript 的 macOS 14 兼容桌面自动化控制器,提供稳定可靠的 UI 自动化能力。
🏗️ 架构设计
┌──────────────────────────────┐
│ 用户触发层/接口 │
│ - Terminal CLI / 界面 │
│ - Chatbot/数字人接口 │
└─────────────┬────────────────┘
│
▼
┌──────────────────────────────┐
│ 调度 & 核心 Agent │
│ - Action Queue / Task Manager │
│ - Skill Dispatcher │
│ - 状态 & 超时管理 │
└─────────────┬────────────────┘
│
▼
┌──────────────────────────────┐
│ 技能模块层 (Skills) │
│ - app_control_skill │
│ - click_skill / drag_skill │
│ - vision_skill │
│ - workflow_skill │
└─────────────┬────────────────┘
│
▼
┌──────────────────────────────┐
│ 系统执行层 (Executor) │
│ - Python + PyAutoGUI │
│ - AppleScript / Automator │
│ - subprocess 调用 / CLI │
└─────────────┬────────────────┘
│
▼
┌──────────────────────────────┐
│ macOS 14 系统层 │
│ - Accessibility / UI Events │
│ - Screen Capture / Permissions│
└──────────────────────────────┘
🎯 功能特性
🔧 核心技能模块
1. app_control_skill - 应用控制
- 启动/关闭应用:精确控制应用的启动、关闭、重启
- 窗口管理:移动、调整大小、最小化、最大化窗口
- 应用切换:在不同应用间快速切换
- 状态监控:检查应用运行状态和窗口信息
2. click_skill - 精确交互
- 点击操作:基于坐标、元素ID或视觉识别的精确点击
- 输入控制:键盘输入、热键组合、文本输入
- 拖拽操作:元素间的拖拽、文件拖拽
- 滚动控制:平滑滚动,支持不同方向和速度
3. vision_skill - 视觉控制
- 屏幕截图:全屏、窗口、指定区域的截图
- 视觉识别:基于截图的元素识别和分析
- 模板匹配:使用 OpenCV 进行精确的图像匹配
- 实时监控:桌面状态的实时监控和分析
4. workflow_skill - 工作流管理
- 任务串联:多任务串联,执行完整工作流
- 条件判断:基于视觉或状态的条件分支
- 循环控制:重复执行的任务循环
- 错误处理:完善的错误处理和重试机制
🛠️ 安装要求
系统要求
- macOS 14.x (兼容性验证)
- Python 3.8+
- pip 包管理器
依赖安装
# 基础依赖 pip install pyautogui opencv-python numpy pillow # 可选依赖(增强功能) pip install pyobjc-framework-Cocoa pyobjc-framework-Quartz
macOS 权限设置
系统设置 → 隐私与安全性 ✅ 辅助功能(控制鼠标键盘) ✅ 屏幕录制(截图识别) ✅ 自动化(控制 Safari / Finder / App)
📖 使用示例
基本应用控制
from macos_desktop_controller import app_control
# 启动应用
app_control.open_app("Safari")
# 激活窗口
app_control.activate_window("Safari")
# 关闭应用
app_control.close_app("Safari")
精确交互操作
from macos_desktop_controller import click_control
# 坐标点击
click_control.click_at(500, 300)
# 文本输入
click_control.write_text("Hello World", interval=0.05)
# 拖拽操作
click_control.drag_from_to(100, 100, 500, 500, duration=1.0)
视觉识别操作
from macos_desktop_controller import vision_control
# 截图分析
screen = vision_control.capture_screen()
# 模板匹配
position = vision_control.find_template("target.png", threshold=0.8)
if position:
click_control.click_at(position[0], position[1])
工作流执行
from macos_desktop_controller import workflow
# 定义工作流
workflow_steps = [
{"action": "open_app", "params": {"app_name": "Safari"}},
{"action": "wait", "params": {"duration": 2}},
{"action": "click_template", "params": {"template": "search_bar.png"}},
{"action": "write_text", "params": {"text": "macOS automation"}},
{"action": "press_key", "params": {"key": "enter"}},
]
# 执行工作流
workflow.execute_steps(workflow_steps)
⚙️ 配置选项
配置文件 (config.json)
{
"default_timeout": 30,
"retry_count": 3,
"screenshot_dir": "/tmp/screenshots",
"template_dir": "/tmp/templates",
"log_level": "INFO",
"automation_delay": 1.0,
"mouse_speed": 0.5,
"keyboard_delay": 0.05
}
环境变量
export MACOS_CONTROLLER_LOG_LEVEL=INFO export MACOS_CONTROLLER_SCREENSHOT_DIR=/tmp/screenshots export MACOS_CONTROLLER_TEMPLATE_DIR=/tmp/templates
🎨 高级功能
1. 智能等待
# 等待元素出现
position = vision_control.wait_for_template("login_button.png", timeout=30)
if position:
click_control.click_at(position[0], position[1])
# 等待应用激活
app_control.wait_for_app_active("Safari", timeout=10)
2. 批量操作
# 批量点击多个位置
positions = [(100, 100), (200, 200), (300, 300)]
for pos in positions:
click_control.click_at(pos[0], pos[1])
time.sleep(0.5)
3. 条件执行
# 条件判断
if vision_control.find_template("error_dialog.png"):
# 处理错误
click_control.click_template("ok_button.png")
else:
# 正常执行
click_control.write_text("Success")
🔧 故障排除
常见问题
1. 权限问题
# 检查辅助功能权限 osascript -e 'tell application "System Events" to get the name of every process whose background only is false' # 添加到辅助功能白名单 sudo spctl --add /path/to/your/script
2. 图像识别失败
# 调试截图
vision_control.capture_screen("/tmp/debug.png")
# 调整阈值
position = vision_control.find_template("target.png", threshold=0.6)
3. 应用控制问题
# 检查应用状态
if app_control.is_app_running("Safari"):
print("Safari is running")
else:
print("Safari is not running")
调试模式
import logging logging.basicConfig(level=logging.DEBUG) # 启用调试模式 from macos_desktop_controller import set_debug_mode set_debug_mode(True)
📊 性能优化
1. 缓存机制
# 启用截图缓存 vision_control.enable_cache(True) # 设置缓存过期时间 vision_control.set_cache_timeout(5.0)
2. 批量处理
# 批量截图 screenshots = vision_control.capture_multiple_screens(["screen1", "screen2"]) # 批量模板匹配 results = vision_control.batch_find_templates(["template1.png", "template2.png"])
🔄 更新日志
v2.0.0 (2026-06-09)
- ✅ 完全重构为模块化架构
- ✅ 支持 macOS 14.x 兼容性
- ✅ 新增视觉识别模块
- ✅ 新增工作流管理
- ✅ 完善的错误处理机制
- ✅ 详细的日志记录
v1.0.0 (2026-06-08)
- ✅ 基础应用控制功能
- ✅ 鼠标键盘控制
- ✅ 基础截图功能
📄 许可证
MIT License - 详见 LICENSE 文件
🤝 贡献指南
- Fork 项目
- 创建功能分支
- 提交更改
- 推送到分支
- 创建 Pull Request
📞 支持
- 📧 Email: support@example.com
- 🐛 Issues: GitHub Issues
- 📖 文档: 项目 Wiki
此技能专为 macOS 14.x 设计,提供稳定可靠的桌面自动化能力。使用前请确保已正确配置所有依赖项和系统权限。
热门AI工具
相关专题
本专题围绕 Django REST Framework 展开,深入讲解 API 认证、JWT 鉴权、权限控制、接口安全防护以及防攻击策略设计。通过完整后端案例,帮助开发者构建安全可靠的 Web API 服务体系。
140
2026.06.29
本专题聚焦 Python FastAPI 框架在高性能接口与微服务开发中的应用,讲解异步请求处理、依赖注入机制、路由设计、数据库异步操作以及接口性能优化策略。结合实际项目案例,帮助开发者构建高并发、低延迟的现代化后端服务架构。
219
2026.06.16
聚焦Python在数据分析领域的核心应用,涵盖Pandas、NumPy、Matplotlib等库的使用技巧、真实业务场景案例及性能优化方法。
146
2026.06.04
以 Python 语言特性为基础,讲解经典设计模式的 Pythonic 实现方式,涵盖单例模式(模块级/元类/new)、工厂模式与注册表模式、策略模式(函数作为一等公民替代类继承)、观察者模式(信号与事件系统)、装饰器模式(语言原生支持)、代理模式(getattr 动态代理)、依赖注入(dependency-injector 库)、仓储模式(Repository Pattern)在数据层的应用,同时讲解 Python 项目的分层架构(领
424
2026.05.15
全面讲解 Python 应用的日志管理与监控方案,涵盖 logging 标准库的 Logger/Handler/Formatter/Filter 体系、日志级别规范与分模块配置、dictConfig / fileConfig 声明式配置、loguru 第三方库的简洁用法与结构化输出、日志轮转(RotatingFileHandler/TimedRotatingFileHandler)策略、JSON 格式结构化日志输出、ELK / Loki
186
2026.05.15
全面讲解 Python 中数据库操作的技术方案,涵盖 sqlite3 标准库的轻量数据库操作、PyMySQL / psycopg2 连接 MySQL / PostgreSQL、DB-API 2.0 规范与游标操作、SQL 注入防范与参数化查询、SQLAlchemy Core 表达式语言与 ORM 模型定义/查询/关联关系映射、Alembic 数据库迁移管理、连接池(SQLAlchemy Pool / DBUtils)配置与调优、异步数据
171
2026.05.11
以 FastAPI 为核心,讲解现代 Python Web API 的高效开发方式,涵盖路由定义与路径参数/查询参数/请求体绑定、Pydantic 模型的数据校验与序列化、依赖注入(Depends)系统的分层设计、中间件与 CORS 配置、OAuth2 + JWT 认证流程、后台任务(BackgroundTasks)、WebSocket 实时通信、SQLAlchemy 异步 ORM 集成、自动生成 OpenAPI/Swagger 交互文
316
2026.05.09
系统讲解 Python 的并发与并行编程体系,涵盖 GIL 全局解释器锁的原理与影响分析、threading 模块的线程创建/锁/事件/信号量、multiprocessing 模块的进程创建/进程间通信(Queue/Pipe/共享内存)、concurrent.futures 线程池与进程池的统一接口、I/O 密集型与 CPU 密集型任务的方案选择、多线程竞态条件排查与线程安全数据结构、subprocess 子进程管理,帮助开发者根据任务
114
2026.05.08
热门下载
相关下载
精品课程
