【免费下载链接】MooTool
Handy tool set for developers
本文围绕 MooTool 开源仓库根目录 README.md 展开,系统梳理这个"为开发者打造的手边工具箱"的整体架构:7 条独立产品线的技术选型与定位、以 MooTool Next Electron 为入口的 MCP/Skill AI 集成方案、Java Swing 原版的全功能地图,以及多产品发布约定与 Maven 打包流程。读完本文,你将掌握如何选择合适的产品线、如何通过「一键安装」把 MooTool 接入 Codex / Claude Code / Cursor,以及如何为本机构建 Java 版安装包。
一、项目定位与整体形态
MooTool 是面向开发者的跨平台桌面工具箱,覆盖 Windows、Linux、macOS 三大平台。项目名中的 "Moo" 取自作者女儿的名字,作者用它支撑自己的日常开发工作,并坚持用 Swing 完成 Java 桌面端——这在如今很少见,但项目仍然持续推进。
从仓库结构看,MooTool 已经演进为**"同一仓库、多条独立产品线"**的形态。根目录下并存 src/(Java 原版)、next/(Electron 重写版)、next-tauri/、next-macos-native/、next-flutter/、next-compose/、next-fx/ 七个产品目录,每个产品拥有独立的代码、构建、版本、安装身份、数据与更新通道,可并排安装、独立演进(见 README.md 产品线表格)。
各产品线的技术选型与状态如下表所示(以当前仓库实际内容为准):
| 产品线 | 技术栈 | 目标平台 | 当前状态 |
|---|---|---|---|
| MooTool Next Electron | Electron + Vite + React + TypeScript | Windows / Linux / macOS | 稳定版 1.3.3,官方推荐的主力桌面版 |
| MooTool Java | Java + Swing | Windows / Linux / macOS | 稳定版 1.8.7,原版,仍在维护 |
| MooTool Next Tauri | Tauri 2 + Rust + React + TypeScript | Windows / Linux / macOS | Release candidate 0.1.0-rc.2,25 个工具,独立存储与更新 |
| MooTool Next macOS Native | SwiftUI + AppKit + 系统框架 | macOS 14+ | 预发布 0.8.0,原生工作区、JSON 库、随手记与图片附件 |
| MooTool Next Flutter | Flutter + Dart | Windows / Linux / macOS | 0.1.0 开发版,工具与桌面通道已落地 |
| MooTool Next Compose | Kotlin + Compose Multiplatform Desktop | Windows / Linux / macOS | 0.1.0 开发版,macOS app-image 构建已验证,自带 JVM 运行时 |
| MooTool Next FX | OpenJDK + OpenJFX(JavaFX) | Windows / Linux / macOS | 0.1.0-SNAPSHOT 早期开发版,macOS app-image 打包已实现 |
注意:
next-macos-native/是当前的 macOS 原生产品线;根目录下的macos/目录保存的是早期 SwiftUI 原型,两者不是一回事。
从源码佐证:Electron 版的工程入口与脚本定义在 next/package.json,产品版本号 1.3.3、应用 ID com.rememberber.mootool.next.electron、macOS 目标为 DMG、Windows 为 NSIS + portable、Linux 为 AppImage + deb,均可在此文件中核对。
二、用 MooTool 接入本地 AI:MCP 与 Skill 一键集成
这是 MooTool Next Electron(1.2.0 起)最具特色的能力:让本地 AI 客户端通过 MCP(Model Context Protocol)或独立 Skill 直接调用 MooTool 工具。关键点是工具使用应用自带的运行时,无需单独安装 Node.js,且 MooTool 窗口关闭时调用依然可用(详见 next/README.md AI integration 章节)。
2.1 支持的客户端与集成模式
| 客户端 | 一键集成方式 |
|---|---|
| Codex | MCP、Skill,或两者同时 |
| Claude Code | MCP、Skill,或两者同时 |
| Cursor | 仅 MCP |
其他支持本地 stdio MCP 的客户端,可通过设置页的「复制 MCP 配置」手动接入。需要说明的是,生成的可执行文件路径仅适用于同一台机器上的本地客户端,不能用于远程云端会话。
2.2 四个步骤完成接入
- 固定安装位置:macOS 移入 Applications、Windows 使用安装版、Linux 使用 deb 安装。AppImage、Windows portable 以及 macOS App Translocation 运行时不支持注册一键集成。
- 打开设置:进入「设置 → AI 接入」,选择客户端与集成模式(MCP / Skill / MCP + Skill),查看生成配置的预览。
- 一键安装:MooTool 会先完成 MCP 初始化、工具发现和一次 JSON 调用,再写入配置;写入前会备份已有文件。也可随时用「测试连接」按需验证运行时。
- 重启客户端:重启 AI 客户端或重新加载 MCP / Skills,并按提示启用工具。然后可以尝试「用 MooTool 格式化这段 JSON 并按 key 排序」。
各客户端对应的配置写入位置(来自 AI 接入指南):
| 客户端 | MCP 用户配置 | Skill 用户目录 |
|---|---|---|
| Codex | $CODEX_HOME/config.toml(默认 ~/.codex/config.toml) | ~/.agents/skills/mootool/ |
| Claude Code | ~/.claude.json(支持 CLAUDE_CONFIG_DIR) | ~/.claude/skills/mootool/(支持 CLAUDE_CONFIG_DIR) |
| Cursor | ~/.cursor/mcp.json(保留 JSONC 注释) | 当前入口仅安装 MCP |
MCP 服务名固定为 mootool。
2.3 可调用的 11 个工具
接入后 AI 客户端可调用以下工具(协议定义可在 next/electron/mcp/tools.ts 中核对):
| 工具 | 能力 |
|---|---|
mootool_json_format | JSON 格式化/压缩、按 key 排序、重复 key 检测 |
mootool_json_query | JSONPath 查询(禁用表达式执行) |
mootool_encode | Base64 / URL / 十六进制 / Unicode 编解码(URL 支持 UTF-8 / GB2312) |
mootool_timestamp | 时间戳与日期互相转换,支持指定时区和秒/毫秒单位 |
mootool_diff | 文本比较、统一 diff 与行数统计 |
mootool_hash | MD5、SHA-1、SHA-256/384/512 文本摘要 |
mootool_uuid | 生成 1–100 个 UUID v4 |
mootool_notes_search / mootool_notes_read | 搜索、分页读取已授权的随手记库 |
mootool_json_documents_search / mootool_json_documents_read | 搜索、分页读取已授权的 JSON 文档库 |
从源码看,这些工具的调用链路非常清晰:define() 为每个工具声明 zod 输入 Schema 并生成 draft-7 格式的 inputSchema;调用时先 schema.parse 校验,再复用前端既有工具函数(如 formatJsonAdvanced、compareText、encodeTools、timeTools),结果超过 1 MB 会报错,任何异常都通过 MCP isError 返回而不会伪装成功。限制同样写在协议里:普通文本上限 100,000 字符、diff 单侧上限 8,000 字符、结果上限 1 MB(源码 tools.ts)。
2.4 文档只读访问(默认关闭)
- 在「设置 → AI 接入」中分别开启「允许读取随手记」和「允许读取 JSON 文档」,页面会显示授权的实际目录。
- 搜索支持按标题、相对路径、内容匹配;读取随手记会解析 YAML 元数据只返回正文,JSON 文档返回原文。
- 分页参数:搜索每页最多 50 条;读取每页最多 50,000 字符;单文件最多 2 MB;单次搜索最多检查 4,000 个目录项、读取约 10 MB 内容、目录深度最多 24。
- 安全边界:排除隐藏文件、符号链接以及文档库根目录
.gitignore忽略的文件;禁止绝对路径与目录穿越;工具不会创建、修改或删除文档。 - 撤销行为:关闭开关在下一次调用生效;修改文档库位置会撤销两个库的授权;授权目录每次调用重新检查权限。
- 工具不访问应用数据库、剪贴板或凭证,不执行 Shell、不发网络请求、不保存调用历史。
2.5 修复、更新与卸载
接入后设置页会报告每个客户端接入的状态:未安装、已安装、需要修复或冲突。移动/升级 MooTool 或 Skill 文件丢失后,打开新位置的应用并点击「一键修复 / 更新」即可。安装器不会覆盖用户改写的同名配置;用户改写过的条目会显示为冲突,需先保存或移走自定义内容。mootool 的安装记录与文档授权保存在 MooTool 用户数据目录的 ai-integration/ 中,默认以当前用户可读写权限保存。点击「卸载所选接入」只移除安装器管理的 mootool MCP 项及 SKILL.md、runtime.md,其他文件保留。
2.6 Skill 独立使用方式
Skill 安装包包含 SKILL.md 与按安装路径生成的 runtime.md。在无 MCP 连接时,Agent 读取 runtime.md,先执行 --list 获取实时参数 Schema,再把 JSON 参数通过标准输入传给 --call TOOL_NAME。命令返回 MCP 结果 JSON,失败时退出码非零。macOS/Linux 路径按 POSIX Shell 转义;Windows 提供 PowerShell 命令并显式检查退出码,以确保等待 GUI 子系统进程完成。
开发验证命令(来自 AI 接入指南):
npm run build
npm run test
npx playwright test tests/electron/ai-integration.spec.ts
node out/main/mcp.js --list
# 打包后:验证当前操作系统上真实的 ASAR 入口
node scripts/test-packaged-ai.mjs
设置 MOOTOOL_TEST_EXECUTABLE 为打包后应用可执行文件的绝对路径,可对同一安装流程执行打包版 E2E(含 ASAR 内 MCP 入口的启动验证);设置 MOOTOOL_CODEX_EXECUTABLE 可额外运行真实的 Codex CLI 验收。
三、MooTool Java:原始 Swing 版的完整功能地图
根目录 README 的"feature map"是 MooTool Java 的功能总览,共约 30 个功能模块。这里完整继承并补充关键细节。
3.1 内容与文档工具
- Quick Note(随手记):多语言语法高亮;SQL/JSON/Java 通用代码格式化;有序/无序列表;Markdown 实时预览;Markdown 插入图片;导出/批量导出、搜索、全局查找;文档信息(创建/修改时间、字数等);链接检测与点击打开;字体、字号、列表颜色。侧边栏还提供 Quick replace(快速替换)面板,对选中的行执行批量文本操作,包括:自动保存、去首尾空格、删除空行、删除 Tab、科学计数法 ↔ 普通数字、普通数字 ↔ 千分位分隔、snake_case ↔ camelCase、大小写转换、删除换行、换行 ↔ 逗号(
,、','、","三种)、Tab ↔ 换行、去重、去重并统计次数、转义/反转义、行反转、按 A→Z / Z→A 排序、按拼音排序。 - JSON:格式化(可按 key 排序、忽略大小写、检查重复 key)、压缩、导出/批量导出、查找;键值互换;JSON ↔ XML;JavaBean ↔ JSON;转义/反转义;JSONPath 取值与可视化 JSONPath 选择器。
- Text diff:左右对照差异(同步滚动)、统一 diff、复制 diff。底层基于
java-diff-utils(Myers 行级 diff + unified diff 生成),见 pom.xml 与 DiffServiceTest.java。
3.2 开发辅助工具
- Time convert:日期/时间 ↔ 毫秒/秒时间戳互转、History、全屏时钟、时区选择器与快捷入口。
- Translation:20+ 语言自动检测(中英日韩法西德俄等);Google/Bing 自动翻译与故障回退;生词本(搜索、创建、编辑、删除、重译)与翻译历史。翻译器工厂与单测见 src/main/java/com/luoboduner/moo/tool/util/translator/ 及 GoogleTranslatorUtilTest.java。
- HTTP:GET/POST/PUT/DELETE/HEAD/PATCH/OPTIONS;导入 cURL;格式化 HTTP 头/体;请求管理、请求历史、搜索。
- UA analysis:解析 User-Agent(浏览器、引擎、系统、设备类型/品牌/型号);检测移动端与爬虫;预设常见 UA;粘贴/清空;历史。
- Encode / decode:Native ↔ Unicode、URL 编解码、Native ↔ hex、Native ↔ ASCII(十进制/十六进制码点)、ASCII → Native,全部带历史。实现类见 EnCodeForm.java。
- Cron:表达式构建器;解析 Linux 5 字段 / Quartz 6–7 字段;校验;转自然语言;计算未来 10 次执行时间;收藏;常用示例。核心依赖
cron-utils(pom.xml),并有 CronExpressionUtilTest.java。 - Regex:匹配测试、收藏正则、常用正则模式、历史。
- Java:Java/Groovy 格式化与高亮、解释执行、历史。底层使用
groovy与javaparser-core(pom.xml)。 - Reformat:格式化上传的文件(Nginx 配置、XML、HTML、Java);粘贴即格式化;历史。
- Config conversion:Properties ↔ YAML、YAML 校验(语法 + 行号)、YAML 格式化;JSON ↔ YAML 标记为 TODO。YAML 校验有独立测试 YamlValidateUtilTest.java。
3.3 网络、系统与信息安全工具
- Host:格式化/高亮、管理/查看系统 hosts、导入/导出、搜索与查找替换。
- Network / IP:IP 查询、域名查询、netstat、ping、IPv4 ↔ long 互转、WHOIS、刷新 DNS。
- Crypto / random:支持国密 SM2/SM3/SM4;对称加解密 AES/DES/SM4;非对称 RSA、SM2(加解密、签名、验签);摘要 MD5/SHA1/SHA256/SHA384/SHA512/SM3(支持文件与文本);Base64/Base32 编解码;随机 UUID、随机数字/字母/字母数字字符串、随机强密码(可自定义长度);历史。底层依赖 BouncyCastle(
bcprov-jdk18on)与sm-crypto生态,见 pom.xml。 - Environment:系统环境变量表格、Java properties、刷新/导出。
- System info:通过 OSHI 采集本机系统/硬件信息(系统、计算机、固件、主板、CPU、内存、存储、网络),首次访问或刷新时加载(依赖
oshi-core,pom.xml)。 - Image assistant:本地图床、截图、剪贴板导入/导出、缩放工具栏、图片 Base64 编解码、图片压缩、水印、OCR(Tesseract,依赖
tess4j)。 - PDF:拆分与合并(依赖 iText
itextpdf)。
3.4 其他工具
- QR code:生成二维码(自定义尺寸、纠错级别、Logo;基于 ZXing
core);解码二维码;从剪贴板读取;历史。 - Calculator:四则运算、进制转换、最大公约数、最小公倍数、排列组合、历史。
- Color board:主题/标准色板、屏幕取色、自由取色、颜色格式转换、收藏颜色、颜色运算(反色、相交、相加、求差、平均)、历史。
- Protobuf:JSON ↔ Protobuf 二进制(Hex/Base64 输出、格式化
.proto定义);无需.proto的 wire format 解码;Hex/Base64 互转;历史。 - Message Board(留言板):全屏文字演示、预设、主题、对齐、自动缩放、演示期间防休眠(Electron 版亦实现,见 displaySleepService.ts)。
- App & settings:同步与备份(Git 同步、数据导出)、键盘快捷键、自定义数据目录、启动时检查更新、SQL 方言、系统托盘、窗口行为(macOS/Windows 关闭按钮隐藏到 Dock/任务栏保持运行,Linux 关闭即退出)、外观(Flat Light/Dark、macOS、One Dark、Monokai 等主题、强调色、跟随系统强调色、沉浸式窗口背景、启动最大化、仅图标标签模式)、布局(面板位置上下左右、全局字体与字号)。
History 子页是多数模块的通用能力:搜索、应用、复制输入/输出、删除、清空全部。
四、多产品发布约定与版本管理
根目录 RELEASE_CONVENTIONS.md 规定了"同一仓库、多个独立产品线"的发布纪律,核心要点:
- 版本号:各产品遵循语义化版本并独立演进,允许不同产品拥有相同的
1.0.0。 - Git tag 唯一性:除历史 Java 产品线继续使用
v{version}外,新产品 tag 必须带产品 ID 前缀:next-electron-v{version}、next-tauri-v{version}、next-macos-native-v{version}。例如 Java 1.8.7 →v1.8.7,Electron 1.3.3 →next-electron-v1.3.3。 - Release 约定:每个 tag 对应一个且仅一个产品的 Release;标题必须包含完整产品名与版本号;正文依次包含英文、中文、日文三部分;只上传当前产品的安装包与更新元数据。
Latest规则:仓库只有一个全局Latest,当前表示主力稳定产品 MooTool Next Electron;Java 与其他产品的发布必须显式make_latest: false;beta/rc 必须标记 pre-release。- 更新通道隔离:Java 使用
version_summary.json与download_links.json;Electron 使用根目录 update-manifest.json 的next-electron节点,客户端只比较自身产品节点的版本。更新清单中每个版本都带平台/架构/包型对应的安装包文件名与 SHA-512 校验值。
五、MooTool Java 本地构建与打包
Java 原版的最低 JDK 为 25(pom.xml 中 maven.compiler.release=25、java.version=25)。构建前需按仓库 README 构建说明 配置 IntelliJ IDEA(参见 assets/material/gui_build.png)并执行 maven clean。
5.1 准备本机打包用 JDK
打包用 JDK 可下载并缓存到本地:
- JDK 归档:
downloads/jdks/ - 解压后的 JDK:
jdks/<os>/<arch>/home
下载脚本使用 Eclipse Temurin 25,且只复用匹配的 JDK;加 --force 可替换旧缓存。python3 scripts/prepare_jdks.py 支持的目标键(源码 prepare_jdks.py)为 mac-x64、mac-arm64、windows-x64、linux-x64:
python3 scripts/prepare_jdks.py --targets mac-x64
python3 scripts/prepare_jdks.py --targets mac-arm64
python3 scripts/prepare_jdks.py --targets windows-x64
python3 scripts/prepare_jdks.py --targets linux-x64
只解析全部下载目标而不实际下载:
python3 scripts/prepare_jdks.py --targets all --resolve-only
5.2 分平台打包命令
默认 mvn clean package 使用当前 JDK 并构建 macOS 通用(Universal)包。其余平台通过 Maven profile 切换(定义于 pom.xml):
mvn clean package -Pmac-intel -Dmaven.test.skip=true
mvn clean package -Pmac-apple-silicon -Dmaven.test.skip=true
mvn clean package -Pwindows-x64 -Dmaven.test.skip=true
mvn clean package -Plinux-x64 -Dmaven.test.skip=true
四个平台 profile 会在 validate 阶段校验 jdks/ 下的缓存 JDK 是否就绪;未先运行 prepare_jdks.py 会快速失败。产物目录:
- 默认:
target/ - Intel Mac:
target/mac-intel/ - Apple Silicon Mac:
target/mac-apple-silicon/ - Windows x64:
target/windows-x64/ - Linux x64:
target/linux-x64/
5.3 打包细节(从 pom.xml 提炼)
- 打包插件为
io.github.fvarrui:javapackager(1.7.6),mac 平台生成 tarball、Windows 生成 zipball。 - 通过
<modules>显式声明 JRE 模块(java.base、java.desktop、java.net.http、java.sql、jdk.compiler等),跳过 jdeps 对依赖 jar 的扫描,规避 jdom/oshi 的 JPMS 问题。 <additionalModules>额外加入jdk.crypto.ec(国密/ECC 支持)与jdk.charsets。- 打包时附带
MooTool.l4j.ini作为额外资源。 - 启动 JVM 参数(
vmArgs):-Dswing.aatext=true -XX:+UseZGC -XX:-ZUncommit -Xms128m -Xmx512m,并带--add-exports jdk.compiler/com.sun.tools.javac.*=ALL-UNNAMED以支持 Java/Groovy 解释执行。 - 主类为
com.luoboduner.moo.tool.App(入口源码 App.java),启动时会依次完成国际化初始化、Tesseract 环境配置、macOS 系统菜单适配(About/Preferences/Quit)、FlatLaf 主题注册,随后异步加载主窗口并启动 EDT 延迟监控。 bundleJre=true,安装包内置 JRE,普通用户无需预装 Java。
六、各产品线的源码与开发入口
如果你要深入研究某一产品线,仓库 README 的产品表格提供了各自的独立 README 作为入口:
- Electron:源码与测试分布在 next/src/features(工具页面)、next/electron(主进程、MCP、托盘、更新)与 next/tests/electron(Playwright E2E)。常用命令:
npm install、npm run dev、npm run typecheck、npm run build。命令面板是 Electron 版的高频入口:主窗口内按Cmd+K(macOS)/Ctrl+K(Windows/Linux),支持动作搜索、结果预览、固定常用动作、全局快捷键(默认Cmd/Ctrl+Shift+Space,在「设置 → 键盘快捷键 → 全局命令面板」中启用,默认关闭)与托盘快捷动作。 - Tauri:Rust 后端在 next-tauri/src-tauri/src,前置条件为 Node.js 20+、Rust stable 与平台系统依赖。
- macOS Native:核心逻辑在 next-macos-native/Sources,构建需 Xcode 26 / CLT 26(Swift 6.2+),应用运行最低 macOS 14。构建命令:
./scripts/build-app.sh --dmg(可用--arch arm64|x86_64|universal)。本地检查可用./scripts/check-core.sh(解决 CLT 无 XCTest 的限制)。 - Flutter:
next-flutter/,需要 Flutter 3.47.2 / Dart 3.13,开发时务必使用独立的--data-dir避免污染真实数据。 - Compose:
next-compose/,需 JDK 21 + Gradle Wrapper 8.14.3,macOS 的jpackage会拒绝0.x作为--app-version,安装包元数据映射为1.1.0(界面仍显示 0.1.0)。 - FX:
next-fx/,需 JDK 25,安装包自带匹配架构的 OpenJDK 与 JavaFX 运行时,普通用户无需安装 Java。
七、下载与更多资源
稳定版本下载入口(来自 README Download 章节):
- MooTool Next Electron 1.3.3(推荐,主力稳定版)
- MooTool Java 1.8.7(原版)
- MooTool Next Tauri 0.1.0-rc.2(release candidate)
- MooTool Next macOS Native 0.8.0(预发布)
Flutter / Compose / FX 目前为开发版,请按各产品 README 进行源码构建;开发版本号不代表存在公开的稳定安装包。
如需深入了解某一产品线或功能模块的边界与验收记录,仓库内的深度文档包括:AI 接入指南、Electron 窗口材质与窗口布局、批量重命名边界、图片缩放行为、OCR 行为、Tauri 功能基线、macOS Native 功能对齐清单 等。
【免费下载链接】MooTool
Handy tool set for developers
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



