# MooTool
**Repository Path**: upstudio/MooTool
## Basic Information
- **Project Name**: MooTool
- **Description**: Handy desktop toolset for developers. 开发者常备桌面小工具
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://rememberber.github.io/MooTool/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 270
- **Created**: 2026-07-29
- **Last Updated**: 2026-07-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

English ·
简体中文 ·
日本語
# MooTool
开发者常备小工具
[](https://gitee.com/zhoubochina/MooTool)
[](https://github.com/rememberber/MooTool)
[](https://github.com/rememberber/MooTool/releases)
[](https://github.com/rememberber/MooTool/blob/master/LICENSE.txt)
## 支持的平台
Windows • Linux • macOS
## 截图速览
> 以下为主要功能界面截图。翻译、UA分析、图片助手、PDF、环境变量、系统信息、配置文件转换、Protobuf 等模块暂未单独配图,可在安装后于对应 Tab 中体验。



















## 下载
- [MooTool Next Electron 1.1.0(推荐)](https://github.com/rememberber/MooTool/releases/tag/next-electron-v1.1.0)
- [MooTool Java 1.8.6](https://github.com/rememberber/MooTool/releases/tag/v1.8.6)
- [全部 GitHub Releases](https://github.com/rememberber/MooTool/releases)
- [MooTool Java Gitee Releases](https://gitee.com/zhoubochina/MooTool/releases)
## 鼓励/赞赏
**如果MooTool项目对您有所帮助或带来便利,
欢迎对我每天下班和周末时光的努力进行肯定,
您的赞赏将会给我带来更多动力**

# MooTool全功能地图
> 多个工具模块提供统一的「历史记录」子 Tab,支持搜索、应用、复制输入/输出、删除与清空。
```text
MooTool
├── 随手记
│ ├── 多语言语法高亮支持
│ ├── 常见语言代码格式化
│ │ ├── SQL
│ │ ├── JSON
│ │ └── Java
│ ├── 有序/无序列表
│ ├── Markdown 实时预览
│ ├── Markdown 插入图片
│ ├── 导出/批量导出,搜索与全局查找
│ ├── 文档信息(创建/更新时间、字数等)
│ ├── 超链接识别与点击跳转
│ ├── 字体、字号、列表颜色
│ └── 快捷替换面板
│ ├── 侧栏集中提供以下批量文本操作,支持仅处理选中行:
│ ├── 自动保存
│ ├── 去掉空格
│ ├── 去掉空行
│ ├── 去掉Tab(\t)
│ ├── 科学计数法->普通数字
│ ├── 普通数字->科学计数法
│ ├── 普通数字->千分位
│ ├── 千分位->普通数字
│ ├── 下划线命名->驼峰命名
│ ├── 驼峰命名->下划线命名
│ ├── 大写->小写
│ ├── 小写->大写
│ ├── 去掉换行
│ ├── 换行->,
│ ├── 换行->','
│ ├── 换行->","
│ ├── ,->换行
│ ├── ','->换行
│ ├── ","->换行
│ ├── Tab(\t)->换行
│ ├── 按行去重
│ ├── 按行去重并统计出现次数
│ ├── 转义
│ ├── 反转义
│ ├── 按行倒序
│ ├── 按行A->Z排序
│ ├── 按行Z->A排序
│ └── 按拼音排序
├── 时间转换
│ ├── 时间戳转换
│ │ ├── 时间->时间戳(毫秒)
│ │ ├── 时间戳(毫秒)->时间
│ │ ├── 时间戳->时间(秒)
│ │ └── 时间->时间戳(秒)
│ ├── 历史记录
│ ├── 大屏时钟
│ └── 时区选择与快捷时区
├── JSON
│ ├── JSON格式化
│ │ ├── Key 按字母顺序排序
│ │ ├── 忽略 key 大小写
│ │ └── 检查重复 key
│ ├── JSON压缩
│ ├── 导出/批量导出,查找
│ ├── 字体、字号
│ ├── JSON Key Value互转
│ ├── JSON转XML
│ ├── XML转JSON
│ ├── JavaBean转JSON
│ ├── JSON转JavaBean
│ ├── 转义
│ ├── 反转义
│ ├── 通过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
│ ├── Unicode->Native
│ ├── URL编码/解码
│ ├── Native->十六进制
│ ├── 十六进制->Native
│ ├── Native->ASCII(十进制/十六进制字符码)
│ ├── ASCII->Native
│ └── 历史记录
├── 二维码
│ ├── 二维码生成
│ │ ├── 尺寸自定义
│ │ ├── 纠错等级自定义
│ │ └── 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表达式生成
│ ├── Cron表达式解析(支持 Linux 5 段 / Quartz 6、7 段)
│ ├── Cron表达式校验
│ ├── Cron 转自然语言
│ ├── 最近 10 次运行时间
│ ├── Cron表达式收藏
│ ├── 历史记录
│ └── 常用Cron表达式
├── 正则
│ ├── 正则表达式匹配测试
│ ├── 收藏正则表达式
│ ├── 常用正则表达式
│ └── 历史记录
├── Java
│ ├── Java/groovy代码格式化、高亮
│ ├── Java/groovy代码解释执行
│ └── 历史记录
├── 格式化
│ ├── 上传文件格式化
│ │ ├── Nginx 配置文件
│ │ ├── XML
│ │ ├── HTML
│ │ └── Java
│ ├── 粘贴文本直接格式化(Nginx / Java / XML / HTML)
│ └── 历史记录
├── PDF
│ ├── PDF拆分
│ └── PDF合并
├── 环境变量
│ ├── 系统环境变量(表格浏览)
│ ├── Java properties
│ └── 刷新 / 导出
├── 系统信息
│ ├── 基于 OSHI 采集本机系统与硬件信息,首次进入 Tab 或点击刷新时按需加载:
│ ├── 系统(操作系统、计算机、固件、主板等)
│ ├── 处理器
│ ├── 内存
│ ├── 存储
│ └── 网络
├── 配置文件转换
│ ├── Properties->YAML
│ ├── YAML->Properties
│ ├── YAML 校验(语法校验、错误行号定位)
│ ├── YAML 格式化
│ ├── 历史记录
│ ├── JSON->YAML(TODO)
│ └── 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 仅图标模式
└── 使用习惯
├── 功能面板位置(菜单栏上/下/左/右)
└── 全局字体与字号
```
## 特别感谢
[Hutool](http://hutool.cn/)
[FlatLaf](https://github.com/JFormDesigner/FlatLaf)
[vscode-icons](https://github.com/microsoft/vscode-icons)
[iconfont](https://www.iconfont.cn/)
## 开发温馨提示
多产品的版本号、Git tag、GitHub Release、`Latest` 标记及 CI 隔离规则统一见[多产品发布约定](RELEASE_CONVENTIONS.md)。
最低JDK版本要求:**21**
在你开始开发之前, **请按下图设置IntelliJ IDEA**, 然后 **maven clean**:

### 打包与 CI
项目现在支持把打包 JDK 下载并缓存到仓库本地目录:
- JDK 压缩包缓存:`downloads/jdks/`
- 解压后的 JDK:`jdks///home`
下载脚本默认使用 Eclipse Temurin 21,并且如果本地已经存在对应 JDK,就不会重复下载。
#### 先准备本地打包 JDK
```bash
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
```
也可以一次性查看全部目标会下载到哪里:
```bash
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`,避免打出“假成功”的安装包。
如果要使用仓库内缓存 JDK 打指定平台包:
```bash
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/`