Self-hosted collection of powerful web-based tools for everyday tasks. No ads, no tracking, just fast, accessible utilities right from your browser! - https://github.com/iib0011/omni-tools.git - https://omnitools.app https://omnitools.app
  • TypeScript 85.8%
  • JavaScript 14%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Chesterkxng 89a50e3e3d
Merge pull request #446 from iib0011/chore/i18n-coverage-update
chore: update i18n coverage table
2026-08-17 21:00:23 +02:00
.github chore: testing PR approach 2026-08-16 23:35:05 +02:00
.husky feat: csv to json 2025-03-09 00:41:59 +00:00
.idea chore(i18n): update translations 2026-08-06 21:16:02 +00:00
.vitest feat: tools normalized 2024-06-22 22:06:16 +01:00
.vscode feat: use vite and ts 2024-06-19 18:08:19 +01:00
@types fix: tsc 2025-07-13 15:39:12 +01:00
docs-images docs: add locize sponsor 2025-07-14 23:59:10 +01:00
public Update video.json with additional descriptions and titles 2026-08-17 20:23:33 +03:00
scripts fix(scripts): Labels instead of emoji char since not rendering 2026-08-17 10:47:51 +02:00
src chore: order change 2026-08-17 10:48:58 +02:00
.dockerignore feat: self host 2024-07-11 03:33:37 +01:00
.editorconfig feat: use vite and ts 2024-06-19 18:08:19 +01:00
.env.example fix: translation related behaviors 2025-07-14 18:04:30 +01:00
.eslintrc feat: sum numbers init 2024-06-25 03:11:48 +01:00
.gitignore hide .idea 2026-05-13 15:30:25 +03:00
.prettierrc adding text joiner 2024-06-23 00:47:12 -07:00
CODEOWNERS Update CODEOWNERS 2024-08-09 17:00:18 +01:00
commitlint.config.js feat: conventional commit 2024-06-21 22:59:50 +01:00
Dockerfile fix: mime.types 2025-07-26 01:56:36 +01:00
index.html fix: favicons 2025-07-09 15:25:40 +01:00
LICENSE fix: typo 2024-06-14 00:44:45 +01:00
package-lock.json Merge branch 'main' into pr/XDavidT/142 2026-08-07 23:58:31 +02:00
package.json Merge branch 'main' into pr/XDavidT/142 2026-08-07 23:58:31 +02:00
playwright.config.ts feat: playwright report 2024-06-28 19:51:31 +01:00
pnpm-lock.yaml feat: add rotate image tool (#108) 2025-07-03 17:07:38 +08:00
postcss.config.mjs feat: tools normalized 2024-06-22 22:06:16 +01:00
README.md chore: update i18n coverage table 2026-08-17 18:58:34 +00:00
tailwind.config.mjs feat: tools normalized 2024-06-22 22:06:16 +01:00
tsconfig.json feat: dark mode 2025-03-31 01:27:44 +00:00
vite.config.ts chore: last commit hash added to env var 2026-07-17 12:46:53 +02:00

Welcome to OmniTools, a self-hosted web app offering a variety of online tools to simplify everyday tasks. Whether you are coding, manipulating images/videos, PDFs or crunching numbers, OmniTools has you covered. Please don't forget to star the repo to support us. Here is the demo website.

All files are processed entirely on the client side: nothing ever leaves your device. Plus, the Docker image is super lightweight at just 28MB, making it fast to deploy and easy to self-host.

img.png

Table of Contents

Features

We strive to offer a variety of tools, including:

Image/Video/Audio Tools

  • Image Resizer
  • Image Converter
  • Image Editor
  • Video Trimmer
  • Video Reverser
  • And more...

PDF Tools

  • PDF Splitter
  • PDF Merger
  • PDF Editor
  • And more...

Text/List Tools

  • Case Converters
  • List Shuffler
  • Text Formatters
  • And more...

Date and Time Tools

  • Date Calculators
  • Time Zone Converters
  • And more...

Math Tools

  • Generate Prime Numbers
  • Calculate voltage, current, or resistance
  • And more...

Data Tools

  • JSON Tools
  • CSV Tools
  • XML Tools
  • And more...

Stay tuned as we continue to expand and improve our collection!

Self-host/Run

Docker

docker run -d --name omni-tools --restart unless-stopped -p 8080:80 iib0011/omni-tools:latest

Docker Compose

services:
  omni-tools:
    image: iib0011/omni-tools:latest
    container_name: omni-tools
    restart: unless-stopped
    ports:
      - "8080:80"

Contribute

This is a React Project with Typescript Material UI. We use icons from Iconify

Project setup

git clone https://github.com/iib0011/omni-tools.git
cd omni-tools
npm i
npm run dev

Create a new tool

npm run script:create:tool my-tool-name folder1 # npm run script:create:tool split pdf

For tools located under multiple nested directories, use:

npm run script:create:tool my-tool-name folder1/folder2 # npm run script:create:tool compress image/png

Use folder1\folder2 on Windows.

Run tests

npm run test
  • For e2e tests
npm run test:e2e

i18n (Translations)

The translation files are here. Only edit these if you are a developer. For non developers, use Locize.

Language Translation status Missing keys
uk - Ukrainian ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100% 0
zh - Chinese ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░ 72% 478
hi - Hindi ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 71% 505
ru - Russian ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 71% 493
de - German ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 70% 515
es - Spanish ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 70% 515
fr - French ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 70% 515
ja - Japanese ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 70% 515
nl - Dutch ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 70% 515
pt - Portuguese ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 70% 515

Star History

🤝 Looking to contribute?

We welcome contributions! You can help by:

  • Reporting bugs
  • Suggesting new features in GitHub issues or here
  • Translating in Locize project.
  • Improving documentation
  • Submitting pull requests

You can also join our Discord server

🧡 Sponsors

Thanks to Locize for sponsoring OmniTools and supporting localization efforts. They make translation management simple and developer-friendly.

Contributors

Contact

For any questions or suggestions, feel free to open an issue or contact me at: ibracool99@gmail.com

License

This project is licensed under the MIT License. See the LICENSE file for details.