Token导航 LogoToken导航TokenDH.com
Iphone Mirroir Scenarios logo
AI代理stdio官方级别未说明来源级核验

Iphone Mirroir Scenarios

MCP Server

mirroir-skills是一个社区驱动的iOS自动化技能和模式库,为mirroir-mcp提供AI驱动的真实设备自动化能力,通过声明式模式和命令式技能实现跨应用工作流。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
PythonClaudeAI代理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jfarcand

提供方

jfarcand

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 scripts/validate-skills.py

详细介绍

mirroir技能

社区市场 模式技能 为了 mirroir mcp --AI驱动的真正iOS设备自动化。

模式vs技能

mirroir使用了两个互补的概念:

  • 模式 (声明性)-教mirroir iOS应用程序是什么样子以及它们的行为方式。只读知识。
  • 技能 (势在必行)——人工智能执行的循序渐进的流程。行动。

模式有三种尺度——相同的概念,不同的粒度:

比例描述内容位置
元素模式行级UI组件(表行、选项卡栏、按钮)patterns/elements/
屏幕图案根据元素组合(仪表板、提要)筛选原型patterns/screens/
应用程序模式应用级结构、障碍、跳过列表(App.md)patterns/apps/
mirroir-skills/
├── patterns/
│   ├── elements/    # 34 iOS UI element definitions
│   ├── screens/     # 7 screen archetype recipes
│   └── apps/        # APP.md app descriptions
├── skills/
│   ├── apps/        # Per-app automation flows
│   ├── workflows/   # Cross-app sequences
│   └── testing/     # Test flows
└── legacy/          # Old YAML skills (deterministic runners)

APP.md——描述你的应用程序

你能贡献的最有影响力的东西是你最喜欢的iOS应用程序的APP.md。告诉mirroir这个应用程序是什么,危险在哪里,以及会遇到什么障碍:

---
version: 1
app: Santé
locale: fr_CA
archetype: dashboard
obstacle_mode: auto
---

## Structure
Dashboard with 4 tabs: Résumé, Partage, Parcourir, Profil.

## Résumé Tab
- Summary cards for health metrics that drill down to charts

## Obstacles
- Health Access permission → tap "Autoriser"
- Notification permission → tap "Ne pas autoriser"

## Skip
- Supprimer les données de Santé
- Réinitialiser

archetype field告诉mirroir应用程序如何导航(dashboard, social-feed, settings-list, content-grid, conversation-list, utility-display, detail-form).在探索过程中,障碍物会自动排除。跳过元素永远不会被点击。结构作为AI上下文注入到生成的技能中。

什么是技能?

技能将多步骤iOS自动化描述为 意图,而不是脚本。像“点击电子邮件”这样的步骤并没有硬编码坐标——人工智能通过OCR找到元素,并适应屏幕布局、本地化和意外对话框。

主要格式为 技能.md --带有YAML前端的markdown文件:

---
version: 1
name: Send Slack Message
app: Slack
tags: ["slack", "messaging"]
---

Send a direct message to a contact in Slack.

## Steps

1. Launch **Slack**
2. Wait for "Home" to appear
3. Tap "Direct Messages"
4. Tap "${RECIPIENT}"
5. Tap "Message"
6. Type "${MESSAGE:-Hey, just checking in!}"
7. Press **Return**
8. Screenshot: "message_sent"

Legacy YAML format (used by mirroir test and mirroir compile)

name: Send Slack Message
app: Slack
description: Send a direct message to a contact in Slack

steps:
  - launch: "Slack"
  - wait_for: "Home"
  - tap: "Direct Messages"
  - tap: "${RECIPIENT}"
  - tap: "Message"
  - type: "${MESSAGE:-Hey, just checking in!}"
  - press_key: "return"
  - screenshot: "message_sent"

YAML文件位于 legacy/ 目录。它们被确定性使用 mirroir testmirroir compile 需要结构化步骤定义的CLI工具。使用 mirroir migrate 将YAML转换为SKILL.md格式。

安装

克劳德代码

claude plugin marketplace add jfarcand/mirroir-skills
claude plugin install skills@mirroir-skills

GitHub Copilot命令行界面

copilot plugin marketplace add jfarcand/mirroir-skills
copilot plugin install skills@mirroir-skills

两者都安装 技能.md 它教AI如何解释和执行技能步骤。

手册(所有其他客户)

克隆到您的全局技能目录:

git clone https://github.com/jfarcand/mirroir-skills ~/.mirroir-mcp/skills

或者放入项目本地目录:

git clone https://github.com/jfarcand/mirroir-skills .mirroir-mcp/skills

这两条路径都由递归扫描 list_skills.

可用技能

应用技能

