Licenses & privacy
Everything this site is built on, what it counts, who else your browser talks to, and who runs it. Libraries load only when a tool needs them, and the work stays in the browser — including chunked sound splitting.
Most tools run entirely in your browser and load their libraries from jsDelivr and Hugging Face. Railway only serves the app and the headers needed by browser AI. Here is what they are, and the license each one is used under.
| Component | License | Used for |
|---|---|---|
| pdf.js | Apache 2.0 | Reading and rendering PDFs |
| pdf-lib | MIT | Writing and editing PDFs |
| JSZip | MIT | Packing results into a ZIP, and writing the .docx in PDF to Word |
| transformers.js | Apache 2.0 | Running AI models locally |
| RMBG-1.4 | BRIA · non-commercial | Background removal, in images and in video (default) |
| MODNet | Apache 2.0 | Background removal, in images and in video (open license) |
| tesseract.js | Apache 2.0 | Reading text in images |
| tessdata | Apache 2.0 | OCR language data |
| ffmpeg.wasm | MIT | Wrapper around FFmpeg |
| @ffmpeg/util | MIT | Loading FFmpeg core files as Blob URLs |
| FFmpeg core | GPL v2+ | Video, GIF and sound tools: convert, trim, resize, split, extract MP3, filters |
| demucs-web | MIT | Browser AI sound splitting with Demucs |
| ONNX Runtime Web | MIT | Running the Demucs ONNX model in the browser |
| Demucs | MIT | Music source separation model used by browser AI sound splitting |
| Inter Tight | SIL OFL 1.1 | Interface typeface, self-hosted |
| IBM Plex Mono | SIL OFL 1.1 | Labels and monospaced text, self-hosted |
| Instrument Serif | SIL OFL 1.1 | Headings, self-hosted |
| Flask | BSD 3-Clause | Railway API shell and static hosting |
| Gunicorn | MIT | Railway Python web server |
| HTDemucs ONNX model | not declared | Four-stem music source separation, based on Meta HTDemucs |
| heic2any | MIT | Decoding HEIC from iPhone |
| libheif | LGPL v3 | The HEIC decoder inside it |
| exifr | MIT | Reading EXIF and GPS |
| jsQR | Apache 2.0 | Reading QR codes |
| node-qrcode | MIT | Generating QR codes |
| dijkstrajs | MIT | Shortest-path search inside node-qrcode |
| auto-editor | Public Domain | The method Auto-edit video uses to decide what to cut. No code is copied — the algorithm was rewritten to run in the browser |
| Manim Community Edition | MIT | The idea behind Math animation studio: a scene written as code. No code is copied and none could be — Manim is Python on Cairo, OpenGL and LaTeX. The scene language here is a small one of its own |
| MathJax | Apache-2.0 | Typesets the formulas in Math animation studio to SVG so they can be drawn on a canvas. Downloaded only when a scene uses MathTex |
| Mermaid | MIT | Draws every diagram in Diagram from text. The library itself, running in your browser |
| SVGO | MIT | The optimiser behind Optimise SVG — the same default preset as the command line tool |
| jq | MIT | The filter language in jq — query JSON. Compiled to WebAssembly |
| jq-web | MIT | The WebAssembly build of jq that makes it run in a browser |
| OCRmyPDF | MPL-2.0 | The idea behind Searchable PDF: OCR added to the file rather than extracted out of it. No code copied — OCRmyPDF is Python |
| markitdown | MIT | The idea behind Documents to Markdown. No code copied — markitdown is Python |
| mammoth.js | BSD-2-Clause | Reads .docx files in Documents to Markdown and Word/Excel to PDF |
| SheetJS | Apache-2.0 | Reads spreadsheets in Documents to Markdown and Word/Excel to PDF |
| DB Browser for SQLite | MPL-2.0 / GPL-3.0 | The idea behind SQLite browser. No code copied — it is a Qt desktop app |
| sql.js | MIT | SQLite itself, compiled to WebAssembly, in SQLite browser |
| age | BSD-3-Clause | The file format used by Encrypt a file — readable by the age command line tool |
| typage | BSD-3-Clause | age's official JavaScript implementation, which does the encryption |
| reveal.js | MIT | The presentation framework in Markdown to slides, written into the file you download |
| Excalidraw | MIT | The idea behind Hand-drawn whiteboard. No code copied — Excalidraw is a React app |
| rough.js | MIT | Draws the sketchy line in Hand-drawn whiteboard — the same library Excalidraw uses |
| Typst | Apache-2.0 | The typesetting engine in Typst — markup to PDF. The compiler itself, as WebAssembly |
| typst.ts | Apache-2.0 | The WebAssembly build of Typst, plus its renderer |
| zxcvbn | MIT | Estimates how long a password would last in Password strength, and explains what gives it away |
| Czkawka | MIT | The idea behind Find duplicate files. No code copied — it is Rust and it can delete files; this one hands you a list |
| Swin2SR | Apache-2.0 | The super-resolution model in AI photo upscaler, in its real-world variant, run through transformers.js |
| Real-ESRGAN | BSD-3-Clause | The yardstick for AI photo upscaler. No code or weights used — neither it nor Upscayl runs in a browser |
| Upscayl | AGPL-3.0 | Named as the desktop tool people install for this. Nothing from it is used here |
| unpaper | GPL-2.0 | The idea behind the cleaning step in Document scanner. No code copied — the maths is a box blur and a local threshold |
| noble & scure | MIT | The audited cryptography primitives that age is built on (hashes, ciphers, curves, base encodings) |
| Silero VAD | MIT | Telling a voice apart from background noise in Auto-edit video |
| bwip-js | MIT | Generating UPC, Code 39, Code 128, Interleaved 2 of 5, PDF417, Data Matrix and Aztec codes |
FFmpeg and the GPL
The FFmpeg core is built with libx264 and is therefore covered by GPL v2 or later. It is used unmodified, exactly as published by the ffmpeg.wasm project, and is loaded straight from their release on jsDelivr. Source for both FFmpeg and ffmpeg.wasm is available at the addresses listed in the table above.
This site invokes FFmpeg as a separate program inside a WebAssembly worker and contains no FFmpeg code of its own.
Browser-native tools
Many newer tools do not add extra third-party code. Image compression, watermarking, palette extraction, upscaling, favicon generation, hashing, UUIDs, Base64, URL codec, JWT decoding, regex testing, Markdown preview, JSON/CSV conversion, word counting, text casing, text diffing, image diffing, colour-vision simulation, bulk renaming, object removal, face anonymizing, photo restoration, photo colorizing, text-behind-image, passport photo sheets, subtitle editing, document chat and meeting notes use browser APIs, Canvas, Web Crypto, Web Audio, PDF text extraction or small local code in this project.
The Sound tools use FFmpeg for conversion and filtering. Sound splitter loads Demucs and ONNX Runtime Web inside a Web Worker and processes audio in crossfaded chunks, so the page stays responsive and a cancelled run frees its memory immediately. Each model in the picker declares its own download size, quality and length limit. The waveform viewer and BPM detector use the browser's Web Audio API. The BPM result is an estimate, not a studio-grade tempo analysis.
Text-to-speech uses the browser's SpeechSynthesis API. Audio transcriber uses the browser's SpeechRecognition API where the browser exposes it; support and processing details depend on the browser vendor.
demucs-web is MIT licensed and is based on Meta's HTDemucs work. The exact ONNX model file loaded from Hugging Face does not publish a separate license in its model metadata, so it is listed explicitly above instead of being folded into the library license.
Background removal and non-commercial use
The default model, RMBG-1.4 by BRIA, may only be used non-commercially. This site is free, puts nothing behind a paywall and shows no advertising. A voluntary donation link does not change that: by Creative Commons' own reading, use is only commercial when it is primarily directed toward monetary compensation.
The same two models are behind Remove video background, where the licence question is exactly the same one: the model runs per frame, on your machine.
To avoid the question entirely, pick MODNet in the model selector. It is Apache 2.0 and free for any use, and it is 25 MB rather than 176 MB — but it is a pure human matting model. It can only cut out people, and returns a completely empty result on objects, products and screenshots.
Your files
Tools process files inside your own browser. Sound splitter also keeps the file local, but must download the model before the first AI split.
What we count
So we can see which tools are worth keeping, the site records three things: which tool was opened, whether a file came out of it, and how long that took. Never a filename, never anything from inside a file, never a setting. There is no account, no advertising network and no third-party analytics script.
Visitor counts use a one-way hash that only says whether two visits in the same day came from the same browser. The salt behind it is thrown away and replaced every day, every week and every month, so there is no key that can follow you across them — not even for us.
The server keeps a request log for a short while, as every web server does, and that log contains your IP address. It is not joined to anything above, and nothing in it is used to build a profile.
One thing you can send us on purpose. The “report a bug” link at the bottom of every page sends what you write in it, along with which browser and screen size you have, so a fault can be reproduced. Nothing else goes with it — never a file, never a filename, never anything from inside something you opened. The whole message is shown to you before you send it, reports are kept for at most 180 days, and nothing is sent unless you press the button.
If your browser sends Do Not Track or Global Privacy Control, nothing is sent at all. You can also switch it off here, on this device:
Checking…
The switch is stored in this browser only, under the key
free-tools:no-stats. Clearing site data resets it, and a different
browser or device has its own setting.
Who else your browser talks to
Your files never leave the machine, but the code that works on them has to come from somewhere. When a tool needs a library or an AI model, your browser fetches it directly from a public CDN, and that request carries your IP address the same way any web request does:
- jsDelivr — JavaScript libraries and the FFmpeg core. Loaded the first time a tool needs one.
- Hugging Face — the AI model files for background removal and sound splitting. Only ever loaded if you start one of those tools.
Nothing else. Fonts, stylesheets, icons and every line of the site’s own code are served from this domain — there is no Google Fonts, no tag manager, no embedded video, no social widget and no advertising script anywhere on the site.
One tool links outward on purpose: if a photo carries GPS coordinates, the EXIF viewer offers a link that opens them on OpenStreetMap. Nothing is sent until you click it, and clicking it hands those coordinates to OpenStreetMap.
Who runs this
EveryTool is a personal, non-commercial project, run by one person and paid for out of pocket. It is hosted on Railway inside the EU.
Contact: 0x3529@gmail.com — for privacy questions, takedown requests and anything else about the site.
If you are in the EU or UK you have the right to ask what is held about you, to have it corrected or deleted, and to complain to your data protection authority. In practice there is very little to ask for: no account exists, and the counters described above cannot be traced back to a person even by us.
No warranty
These tools are provided as they are, free of charge, with no guarantee that any result is correct or that any tool is fit for a particular purpose. Keep a copy of anything you care about before you run it through a converter — here or anywhere else.