Self-hosted service
iib0011/omni-tools avatar
iib0011/omni-tools

OmniTools: A 28MB Self-Hosted Toolbox That Keeps Your Files on Your Device

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

10,720 stars765 forksTypeScriptMIT

At a glance

What is it?
OmniTools is a self-hosted web app that bundles image, PDF, text, date, math, and data utilities into a single lightweight Docker image. All processing happens client-side, which makes it a privacy-friendly alternative to online tool sites, though its breadth comes with some rough edges.
Who is it for?
Adopt OmniTools if you want a single, self-hosted utility site that runs in Docker with a 28MB image and processes files entirely in the browser, which is ideal for privacy-conscious individuals or small teams. Do not adopt it if you need deep, production-grade tooling like full video editing or advanced PDF manipulation, because the feature list is broad but shallow and the project is young.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 21 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • iib0011/omni-tools10,720 ★ · +803
Star history
Repository2026-07-282026-11-14
iib0011/omni-tools9.9k10.7k

803 Stars in the last 109 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What OmniTools Solves and Who It Targets

OmniTools addresses a common annoyance: the web is full of single-purpose utility sites that track you, show ads, and upload your files to a server. This project bundles a wide range of everyday tools into one self-hosted web app, and the README states that all files are processed entirely on the client side, so nothing ever leaves your device. The target user is someone who already runs Docker and wants a private, ad-free alternative to random online converters. It is not aimed at professionals who need specialized software; it is aimed at people who occasionally resize an image, split a PDF, or convert a timestamp. The demo site at omnitools.app gives a hosted preview, but the real value is in deploying it yourself.

How the Client-Side Architecture Works

The core design choice is that every tool runs in the browser. The README does not detail the internal data flow, but the client-side claim implies that files are read into memory via browser APIs, processed with JavaScript or WebAssembly, and then downloaded as new files. No upload endpoint is involved, so the server only serves static assets. This has a direct consequence: performance depends on the user's hardware and browser. Large video files, for example, could exhaust memory or freeze the tab, though the README lists a Video Trimmer and Video Reverser as features. The architecture also means the Docker image is static, which explains the 28MB size. For a self-hoster, that is a small footprint, but it also means no backend logic to scale or secure, which is both a simplification and a limitation.

Getting It Running: Docker and Compose

Deployment is straightforward. The README gives a one-liner: docker run -d --name omni-tools --restart unless-stopped -p 8080:80 iib0011/omni-tools:latest. That maps host port 8080 to container port 80, so you can access the app at http://localhost:8080. A Docker Compose alternative is also provided, with the same image, container name, restart policy, and port mapping. There is no mention of environment variables, persistent volumes, or configuration files, which suggests the app is stateless and stores nothing server-side. That makes upgrades trivial: pull the new image and recreate the container. The project publishes tagged releases, the latest being v0.7.0 from October 2026, so you can pin a specific tag if you want stability.

The Tool Catalog: Breadth Over Depth

The feature list is long. Categories include Image/Video/Audio, PDF, Text/List, Date and Time, Math, and Data tools. Examples given are an Image Resizer, Video Trimmer, PDF Splitter, Case Converters, Time Zone Converters, Prime Number Generator, and JSON/CSV/XML tools. That breadth is the selling point: one URL covers many small tasks. But the README does not specify how many tools exist, their exact capabilities, or their quality. The phrase 'And more...' appears repeatedly, which is honest but vague. For an engineer evaluating this, the risk is that a tool name sounds capable but turns out to be minimal. The project is still in early versions (v0.7.0), so expect rough edges and missing options compared to mature single-purpose tools.

A Real Limitation: Translation Coverage and Contribution Friction