技能描述
skills/apps/appstore/install-app在app Store中搜索并安装应用程序
skills/apps/calendar/create-event创建新的日历事件
skills/apps/calendar/check-today使用以下方式阅读今天的活动 remember 提取会议详细信息
skills/apps/clock/set-alarm创建新警报
skills/apps/clock/set-timer启动倒计时器并验证其是否正在运行
skills/apps/mail/email-triage检查收件箱中是否有未读电子邮件——根据内容存档或标记
skills/apps/mail/batch-archive将所有未读电子邮件循环存档,直到收件箱为空
skills/apps/maps/save-directions搜索目的地,获取路线,提取旅行时间 remember
skills/apps/photos/share-recent长按最近的照片并通过消息分享
skills/apps/settings/check-about通过以下方式提取设备型号、iOS版本和存储 remember
skills/apps/settings/check-about-fr与检查相同,但适用于法国地区(Réglages)
skills/apps/settings/list-apps从iPhone存储中列出已安装的应用程序大小
skills/apps/settings/uninstall-app通过“设置”>“通用”>“iPhone存储”删除应用程序
skills/apps/slack/send-message向联系人发送DM
skills/apps/slack/check-unread使用频道名称和消息预览读取未读通知
skills/apps/weather/check-forecast提取当前状况和10天预测 remember
skills/apps/weather/add-city将城市添加到天气

测试

技能描述
skills/testing/expo-go/login-flow使用条件分支对注册与现有帐户进行测试登录
skills/testing/expo-go/shake-debug-menu通过shake打开React Native调试菜单
skills/testing/expo-go/qa-smoke-pack视觉回归测试——截图关键屏幕和使用 remember 检测UI异常

工作流

技能描述
skills/workflows/morning-briefing阅读天气+日历,撰写并通过iMessage发送晨间总结
skills/workflows/commute-eta-notify从Waze获取预计到达时间,通过消息发送给你的老板
skills/workflows/standup-autoposter从日历中阅读今天的会议,在Slack上发布会议记录

工作流演示 跨应用数据提取 --AI从一个应用程序中读取动态内容,并将其组合成另一个应用中的动作。这是只有AI执行者才能做到的。

变量替换

技能使用 ${VAR} 从环境变量中解析出占位符。使用 ${VAR:-default} 用于回退值。

# Set credentials for testing skills
export TEST_EMAIL=user@example.com
export TEST_PASSWORD=secret

# Or use direnv
echo 'export TEST_EMAIL=user@example.com' >> .envrc
direnv allow

没有默认值的未求解变量保持不变——人工智能将在继续之前询问值。

条件

技能支持分支 condition 步骤。AI检查屏幕并执行匹配的分支:

steps:
  - launch: "Mail"
  - wait_for: "Inbox"
  - condition:
      if_visible: "Unread"
      then:
        - tap: "Unread"
        - tap: "Archive"
        - assert_visible: "Archived"
      else:
        - screenshot: "empty_inbox"

条件步骤包括:

  • if_visibleif_not_visible --屏幕上要检查的标签
  • then (必填)--条件为真时运行的步骤
  • else (可选)--条件为false时运行的步骤

分支内的步骤是常规步骤,包括嵌套条件。看 skills/apps/mail/email-triage.md 举个完整的例子。

重复

技能支持循环 repeat 步骤。AI在每次迭代前检查屏幕状态:

steps:
  - launch: "Mail"
  - wait_for: "Inbox"
  - repeat:
      while_visible: "Unread"
      max: 10
      steps:
        - tap: "Unread"
        - tap: "Archive"
        - tap: "/APP.md` --描述应用程序(结构、障碍、原型)
   - `patterns/elements/` --新UI组件的元素模式
   - `patterns/screens/` --屏幕原型食谱
   - `skills/apps//` --单应用程序自动化
   - `skills/testing//` --移动测试和QA
   - `skills/workflows/` --跨应用程序提取数据的多应用程序序列
1. 使用SKILL.md格式:

version: 1 name: Human-readable name app: App Name ios_min: "17.0" locale: "en_US" tags: ["app-name", "category", "action-type"]


What this skill does.

## Steps

1. Launch App Name 2. Wait for "Expected Element" to appear 3. Tap "Element Label" 4. Type "${VAR:-sensible default}" 5. Verify "Success Indicator" is visible 6. Screenshot: "result"

1. 使用 `${VAR:-default}` 对于可配置的值,永远不要硬编码凭据
1. 至少包括一个“验证”步骤,以便技能能够自我验证
1. 提交拉取请求

## 许可证

Apache 2.0——请参阅 [许可证](LICENSE)。参见 [贡献者许可协议](CLA.md) 对于贡献者条款。

目录标签

目录标签

PythonClaudeAI代理iOS自动化本地部署AI驱动跨应用工作流社区驱动模式匹配

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP