【免费下载链接】MooTool
Handy tool set for developers
MooTool 是作者为支撑日常开发工作而持续构建的桌面工具集合,覆盖随手记、JSON 处理、编码转换、加解密、网络/IP、文本对比、Protobuf 等数十个高频开发场景。本指南基于仓库根目录的 README_zh_CN.md 展开,系统梳理 MooTool 当前的七大产品线架构、MooTool Next Electron 的 AI(MCP/Skill)接入方式、Java 版本的全功能地图,以及从源码打包的完整实操流程;读完你既能按需选择适合自己平台的产品并一键接入本地 AI 客户端,也能独立完成 MooTool Java 的跨平台打包与发布验证。
项目概览:一个开发者用爱发电的常备工具箱
MooTool 定位为「开发者常备小工具」(Handy tool set for developers)。作者在项目「关于」章节中说明,项目名中的「Moo」来自其女儿的小名,作者持续在业余时间用 Java Swing 构建和改进它,用于支撑自己的日常开发工作。仓库根目录的 README_zh_CN.md 对此有明确叙述,并坦言「尽管网上已有很多类似工具」,但作者依然投入精力打磨自己的版本。
从源码结构看,MooTool 已经从单一的 Swing 桌面应用演进为一个「同一仓库、多条产品线」的多技术栈项目,目标平台覆盖 Windows、Linux、macOS。Java 版本的入口类位于 App.java,负责初始化 i18n、Tesseract 运行环境并启动主窗口;主界面功能 Tab 的目录(索引、图标与搜索关键词)集中在 FuncTabCatalog.java,例如 quickNote、json、crypto、protobuf 等 25 个 Tab,这为下面要讲的「全功能地图」提供了源码级印证。
七大产品线矩阵:并行安装、独立演进
MooTool 当前包含 7 条独立产品线,各自维护代码、构建、版本、安装身份、数据和更新通道,可并行安装与独立演进。README 明确提醒:不同产品的版本号不作横向比较,功能覆盖以各自文档为准。产品线概况如下(摘自 README_zh_CN.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;已实现 25 个工具、独立存储与更新 | Windows / Linux / macOS | 候选预发布版 0.1.0-rc.2 |
| MooTool Next macOS Native | SwiftUI、AppKit、系统框架;原生工作区、JSON 文档库、随手记与图片附件 | macOS 14+ | 预发布版 0.8.0 |
| 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);已有应用壳、JSON 文档库、编码解码和正则工具 | Windows / Linux / macOS | 0.1.0-SNAPSHOT 早期开发版;已实现本机 macOS app-image 打包 |
各产品 README 均提供开发环境、运行、打包和验收说明。需要注意的是:仓库根目录下的 macos/ 是早期 SwiftUI 原型,当前 macOS 原生产品位于 next-macos-native/,两者不应混淆。
从版本来源与 Git tag 规则上可以进一步印证这套多产品架构:按 RELEASE_CONVENTIONS.md,Java 的版本来自 pom.xml 与 UiConsts.APP_VERSION(源码中 Java 版本为 v1.8.7,见 UiConsts.java),tag 为 v{version};Electron 版本来自 next/package.json(当前 1.3.3),tag 为 next-electron-v{version};macOS Native 版本来自 next-macos-native/VERSION,tag 为 next-macos-native-v{version}。Git tag 在整个仓库内必须唯一,因此除历史 Java 产品线外,tag 必须带稳定的产品 ID 前缀,从机制上保证各产品线互不干扰。
多产品发布的关键约定
- GitHub Release:每个 tag 对应一个且仅一个产品版本;Release 标题必须包含完整产品名和版本号;Release 只上传当前产品的安装包与更新元数据,不混入其他产品的产物。
Latest标记:GitHub 仓库只有一个全局Latest,表示「当前推荐给新用户的主力稳定产品」。当前主力为 MooTool Next Electron,因此稳定的 Electron Release 可设为Latest;Java 及其他非主力产品发布时不得覆盖全局Latest,beta、rc 等测试版本必须标记为 pre-release。- CI 触发:发布工作流必须通过 tag 前缀触发,而不是根据整个仓库的最高版本判断产品,例如
v*触发 Java、next-electron-v*触发 Electron。 - 更新通道隔离:Java 使用
version_summary.json和download_links.json;Electron 使用根目录update-manifest.json中的next-electron节点;未来产品必须使用自己的产品 ID,各客户端只能比较自身产品节点中的版本。
完整约定细节见 RELEASE_CONVENTIONS.md。
让 AI 使用 MooTool:MCP 与 Skill 一键接入
MooTool Next Electron 1.3.3 支持通过 MCP 或独立 Skill 向本地 AI 客户端提供工具能力,完整指南见 AI 接入指南。其核心设计是:复用应用自带运行时,无需另装 Node.js,关闭 MooTool 窗口后仍可调用。
支持的客户端与接入方式
| 客户端 | 一键接入方式 | MCP 用户配置位置 | Skill 用户目录 |
|---|---|---|---|
| Codex | MCP、Skill,或同时安装 | $CODEX_HOME/config.toml,默认 ~/.codex/config.toml | ~/.agents/skills/mootool/ |
| Claude Code | MCP、Skill,或同时安装 | ~/.claude.json,支持 CLAUDE_CONFIG_DIR | ~/.claude/skills/mootool/,支持 CLAUDE_CONFIG_DIR |
| Cursor | MCP | ~/.cursor/mcp.json,保留 JSONC 注释 | 当前入口仅安装 MCP |
MCP 名称为 mootool。其他支持本地 stdio MCP 的客户端,可在页面使用「复制 MCP 配置」按钮按对应客户端的配置格式添加。需要留意的是,本地可执行文件路径不能用于远程云端会话。
11 个可调用工具
| 工具 | 功能 |
|---|---|
mootool_json_format | JSON 格式化/压缩、键排序、重复键检查 |
mootool_json_query | JSONPath 查询;禁用表达式执行 |
mootool_encode | Base64、URL、十六进制、Unicode 编解码;URL 支持 UTF-8 / GB2312 |
mootool_timestamp | 时间戳与本地时间转换;指定时区和秒/毫秒单位 |
mootool_diff | 文本比较、统一 diff 和行数统计 |
mootool_hash | UTF-8 文本摘要: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 文档库 |
使用示例:「用 MooTool 把这段 JSON 按键排序」「用 MooTool 将这个时间戳转成上海时间」。Skill 的调用入口为 Codex 的 $mootool 或 Claude Code 的 /mootool。
从安全边界看,前七个工具仅处理传入的参数、不读取文档库;工具不访问应用数据库、剪贴板或凭证,不执行 Shell、发送网络请求或保存调用历史。普通文本上限 100,000 字符,diff 单侧上限 8,000 字符,结果上限 1 MB。工具错误返回 MCP isError,不会伪装为成功;MD5/SHA-1 仅用于兼容已有摘要格式。
文档只读访问与安全边界
- 默认关闭:文档工具需要分别开启「允许读取随手记」和「允许读取 JSON 文档」,页面会显示授权的实际目录;关闭后下一次调用即失效,更换库位置会撤销授权。
- 分页与限额:搜索每页最多 50 条,读取每页最多 50,000 字符;单文件最多 2 MB,单次搜索最多检查 4,000 个目录项、读取约 10 MB 内容,目录深度最多 24。
- 排除规则:排除隐藏路径、符号链接以及文档库根目录
.gitignore忽略的文件;禁止绝对路径和目录穿越。 - 支持格式:随手记支持
.txt/.md/.json/.java/.js/.ts/.py/.xml/.yaml/.yml/.sql,JSON 库仅支持.json。 - 只读性:只读层不会创建目录、欢迎笔记或索引;授权目录记录为实际路径,每次调用重新检查权限。
开始使用(三步走)
- 将应用安装到固定位置:macOS「应用程序」、Windows 安装版或 Linux deb。AppImage 和 Windows portable 运行时不支持注册一键 AI 接入。
- 打开 设置 → AI 接入,选择客户端和方式,检查预览后点击 一键安装。
- 重启 AI 客户端或重新加载 MCP / Skill,并按提示启用工具。
从实现层面看,MCP 使用官方 TypeScript SDK 的 stdio 传输,独立 out/main/mcp.js 入口复用 MooTool 工具函数,不初始化桌面窗口和数据仓库;通过 Electron 的 ELECTRON_RUN_AS_NODE 使用自带运行时。安装行为上:预览仅展示新生成的内容,写入前先保存同目录的 .mootool-backup-<id> 备份,再以临时文件替换,多文件安装失败会尝试回滚;重复安装相同配置不会追加重复项。开发验证命令如下(见 mootool-ai-integration.md):
npm run build
npm run test
npx playwright test tests/electron/ai-integration.spec.ts
node out/main/mcp.js --list
# After packaging: verifies the actual ASAR entry on the current OS
node scripts/test-packaged-ai.mjs
设置 MOOTOOL_TEST_EXECUTABLE 为打包后的应用可执行文件绝对路径,可对同一安装流程执行打包版 E2E;设置 MOOTOOL_CODEX_EXECUTABLE 为已登录的 Codex CLI 绝对路径,可额外运行真实 codex exec 验收。
MooTool Java 全功能地图
以下功能地图以 MooTool Java 为基准(README 已声明其他产品的已实现功能、差异和待办请查看各自文档)。多个工具模块还提供统一的「历史记录」子 Tab,支持搜索、应用、复制输入/输出、删除与清空。这些功能在源码中均有对应实现,例如 util 目录 下的 JsonPathUtil、CurlParserUtil、CronExpressionUtil、ProtoBufUtil、SMUtils(SM2/SM3/SM4 国密算法,基于 Bouncy Castle)等。
随手记(Quick Note)
多语言语法高亮;SQL/JSON/Java 常见代码格式化;有序/无序列表;Markdown 实时预览与插入图片;导出/批量导出、搜索与全局查找;文档信息(创建/更新时间、字数等);超链接识别与点击跳转;字体、字号、列表颜色。
快捷替换面板(侧栏集中提供以下批量文本操作,支持仅处理选中行、自动保存):
- 去掉空格、去掉空行、去掉 Tab(\t)、去掉换行
- 科学计数法 ↔ 普通数字、普通数字 ↔ 千分位
- 下划线命名 ↔ 驼峰命名、大写 ↔ 小写
- 换行 ↔
,/','/",",Tab(\t) → 换行 - 按行去重、按行去重并统计出现次数、转义/反转义
- 按行倒序、按行 A→Z 排序、按行 Z→A 排序、按拼音排序
时间转换
时间戳转换四向互转(时间→时间戳毫秒、时间戳毫秒→时间、时间戳→时间秒、时间→时间戳秒)、历史记录、大屏时钟、时区选择与快捷时区。
JSON
JSON 格式化(Key 按字母顺序排序、忽略 key 大小写、检查重复 key)、JSON 压缩、导出/批量导出与查找、字体字号、JSON ↔ Key Value 互转、JSON ↔ XML 互转、JavaBean ↔ JSON 互转、转义/反转义、通过 JsonPath 获取 JSON 数据、可视化获取 JsonPath。
翻译
多语言互译(中/英/日/韩/法/西/德/俄等 20+ 语言,支持自动检测);Google / Bing 翻译源,失败时自动降级;收藏到单词本;单词本(搜索、新建、编辑、删除、重新翻译);翻译历史记录。
Host 管理
Host 格式化/语法高亮、本机 Host 管理/查看、Host 导入/导出、搜索与查找/替换。
HTTP 请求
HTTP 请求,支持 GET/POST/PUT/DELETE/HEAD/PATCH/OPTIONS;cURL 导入;HTTP Header/Body 格式化;请求管理;请求历史记录;搜索。
UA 分析
User-Agent 解析(浏览器、引擎、操作系统、设备类型/品牌/型号等);识别移动端 / 爬虫 Bot;预设 UA 快速选择(Chrome、Firefox、Safari、Edge、微信内置浏览器、curl 等);粘贴/清空;历史记录。
编码转换
Native ↔ Unicode;URL 编码/解码;Native ↔ 十六进制;Native ↔ ASCII(十进制/十六进制字符码);历史记录。
二维码
二维码生成(尺寸自定义、纠错等级自定义、logo 自定义);二维码解析;从剪贴板识别;历史记录。
加解密 / 随机
- 国密支持:SM2 / SM3 / SM4
- 对称加密/解密:AES、DES、SM4
- 非对称加密/解密:RSA;SM2(加密/解密、私钥签名、公钥验签)
- 摘要算法(文件/文本摘要):MD5、SHA1、SHA256、SHA384、SHA512、SM3
- Base64 / Base32 编码解码;随机 UUID 生成;随机生成只包含数字/字母/数字字母的字符串(位数自定义);随机生成复杂密码(位数自定义);历史记录
计算
四则运算、进制转换、最大公约数、最小公倍数、排列组合数、历史记录。
网络 / IP
IP 查询、域名查询、netstat、ping、ipv4-Long 互相转换、WHOIS 查询、刷新 DNS。
调色板
主题颜色/标准颜色;屏幕取色器;自由选色;颜色格式转换;颜色收藏;颜色混合计算(取反、相交、相加、差值、平均);历史记录。
图片助手
本地图床;截图;从剪贴板获取/复制到剪贴板;图片缩放工具栏(放大/缩小/原始尺寸/适应窗口);图片 Base64 编码/解码;图片压缩;图片加水印;图片 OCR 识别(基于 Tesseract)。
Cron
Cron 表达式生成、解析(支持 Linux 5 段 / Quartz 6、7 段)、校验;Cron 转自然语言;最近 10 次运行时间;Cron 表达式收藏;常用 Cron 表达式;历史记录。
正则
正则表达式匹配测试;收藏正则表达式;常用正则表达式;历史记录。
Java 运行
Java/groovy 代码格式化、高亮;Java/groovy 代码解释执行;历史记录。
格式化(上传文件 / 粘贴文本)
上传文件格式化:Nginx 配置文件、XML、HTML、Java;粘贴文本直接格式化(Nginx / Java / XML / HTML);历史记录。
PDF 拆分、PDF 合并。
环境变量
系统环境变量(表格浏览)、Java properties、刷新/导出。
系统信息
基于 OSHI 采集本机系统与硬件信息,首次进入 Tab 或点击刷新时按需加载:系统(操作系统、计算机、固件、主板等)、处理器、内存、存储、网络。
配置文件转换
Properties ↔ YAML;YAML 校验(语法校验、错误行号定位);YAML 格式化;历史记录;JSON→YAML、YAML→JSON 标记为 TODO(尚未实现)。
文本对比
并排对比(左右滚动同步)、统一差异、复制差异。
Protobuf
JSON ↔ Protobuf 二进制互转(支持 Hex / Base64 输出,.proto 定义格式化);Wire Format 解码(无需 .proto 定义);Hex / Base64 互转;历史记录。
应用与设置
- 同步和备份(Git 同步、数据导出);快捷键说明;数据文件位置自定义;启动时自动检查更新;SQL 方言设置;系统托盘
- 窗口行为:macOS / Windows 点击关闭按钮时隐藏到 Dock / 任务栏(应用继续在后台运行);Linux 点击关闭按钮退出应用
- 外观:多主题风格(Flat Light/Dark、macOS、One Dark、Monokai 等)、强调色、主题颜色跟随系统、窗口颜色沉浸式、默认最大化窗口、功能 Tab 仅图标模式
- 使用习惯:功能面板位置(菜单栏上/下/左/右)、全局字体与字号
下面两张图分别是随手记和 JSON 工具的真实运行界面,可见多标签与编辑器的实际观感:
开发环境与打包:JDK 25 + 平台 Profile
仓库根目录对应 MooTool Java 开发。最低 JDK 版本要求为 25(对应 pom.xml 中的 maven.compiler.release=25 与 java.version=25,见 pom.xml)。开发前建议按 README 中的配置指引 设置 IntelliJ IDEA,然后执行 mvn clean。项目依赖可圈可点:GUI 基于 FlatLaf(flatlaf 3.7.2 + IntelliJ 主题 + JetBrains Mono/Inter 字体)、MyBatis + SQLite 存储历史数据、Hutool 工具库、ZXing 二维码、java-diff-utils 文本差异、tess4j OCR、Bouncy Castle 国密算法等(详见 pom.xml 依赖段)。
打包与 CI
项目现在支持把打包 JDK 下载并缓存到仓库本地目录:
- JDK 压缩包缓存:
downloads/jdks/ - 解压后的 JDK:
jdks/<os>/<arch>/home
下载脚本默认使用 Eclipse Temurin 25;仅复用版本匹配的 JDK,旧缓存请加 --force 重新准备。脚本 prepare_jdks.py 内部定义了四类目标(mac-x64、mac-arm64、windows-x64、linux-x64),并从 Adoptium API 拉取 JDK 与单独的 jmods 压缩包(Temurin 25 的 jmods 是独立归档,jlink 需要将其放置到 JDK 旁),同时做了路径穿越防护与版本一致性校验。
先准备本地打包 JDK:
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
本地打包命令:默认 mvn clean package 会使用当前运行 Maven 的 JDK 打一个 macOS universal 包。对于 mac-intel、mac-apple-silicon、windows-x64、linux-x64 这几个 profile,Maven 会在 validate 阶段先检查 jdks/ 下是否已准备好对应 JDK;如果缺失会直接失败并提示先执行 scripts/prepare_jdks.py,避免打出「假成功」的安装包(相关逻辑见 pom.xml 中 profile 定义)。
使用仓库内缓存 JDK 打指定平台包:
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
对应产物目录:
- 默认包:
target/ - Intel Mac:
target/mac-intel/ - Apple Silicon Mac:
target/mac-apple-silicon/ - Windows x64:
target/windows-x64/ - Linux x64:
target/linux-x64/
打包插件统一使用 io.github.fvarrui:javapackager,并为各平台附加 jdk.crypto.ec、jdk.charsets 两个模块(保证加解密与字符集能力在定制运行时中可用),同时将 MooTool.l4j.ini 作为附加资源打入安装包。
多产品发布约定速查
若需要发布任一产品线,请遵守 RELEASE_CONVENTIONS.md 中「发布顺序」的约束:先更新目标产品的版本来源与变更说明 → 创建符合命名规则的 tag(CI 校验版本一致性)→ 构建安装包与自动更新元数据 → 校验通过后发布 Release(按产品角色设置 pre-release 与 Latest)→ Release 资产可访问后再启用更新清单 → 最后验证下载入口与客户端更新检查。特别注意:不要在 Release 资产尚未可用时提前向已发布客户端暴露新版本;Electron 产品线明确允许未签名发布,但流水线必须标注该状态且不得因缺少证书而阻止 Release。
总结
MooTool 以「开发者常备工具」为起点,已发展为覆盖 Java Swing、Electron、Tauri、SwiftUI、Flutter、Compose Multiplatform、JavaFX 七种技术栈的桌面工具集。对普通用户,推荐直接使用主力产品 MooTool Next Electron(1.3.3),并可通过「设置 → AI 接入」一键让 Codex、Claude Code、Cursor 获得 JSON 处理、编解码、时间戳、摘要等 11 个本地工具能力;对开发者,仓库同时提供了完整的 JDK 25 打包脚本与多产品发布约定,可以作为 monorepo 多产品线治理和 AI 工具接入的参考实现。各产品的功能差异、验收记录与开发说明,均可回到对应产品 README 中按需查阅。
【免费下载链接】MooTool
Handy tool set for developers
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考






