OmniTools 介绍与选型指南

说清 OmniTools 定位、架构、功能边界与同类工具箱量化对比的选型篇:纯浏览器端处理、12 大类 128 个工具、MIT 许可,与 IT-Tools/CyberChef 的版本/许可/栈/星数对比,含构建产物与站点响应实测数据

OmniToolsOmniToolsReactTypeScript2026/10/28

OmniTools 介绍与选型指南

目标:说清 OmniTools(GitHub 开源项目 iib0011/omni-tools,自托管在线工具箱)的定位、技术架构、功能边界与同类工具箱的量化对比,回答「团队要不要自建一套在线工具站、该选哪套」的选型问题。文中构建产物统计、服务响应回显均在 Ubuntu 24.04 服务器上实测取得,项目身份数据(星数、发布时间线、许可)查证于 GitHub 仓库页与 Releases 页(查询日期 2026-10-28)。

一、环境信息

本篇为认知与选型篇,涉及的实查环境与数据来源如下:

  • 软件版本:OmniTools 0.7.0(v0.7.0,2026-10-20 发布,仓库 commit 5f8f4c7,实测克隆核对);
  • 实测服务器:Ubuntu 24.04.5 LTS x86_64,Node.js 20.20.2(构建用),nginx/1.24.0(托管用),服务端口 8143;
  • 身份数据来源:GitHub 仓库页(星数 10,483、许可 MIT、项目简介)、Releases 页(v0.1.0~v0.7.0 共 7 个发布)、仓库内 package.json、构建描述文件、LICENSE(均为 v0.7.0 源码实读);
  • 同类对比数据:shields.io 徽章数据端点(查询日期 2026-10-28);
  • 配套篇章:本专栏另有安装、配置、命令三篇,见文末「参考链接」处链接。

二、软件概述

OmniTools 是一个开源自托管的在线工具箱:把日常高频的小工具(图片压缩、PDF 合并、JSON 格式化、文本批量处理、时间戳换算等)聚合成一个 Web 单页应用,部署在内网或个人服务器后,团队成员打开浏览器即可使用。项目口号(仓库页原文,查询日期 2026-10-28):

Self-hosted collection of powerful web-based tools for everyday tasks. No ads, no tracking, just fast, accessible utilities right from your browser!

身份信息一览(均实查自 v0.7.0 仓库与 GitHub 页面):

项目内容
仓库https://github.com/iib0011/omni-tools
作者Ibrahima Gaye Coulibaly(GitHub @iib0011)
许可MIT(LICENSE 文件实读确认)
当前版本0.7.0(2026-10-20 发布,第七个 Release)
星数10,483(GitHub 仓库页,2026-10-28 查询)
官方演示站https://omnitools.app
技术栈React 18 + TypeScript 5 + Vite 5 + Material UI 5 + Tailwind 3
发行形态官方主打打包发行(约 28MB 的自包含轻量制品,见下文架构节);亦支持源码构建后由任意静态 Web 服务器托管

OmniTools 最重要的架构决策是全部工具的计算都在浏览器端完成:文件从本机读入浏览器内存,用 WebAssembly 或 Web Worker 就地处理,处理结果从浏览器直接下载,服务器从头到尾只承担「把静态页面发给浏览器」这一件事。仓库页明确承诺 "All files are processed entirely on the client side: nothing ever leaves your device"。

💡 技术拓展:自托管在线工具箱按「文件在哪里被处理」分两类架构。一类是纯前端处理(OmniTools、IT-Tools):工具逻辑以 JavaScript/WASM 形式随页面下发,在浏览器内执行,服务端零计算、文件不出本机,天然满足隐私合规,代价是受浏览器能力限制(大文件慢、依赖浏览器版本);另一类是后端处理(如 MinIO 配套工具、各类 API 网关型工具站):文件上传到服务器由服务端程序处理,能力强、可批量化,但需要考虑传输加密与数据留存。OmniTools 采用纯前端处理架构,这是它「轻、快、隐私安全」的根源。

三、核心架构

OmniTools 的整体链路分「构建期」与「运行期」两段,两段都在本批实测中取得了真实数据。

