OmniTools 介绍与选型指南
说清 OmniTools 定位、架构、功能边界与同类工具箱量化对比的选型篇:纯浏览器端处理、12 大类 128 个工具、MIT 许可,与 IT-Tools/CyberChef 的版本/许可/栈/星数对比,含构建产物与站点响应实测数据
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.21 | AI 图片抠图 | ONNX 模型 + WASM/WebGPU |
| jimp / browser-image-compression / react-konva | 图片压缩、裁剪、编辑 | Canvas |
| pdf-lib / jspdf / pdfjs-dist | PDF 合并、拆分、编辑、预览 | 纯 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 | 裁剪、倒放、抽帧、压缩 |
| csv | 11 | 转置、列交换、CSV↔XML/JSON 互转 |
| list(列表) | 11 | 去重、洗牌、比较、分组 |
| 11 | 合并、拆分、压缩、签名、页码编辑 | |
| json | 9 | 格式化、校验、排序、JSON↔CSV/XML 互转、差异比较 |
| number(数字) | 8 | 进制转换、随机数、字节换算、欧姆定律等计算器 |
| converters(转换器) | 4 | 单位/编码类通用转换 |
| audio(音频) | 4 | 裁剪、音量调整、格式转换 |
| xml | 2 | 格式化、校验 |
| 合计 | 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 仓库页精确值:
| 维度 | OmniTools | IT-Tools | CyberChef |
|---|---|---|---|
| 仓库 | iib0011/omni-tools | CorentinTh/it-tools | gchq/CyberChef |
| 最新版本 | v0.7.0(2026-10-20) | v2024.10.22-7ca5933(日期版本制) | v11.5.0 |
| 许可 | MIT | GPL-3.0 | Apache-2.0 |
| 技术栈 | React 18 + TS + Vite + MUI | Vue 3 + TS + Vite + Naive UI | JavaScript(Vue 2 + Webpack) |
| 处理架构 | 纯前端(WASM/Worker) | 纯前端 | 纯前端 |
| 星数(2026-10-28) | 10,483(仓库页精确值) | 41k | 36k |
| 工具数量 | 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 复用、甚至离线单文件携带——它的「操作编排」模式是独有的,但界面与概念对普通办公人员偏陡峭;
- 三者同为纯前端架构、隐私特性同级,差异主要在工具域侧重与本地化程度。
八、参考链接
- GitHub 仓库:https://github.com/iib0011/omni-tools(README/
package.json/构建描述/LICENSE,v0.7.0,查询日期 2026-10-28) - Releases 页:https://github.com/iib0011/omni-tools/releases(7 个发布时间线,查询日期 2026-10-28)
- 官方演示站:https://omnitools.app
- 官方制品发布页:https://hub.docker.com/r/iib0011/omni-tools
- shields.io 星数徽章数据端点:https://img.shields.io/github/stars/iib0011/omni-tools.json(2026-10-28 查询)
- 同类项目:https://github.com/CorentinTh/it-tools、https://github.com/gchq/CyberChef(shields.io 数据端点,2026-10-28 查询)
- 本专栏系列篇章:安装部署详见 《Ubuntu 24.04 安装 OmniTools 0.7.0 指南》,配置参数详见 《OmniTools 0.7.0 配置参数详解》,命令与运维详见 《OmniTools 0.7.0 常用 CLI 命令与工具详解》。