我把常用的开发小工具,做成了一个桌面应用
开发过程中,经常会遇到一些几分钟就能处理完的小事:格式化接口返回的 JSON、解码 URL 参数、转换时间戳、比较两份配置、计算文件哈希,或者把截图缩小后放进文档。
这些事情单独看都很简单,但工具分散时,操作就会变成"搜索网站、打开页面、粘贴内容、复制结果"。于是,我把自己常用的功能逐步整理到一起,做了一个本地桌面工具箱。
它最初只是一个程序员计算器,后来逐渐加入了编码、颜色、JSON、二维码、开发辅助和图片处理。目前共有七个功能页面,通过顶部 Tab 切换,输入和处理结果会在切换时保留。
我希望它用起来足够直接:打开工具,粘贴或拖入内容,完成处理,再把结果带回原来的工作中。
1. 程序员计算器:进制、位运算和表达式一起算
做客户端、协议解析或底层开发时,十六进制、位移和掩码计算很常见。KikyoTools 的计算器支持算术表达式、位运算、科学函数,以及十进制、十六进制、八进制、二进制互转。
例如:
text
0x44 >> 2 → 17
0xFF & 0x0F → 15
还可以定义变量,分多行执行:
text
mask = 0xFF
value = 0x1234
value & mask
整数计算采用有符号 64 位,纯整数运算不会先转成 JavaScript 浮点数。计算结果旁边可以直接查看不同进制表示,历史记录、变量和角度模式也会保存在本地。

2. 编码工具:把常用转换集中到一个地方
编码页面集成了 Unicode、UTF-8、URL、ASCII / Native、Hex、HTML、Base64,以及 Base16、Base32、Base58 转换。
调试接口时,可以直接解码 URL 参数;查看日志时,可以把 Unicode 转义恢复成中文;需要准备请求数据时,也可以快速完成 Base64 编码。
Unix 时间戳工具也放在这里,支持秒、毫秒与日期双向转换,并能切换本地时间和 UTC。输入带时区偏移的 ISO 日期时,会按其实际时间进行转换。
每个分类分别保留输入和结果,处理不同内容时可以来回切换。

3. 颜色转换:除了 RGB,也处理透明度和整数颜色值
颜色工具支持 RGB 与 HEX 互转,也加入了 ARGB、RGBA 和 32 位整数转换。
这部分对桌面端、移动端和前端开发都比较实用:同一个颜色,有时是 #RRGGBB,有时是 #AARRGGBB,还有些接口需要直接传一个整数。
比如 A=25、R=G=B=255 时:
text
ARGB #19FFFFFF
RGBA #FFFFFF19
整数 436207615
界面会明确标注 Alpha 在前还是在后,同时显示有符号 int32 和无符号 uint32。透明度通过滑块调整,预览采用棋盘格背景,方便观察实际效果。
下方还有 148 个 CSS 标准命名颜色,可以按英文名、中文描述、HEX 或 RGB 搜索,点击色块即可填入转换区域。

4. JSON 工具:格式化之外,也关注数据本身
JSON 是我日常使用频率很高的一类工具,所以这里除了格式化,还提供了压缩、转义、反转义、压缩并转义,以及树形解析。
遇到复杂响应时,可以先展开对象和数组查看结构;遇到语法问题时,会显示错误所在的行列,并支持定位。
我比较在意的一点是大整数处理。例如:
json
{"id":9007199254740993}
格式化和压缩时,这个 ID 会保留原文,不会因为经过 JavaScript Number 而发生舍入。键顺序和重复键同样保留,避免工具在整理格式的同时改变数据。
左右两个文本框支持自动换行,处理长字符串或压缩后的 JSON 时,不需要一直拖动横向滚动条。

5. 二维码:生成和识别都在本地完成
二维码工具有两个模式。
生成模式支持文本、网址、中文、Emoji 和多行内容,可以选择尺寸及纠错等级,下载 PNG 或 SVG。生成的是直接包含输入内容的静态二维码。
解析模式支持选择图片、拖入图片,或者粘贴截图。识别出的内容会以纯文本显示,可以直接复制,也可以回填到生成页面。对于其中的网址,应用不会自动访问。
例如,想把项目地址放进文档里,可以生成二维码后下载 SVG;收到一张二维码截图,也可以先解析内容,再决定如何使用。

6. 开发辅助:比较配置、校验文件、调试正则
这一页放了三项经常配合使用的工具。
文本对比按行显示新增和删除,支持忽略空白差异及逐处跳转。JSON 对比则按结构和路径列出变化,可以忽略对象键顺序,数组仍按位置比较。它沿用精确解析器,可以比较长整数;数值写法不同但值相同的 1、1.0、1e0 也会按相同数值处理。
哈希工具支持 MD5、SHA-1、SHA-256、SHA-512 和 CRC32,可以处理文本或文件。文件按块读取,提供进度和取消操作,也可以输入预期校验值,直接查看是否一致。
正则工具使用 JavaScript 正则语法,提供匹配高亮、捕获组、命名捕获组和替换预览。计算在后台 Worker 中运行,超过设定时间会终止,避免一个耗时表达式让整个界面失去响应。

7. 图片工具:为截图、网页和文档做准备
写 README 或博客时,经常需要缩小截图、转换格式、控制文件大小,因此我又加入了图片工具。
目前支持 PNG、JPEG、WebP 导出,可以调整 JPEG/WebP 质量,按宽高或百分比缩放,并显示处理前后的文件大小与体积变化。
透明图片也做了单独处理:PNG/WebP 保留透明度;转换成 JPEG 时,可以选择背景色,默认合成到白色背景。原图和处理结果并排显示,确认效果后再下载,原文件不会被覆盖。
当前版本按单张图片处理,动画只处理首帧。转换会重新编码图片,因此文件不一定总能变小,界面会显示实际变化。

这些功能有一个共同点:输入的文本、文件和图片都在本地处理,无需上传到外部转换服务。 对于接口数据、内部配置、日志和工作截图,我更愿意让它们留在自己的电脑里。
界面采用统一的深色风格,常用功能提供复制、快捷键和状态提示。切换 Tab 时保留当前内容,方便在 JSON 解析、编码转换和差异比较之间来回操作。多数工具的临时内容只保存在当前窗口内存中,计算器的历史、变量和角度模式则会保存到本地存储。
技术上,KikyoTools 使用 Tauri 2 + Vue 3 + TypeScript + Rust。Vue 和 TypeScript 负责界面及大部分本地转换,Rust 负责计算器的表达式运算。文件哈希和正则计算使用后台 Worker,尽量让处理过程保持可操作。
目前主要面向 Windows,其他平台尚未验证。项目已经放到 GitHub,仓库里有源码、使用说明和运行截图。如果你也经常需要处理这些开发中的小任务,欢迎试用,也欢迎提交问题或功能建议。
项目地址:传送门
想从源码运行,可以在准备好 Node.js、Rust 和 Tauri 所需系统依赖后执行:
powershell
npm install
npm run tauri dev
构建 Windows 可执行文件:
powershell
npm run tauri build -- --no-bundle
生成文件位于 src-tauri/target/release/KikyoTools.exe,更完整的环境准备和操作说明见仓库 README。