3.1 构建期:TypeScript 源码到静态产物

源码目录按工具分类组织,每个工具是一个独立目录(页面组件 index.tsx + 逻辑 service.ts + 元信息 meta.ts + 单元测试)。构建命令为 npm run build(即 tsc && vite build),在实测环境(Node.js 20.20.2)执行结果:

vite v5.4.20 building for production...
(中间为 228 个产物文件的逐个输出,输出节选(实测首尾))
dist/assets/index-DR-NHKWD.js                                       622.11 kB │ gzip:  72.50 kB
...
dist/assets/ToolMultipleImageInput-B2lvA6na.js                      2,732.15 kB │ gzip: 672.75 kB
✓ built in 15.65s

构建产物 dist/ 实测统计:总体积 46MB、228 个文件,包含带内容哈希的 JS/CSS、11 种语言的 locales/ 翻译包、PWA 相关的 site.webmanifest 与图标、SEO 用的 robots.txt。构建时 Vite 会把 package.json 的版本号与当前 commit 短哈希注入应用(页面导航栏展示 v0.7.0 与对应 commit,vite.config.ts 的 define 段实现,实测在产物 JS 中检到 0.7.0 字样)。

3.2 运行期:静态托管 + 单页应用回退

OmniTools 构建后就是一个纯静态目录,官方打包制品的托管方式(官方构建描述实读,查询日期 2026-10-28)是 Nginx 托管 dist/,并做了两处关键适配:其一是把 .mjs 扩展名加入 application/javascript 的 MIME 映射(产物中存在 pdf.worker.min-*.mjs 等 4 个 .mjs 文件,默认 MIME 表会把它按二进制流返回导致浏览器拒绝执行,实测复现并修复,见安装篇排障实录);其二是配置 try_files $uri $uri/ /index.html; 让所有未命中的路径回退到入口页(单页应用路由必需,实测 /image/compress 这类深层路径返回 200 与入口 HTML)。

3.3 处理期:浏览器内的计算引擎

各工具的计算依赖随页面按需加载,主要引擎(package.json @ v0.7.0 实读):

引擎依赖用途运行方式
@ffmpeg/ffmpeg 0.12音视频裁剪/倒放/转码WebAssembly + Worker
tesseract.js 6图片文字识别(OCR)WebAssembly
@imgly/background-removal + onnxruntime-web 1.21AI 图片抠图ONNX 模型 + WASM/WebGPU
jimp / browser-image-compression / react-konva图片压缩、裁剪、编辑Canvas
pdf-lib / jspdf / pdfjs-distPDF 合并、拆分、编辑、预览纯 JS
nerdamer-prime代数运算/解方程纯 JS

这套依赖结构解释了两个实测现象:构建产物中最大的单个 JS 分块达 2.7MB(ToolMultipleImageInput,含图片编辑器),构建日志会给出超 500KB 的分块提示(属官方已知状态);视频类工具首次使用时需在浏览器内额外拉取 WASM 引擎资源,弱网环境首次加载偏慢。

四、功能特性

4.1 工具清单:12 大类 128 个工具(v0.7.0 源码逐目录统计)

分类工具数代表工具
string(文本)29大小写转换、去重、转义、Markdown 转 HTML
image(图片)15压缩、格式转换、裁剪、AI 抠图、ICO 生成
time(时间)12时间戳互转、时区换算、倒计时、Cron 表达式解析
video(视频)12裁剪、倒放、抽帧、压缩
csv11转置、列交换、CSV↔XML/JSON 互转
list(列表)11去重、洗牌、比较、分组
pdf11合并、拆分、压缩、签名、页码编辑
json9格式化、校验、排序、JSON↔CSV/XML 互转、差异比较
number(数字)8进制转换、随机数、字节换算、欧姆定律等计算器
converters(转换器)4单位/编码类通用转换
audio(音频)4裁剪、音量调整、格式转换
xml2格式化、校验
合计128每类含 i18n 条目与单元测试(实测全量 695 个用例通过)

4.2 界面与多语言

