一个基于PySide6的MAAFramework图形化操作界面
85
stars
1,551
commits
Python
primary language
Sep 8, 2026
updated
基于 PySide6 与 MaaFramework 的跨平台 GUI,完整支持 interface v2 协议,开箱即用地编排、运行和扩展自动化流程。
MFW-ChainFlow Assistant 旨在为 MaaFramework 用户提供开箱即用的可视化运行器,覆盖配置管理、任务调度、通知联动以及自定义扩展,降低自动化流程的开发和运维成本。
CFA_setting.json 中启用内置模式,自动转换为 custom 加载方式,使用 UI 内部环境,更小更轻盈CFA_setting.json 的 update_flag 一致时自动启用,速度更快且无需重启interface.json 的任务节点下添加 speedrun 块定义周期与次数控制,并设置 speedrun.enabled: true 后生效。MFW 开关写在分隔符 -- 之前;之后仅传给 Qt。
--config-id <ID>:使用指定配置 ID 启动(可用 --config-id=<ID>)--direct-run:启动后直接运行任务--force-restart:强制启动,会关闭同目录下正在运行的其他 MFW 实例--reuse-existing:优先复用已有实例;单独使用不会运行任务,只有同时指定 --direct-run 才会执行(已有实例忙时跳过;再与 --force-restart 同时使用时先停止当前任务再运行,不关闭进程)--dev:启用调试模式(显示测试页)示例:
MFW.exe --direct-run --force-restart --config-id c_xxxMFW.exe --direct-run --reuse-existing --config-id c_xxx当前支持:钉钉、飞书、SMTP、WxPusher、企业微信机器人、Gotify,可按需在配置中启用。
支持单次、每日、每周、每月的定时运行,可选择强制启动或按队列执行,列表中可直接启用/禁用或删除计划。
在资源包根目录放置 CFA_setting.json,当本地与远端仓库中的 update_flag 字段一致时,会启用热更新模式,速度更快并且无需重启。
{
"update_flag": "1",
"embedded": false
}
| 字段 | 必填 | 说明 |
|---|---|---|
update_flag | 是 | 热更新标识;本地与远端一致时启用热更新 |
embedded | 否 | Agent 内置模式开关,见下方 嵌入式 Agent |
兼容旧版:若不存在
CFA_setting.json,会回退读取update_flag.txt(仅提供update_flag,不含embedded)。
参考 MaaFramework 的自定义动作/识别器说明:
MFW.app 内部文件。custom.json 中声明自定义对象,并在 interface.json 的 custom 键指出 custom.json 路径({custom_path} 默认为仓库根目录下的 custom/)。示例 custom.json 片段:
{
"动作名字1": {
"file_path": "{custom_path}/任意位置/任意名字_动作1.py",
"class": "动作对象1",
"type": "action"
},
"识别器名字1": {
"file_path": "{custom_path}/任意位置/任意名字_识别器1.py",
"class": "识别器对象1",
"type": "recognition"
}
}
在 pipeline 中引用:
"我的自定义任务": {
"recognition": "Custom",
"custom_recognition": "识别器名字1",
"action": "Custom",
"custom_action": "动作名字1"
}
自定义类示例:
class 动作对象1(CustomAction):
def apply(self, context, ...):
image = context.tasker.controller.cached_image
# 在此处进行图像处理并返回结果
更多示例可参考仓库:MAA_Punish/assets。
在 CFA_setting.json 中设置 "embedded": true,系统会自动将 agent 转换为 custom 加载方式。这种方式使用 UI 内部环境运行,无需独立进程,资源占用更小、启动更快。热更新完成后,该值会同步写入 interface.json 的 agent.embedded 字段。
示例 CFA_setting.json:
{
"update_flag": "1",
"embedded": true
}
interface.json 中仍需保留 agent 入口配置,例如:
{
"agent": {
"child_args": ["{PROJECT_DIR}/agent/main.py"]
}
}
启用内置模式后,系统会自动:
custom.json 配置agent 字段,并额外注入 custom 字段用于加载生成产物deploy/install.yml 中的 MaaXXX 替换为你的项目名。.github/workflows 目录。interface.json、资源目录等代码或描述文件放入发行根macOS 发行物使用 Nuitka app-dist,目录结构如下:
MFW/
├── MFW.app/
├── MFWUpdater/
│ └── MFWUpdater
├── maafw/
├── interface.json
├── resource/
├── bundle/
└── config/
请整体移动、解压或更新 MFW/ 目录,不要只移动 MFW.app。应用包保持只读,资源热更新写入外置 resource/ / bundle/;UI 全量更新由外置 MFW-Updater(MIT)独立仓库编译的 MFWUpdater/ 在主程序退出后整包替换 MFW.app。
MFW-PyQt6 使用 AGPL-3.0 许可证 开源。
MFAAvalonia
基于 Avalonia 的 MAAFramework 通用 GUI 项目 | A universal GUI project for MAAFramework based on Avalonia
MFW-ChainFlow Assistant 参考了 MFAAvalonia 的布局,但未使用其任何源代码。
MFWPH
基于 MaaFramework 的 UI 启动器,可加载与管理多种自动化资源脚本
MFW-ChainFlow Assistant 参考了 MFWPH 的布局,但未使用其任何源代码。
感谢所有为 MFW-PyQt6 做出贡献的开发者。
完整贡献者列表请参阅 AUTHORS.md。
Python
100.0%
一个基于PySide6的MAAFramework图形化操作界面
85
stars
1,551
commits
Python
primary language
Sep 8, 2026
updated
基于 PySide6 与 MaaFramework 的跨平台 GUI,完整支持 interface v2 协议,开箱即用地编排、运行和扩展自动化流程。
MFW-ChainFlow Assistant 旨在为 MaaFramework 用户提供开箱即用的可视化运行器,覆盖配置管理、任务调度、通知联动以及自定义扩展,降低自动化流程的开发和运维成本。
CFA_setting.json 中启用内置模式,自动转换为 custom 加载方式,使用 UI 内部环境,更小更轻盈CFA_setting.json 的 update_flag 一致时自动启用,速度更快且无需重启interface.json 的任务节点下添加 speedrun 块定义周期与次数控制,并设置 speedrun.enabled: true 后生效。MFW 开关写在分隔符 -- 之前;之后仅传给 Qt。
--config-id <ID>:使用指定配置 ID 启动(可用 --config-id=<ID>)--direct-run:启动后直接运行任务--force-restart:强制启动,会关闭同目录下正在运行的其他 MFW 实例--reuse-existing:优先复用已有实例;单独使用不会运行任务,只有同时指定 --direct-run 才会执行(已有实例忙时跳过;再与 --force-restart 同时使用时先停止当前任务再运行,不关闭进程)--dev:启用调试模式(显示测试页)示例:
MFW.exe --direct-run --force-restart --config-id c_xxxMFW.exe --direct-run --reuse-existing --config-id c_xxx当前支持:钉钉、飞书、SMTP、WxPusher、企业微信机器人、Gotify,可按需在配置中启用。
支持单次、每日、每周、每月的定时运行,可选择强制启动或按队列执行,列表中可直接启用/禁用或删除计划。
在资源包根目录放置 CFA_setting.json,当本地与远端仓库中的 update_flag 字段一致时,会启用热更新模式,速度更快并且无需重启。
{
"update_flag": "1",
"embedded": false
}
| 字段 | 必填 | 说明 |
|---|---|---|
update_flag | 是 | 热更新标识;本地与远端一致时启用热更新 |
embedded | 否 | Agent 内置模式开关,见下方 嵌入式 Agent |
兼容旧版:若不存在
CFA_setting.json,会回退读取update_flag.txt(仅提供update_flag,不含embedded)。
参考 MaaFramework 的自定义动作/识别器说明:
MFW.app 内部文件。custom.json 中声明自定义对象,并在 interface.json 的 custom 键指出 custom.json 路径({custom_path} 默认为仓库根目录下的 custom/)。示例 custom.json 片段:
{
"动作名字1": {
"file_path": "{custom_path}/任意位置/任意名字_动作1.py",
"class": "动作对象1",
"type": "action"
},
"识别器名字1": {
"file_path": "{custom_path}/任意位置/任意名字_识别器1.py",
"class": "识别器对象1",
"type": "recognition"
}
}
在 pipeline 中引用:
"我的自定义任务": {
"recognition": "Custom",
"custom_recognition": "识别器名字1",
"action": "Custom",
"custom_action": "动作名字1"
}
自定义类示例:
class 动作对象1(CustomAction):
def apply(self, context, ...):
image = context.tasker.controller.cached_image
# 在此处进行图像处理并返回结果
更多示例可参考仓库:MAA_Punish/assets。
在 CFA_setting.json 中设置 "embedded": true,系统会自动将 agent 转换为 custom 加载方式。这种方式使用 UI 内部环境运行,无需独立进程,资源占用更小、启动更快。热更新完成后,该值会同步写入 interface.json 的 agent.embedded 字段。
示例 CFA_setting.json:
{
"update_flag": "1",
"embedded": true
}
interface.json 中仍需保留 agent 入口配置,例如:
{
"agent": {
"child_args": ["{PROJECT_DIR}/agent/main.py"]
}
}
启用内置模式后,系统会自动:
custom.json 配置agent 字段,并额外注入 custom 字段用于加载生成产物deploy/install.yml 中的 MaaXXX 替换为你的项目名。.github/workflows 目录。interface.json、资源目录等代码或描述文件放入发行根macOS 发行物使用 Nuitka app-dist,目录结构如下:
MFW/
├── MFW.app/
├── MFWUpdater/
│ └── MFWUpdater
├── maafw/
├── interface.json
├── resource/
├── bundle/
└── config/
请整体移动、解压或更新 MFW/ 目录,不要只移动 MFW.app。应用包保持只读,资源热更新写入外置 resource/ / bundle/;UI 全量更新由外置 MFW-Updater(MIT)独立仓库编译的 MFWUpdater/ 在主程序退出后整包替换 MFW.app。
MFW-PyQt6 使用 AGPL-3.0 许可证 开源。
MFAAvalonia
基于 Avalonia 的 MAAFramework 通用 GUI 项目 | A universal GUI project for MAAFramework based on Avalonia
MFW-ChainFlow Assistant 参考了 MFAAvalonia 的布局,但未使用其任何源代码。
MFWPH
基于 MaaFramework 的 UI 启动器,可加载与管理多种自动化资源脚本
MFW-ChainFlow Assistant 参考了 MFWPH 的布局,但未使用其任何源代码。
感谢所有为 MFW-PyQt6 做出贡献的开发者。
完整贡献者列表请参阅 AUTHORS.md。
Python
100.0%