The README includes an i18n coverage table that reveals a concrete limitation. Ukrainian is at 95%, but Chinese is at 69%, and most other languages (Hindi, Russian, German, Spanish, French, Japanese, Dutch, Portuguese) sit at 67-68%. That means a significant portion of the interface is untranslated for many users. The README also warns that translation files under public/locales should only be edited by developers, and non-developers are directed to a Locize project. That is a sensible split, but it adds friction for contributors. Another limitation is the tool creation script: npm run script:create:tool my-tool-name folder1. It requires knowing the folder structure, and Windows users must use backslashes (folder1\folder2). This is a developer-facing constraint, not a user-facing one, but it affects how quickly the toolset can grow.

Comparing to the Alternative: Single-Purpose Tools vs. a Suite

The obvious alternative is to use dedicated online services or standalone desktop tools for each task. For example, instead of OmniTools' PDF Splitter, you might use a purpose-built PDF utility that offers merge, split, rotate, and compress with fine-grained controls. The difference in approach is that those tools are optimized for one workflow, often with batch processing, advanced options, and server-side handling for large files. OmniTools trades that depth for convenience and privacy. Another alternative is a self-hosted suite like Stirling PDF, which focuses specifically on PDFs and runs server-side, meaning files are uploaded to the server. OmniTools' client-side model avoids that upload, but it puts the processing burden on the client. For a quick, private conversion, OmniTools wins. For heavy, repeatable work, a specialized tool is likely better.

Maintenance, Upgrade Cost, and License

The project is MIT licensed, which means you can use, modify, and redistribute it freely, with no copyleft obligations. The maintenance cost is low if you just run the Docker image: there are no databases to back up, no config files to track, and no state to migrate. Upgrades are a matter of pulling a new image, and the releases (v0.5.0 in July 2025, v0.6.0 in October 2025, v0.7.0 in October 2026) and a last push on 2026-10-24 suggest continued development. However, the README's contribution section shows that adding a new tool requires running a script and understanding the folder hierarchy, so if you want to customize the toolset, you will need to work with the React and TypeScript codebase. The project also relies on Iconify for icons and Material UI, which are standard dependencies. Overall, the upgrade path is simple, but the feature set is not guaranteed to be stable across versions.

Editorial conclusion

Adopt OmniTools if you want a single, self-hosted utility site that runs in Docker with a 28MB image and processes files entirely in the browser, which is ideal for privacy-conscious individuals or small teams. Do not adopt it if you need deep, production-grade tooling like full video editing or advanced PDF manipulation, because the feature list is broad but shallow and the project is young. Before deploying, verify that the specific tools you rely on are present and functional in the current release, check the i18n coverage for your language (Ukrainian is at 95%, but the other listed languages are at 67-69%), and confirm the client-side processing approach meets your performance expectations for large files.

Frequently asked questions

how to install omni tools

The README gives a Docker run command that maps host port 8080 to container port 80 with a restart policy of unless-stopped, plus an equivalent Docker Compose file naming the service omni-tools. Contributors clone the repository, run npm i and then npm run dev to work on the code instead.

is omni tools free

The repository is licensed under the MIT License and the tools are self-hosted, so the software itself carries no fee. What you pay for is whatever the machine or virtual host you run the container on costs.

is omni tools safe

The README states that all files are processed entirely on the client side and that nothing ever leaves your device, and the Dockerfile matches that: the final image is nginx:alpine serving a static vite build with no application server to receive uploads. Access control to port 8080 is not part of the container and has to come from your own network.

omni tools alternative

The closest alternative is the hosted demo the README links at omnitools.app, and because processing is client-side in both cases the difference is operational rather than technical: who runs the server, who applies updates and which version you get. For large video or PDF work, a desktop application installed on each workstation avoids the browser memory ceiling that WebAssembly FFmpeg runs into.

how to use omni tools

Open the app, pick a tool from one of the grouped categories, image and video, PDF, text and lists, date and time, math, or JSON, CSV and XML, and load a file from your machine. The work happens in the browser tab, and the result comes back in the same tab.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/iib0011-omni-tools.svg)](https://hysenlabs.com/projects/iib0011-omni-tools)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/iib0011-omni-tools.svg)](https://hysenlabs.com/projects/iib0011-omni-tools)

Was this useful?