界面基于 Material UI 5 + Tailwind 3,首页按分类卡片导航,工具页统一为「输入区 + 选项区 + 结果区」三段式布局,全部输入即算(无需提交按钮的工具占多数)。多语言基于 i18next,支持 en/de/es/fr/pt/ja/hi/nl/ru/uk/zh 共 11 种界面语言(src/i18n/index.ts 实读 + 产物 locales/ 目录实测 11 个语言目录),语言偏好存于浏览器 localStorage 的 lang 键,缺词回退英文(README 自述中文覆盖率约 69%,查询日期 2026-10-28)。

4.3 隐私与安全特性

  • 文件不出本机:纯前端处理架构(见第二章技术拓展说明),适合处理含敏感内容的文档与图片;
  • 无账号体系:不注册、不登录、无用户数据落库,也就没有账号泄露面;
  • 无遥测:仓库页承诺 no ads, no tracking;产物中未集成任何统计上报脚本(public/ 目录实读,仅有 robots.txt、site.webmanifest 等静态资源)。

五、快速开始(最小可用示例)

以下 6 步在 Ubuntu 24.04 实测环境完整走通,给出可独立执行的最小命令组与真实回显(依赖安装的完整依赖链、Nginx 站点配置与排障过程见安装篇)。

5.1 安装构建依赖并获取源码

sudo apt-get install -y curl git          # 基础工具(实测 nginx 1.24.0、git 2.43.0)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -   # 配置 Node.js 20 官方源
sudo apt-get install -y nodejs            # 实测装得 nodejs 20.20.2-1nodesource1、npm 10.8.2
git clone --branch v0.7.0 --depth 1 https://github.com/iib0011/omni-tools.git /opt/omni-tools

克隆实测回显(GitHub 直连报 GnuTLS recv error (-110),走代理后成功;网络细节见安装篇):

Note: switching to '5f8f4c7b92060f904b40fafb0649701921fe7746'.
You are in 'detached HEAD' state. ...

5.2 安装依赖并构建

cd /opt/omni-tools
npm install --no-audit --no-fund          # 实测 added 1148 packages in 32s
npm run build                             # 实测 ✓ built in 15.65s,产物 dist/ 46MB

5.3 托管与验证

把 dist/ 复制到 Web 根目录并用 Nginx 托管(完整站点配置见安装篇;此处用最短配置示意):

sudo mkdir -p /var/www/omnitools && sudo cp -r dist/. /var/www/omnitools/
sudo ln -sf /etc/nginx/sites-available/omnitools.conf /etc/nginx/sites-enabled/  # 站点配置文件见安装篇
sudo nginx -t && sudo systemctl reload nginx
curl -sI http://localhost:8143/ | head -3

实测回显:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
HTTP/1.1 200 OK
Server: nginx/1.24.0 (Ubuntu)
Content-Type: text/html

浏览器打开 http://<服务器IP>:8143 即可使用全部 128 个工具。

六、适用场景与限制

6.1 适用场景

  • 内网团队工具站:设计、运营、开发团队共用一套图片/PDF/文本处理入口,免得每人各装一堆桌面小软件;
  • 隐私敏感文件的轻处理:合同 PDF 拆合、含人脸图片压缩、内部数据 CSV 清洗等不便上传第三方站点的文件,浏览器本地处理无外发流量;
  • 离线/隔离网络环境:构建完成后整站是静态文件,可部署在无外网的隔离内网(构建需在有网环境完成);
  • 低资源服务器复用:静态托管不吃计算资源,1 核 1GB 的机器即可长期服务(实测 Nginx 进程常驻内存仅数十 MB)。

6.2 限制与注意

  • 无后端 API:所有能力都是界面交互,不能写脚本批量调用(自动化批处理场景应选后端处理型方案或本地 CLI 工具);
  • 无鉴权:应用本身没有登录/权限功能,暴露公网等于向所有人开放(内容不落服务器故泄露风险低,但会被陌生人白嫖流量),建议只在内网使用或在前置反代层加访问控制;
  • 大文件受浏览器限制:视频转码、AI 抠图在浏览器 WASM 内执行,GB 级文件处理慢且受浏览器单页内存约束(实测最大 JS 分块 2.7MB 级别的应用整体可用,但 ffmpeg WASM 处理长视频明显慢于本地工具);
  • 依赖浏览器能力:WebGPU 抠图等新特性需要较新的浏览器版本,老浏览器会降级或不可用。

七、同类选型对比

7.1 三个主流自托管工具箱横向对比

对比对象选取同类中社区活跃度最高的两个:IT-Tools(Vue 系纯前端工具箱的代表)与 CyberChef(GCHQ 出品的编解码/分析全家桶)。星数取自 shields.io 徽章数据端点(2026-10-28 查询),OmniTools 星数取自 GitHub 仓库页精确值:

维度OmniToolsIT-ToolsCyberChef
仓库iib0011/omni-toolsCorentinTh/it-toolsgchq/CyberChef
最新版本v0.7.0(2026-10-20)v2024.10.22-7ca5933(日期版本制)v11.5.0
许可MITGPL-3.0Apache-2.0
技术栈React 18 + TS + Vite + MUIVue 3 + TS + Vite + Naive UIJavaScript(Vue 2 + Webpack)
处理架构纯前端(WASM/Worker)纯前端纯前端
星数(2026-10-28)10,483(仓库页精确值)41k36k
工具数量128(12 大类,v0.7.0 实测统计)约 240(官方 README 自述规模级)约 300+ 操作(Recipe 编排制)
界面语言11 种(含中文,覆盖 69%)英文为主英文为主
官方主打发行打包制品(约 28MB)+ 源码打包制品 + 源码静态单文件/打包制品

星数徽章(经 shields.io 渲染,勿直连 api.github.com):

  • OmniTools:https://img.shields.io/github/stars/iib0011/omni-tools
  • IT-Tools:https://img.shields.io/github/stars/CorentinTh/it-tools
  • CyberChef:https://img.shields.io/github/stars/gchq/CyberChef

7.2 版本节奏与社区活跃度

OmniTools 的 7 个 Release 时间线(GitHub Releases 页实查,2026-10-28):v0.1.0(2025-02-27)→ v0.2.0(2025-03-28)→ v0.3.0(2025-04-24)→ v0.4.0(2025-06-05)→ v0.5.0(2025-07-10)→ v0.6.0(2025-10-02)→ v0.7.0(2026-10-20)。项目于 2025 年 2 月首发,一年半做到 7 个版本与 1 万+ 星,节奏为小步快跑(平均 2~3 个月一个版本,v0.6 到 v0.7 间隔最长约一年,属功能积累期)。IT-Tools 与 CyberChef 均为多年成熟项目,版本节奏更慢但生态稳定;OmniTools 是三者中最年轻、迭代最活跃的。

7.3 兼容矩阵与选型建议

兼容性要点(实测/实查依据):构建需要 Node.js 20(官方构建描述使用 node:20,实测 Node 20.20.2 通过);运行期只需一个支持 SPA 回退的静态 Web 服务器(Nginx 1.24 实测通过);浏览器端 ffmpeg WASM 要求支持 SharedArrayBuffer 的现代浏览器,AI 抠图在支持 WebGPU 的浏览器上才有硬件加速。

选型建议(关键差异解读):

  • 选 OmniTools:要中文界面、要 MIT 许可商用零顾虑、要多媒体工具(音视频/PDF/AI 抠图最全)、团队想要「开箱即用」的分类导航体验——它是三者中多媒体能力与本地化做得最好的;
  • 选 IT-Tools:团队以开发者为先、偏好 Vue 技术栈想二开、需要最多的小工具种类——它工具数量最多且开发社区体量最大(41k 星);
  • 选 CyberChef:面向安全分析/编解码场景,需要把多步操作编排成 Recipe 复用、甚至离线单文件携带——它的「操作编排」模式是独有的,但界面与概念对普通办公人员偏陡峭;
  • 三者同为纯前端架构、隐私特性同级,差异主要在工具域侧重与本地化程度。

八、参考链接