# IT-Tools — User Guide

IT-Tools is a free, open-source collection of **handy online tools for developers and people working in IT**. It bundles roughly one hundred small, focused utilities — encoders, converters, generators, validators, formatters, and calculators — behind a single fast, searchable web interface with a polished user experience.

Every tool runs **entirely in your browser**. There is no account to create, nothing to install (unless you want to self-host), and — for the overwhelming majority of tools — **no data ever leaves your machine**. You can paste a secret, a token, a private key, or a JWT into IT-Tools and the computation happens locally in JavaScript.

This guide covers everything you can do with IT-Tools: how to access it, how to navigate it, and a complete reference for every tool in the catalog.

> [!NOTE]
> IT-Tools is a Vue 3 single-page application. You can use the hosted version at [it-tools.tech](https://it-tools.tech) or run your own copy with Docker. Both behave identically — this guide applies to either.

---

## Table of Contents

1. [Quick Start](#1-quick-start)
2. [What Is IT-Tools?](#2-what-is-it-tools)
3. [Accessing IT-Tools](#3-accessing-it-tools)
4. [Navigating the Interface](#4-navigating-the-interface)
5. [The Tool Catalog](#5-the-tool-catalog)
6. [Common Workflows](#6-common-workflows)
7. [Tips & Best Practices](#7-tips--best-practices)
8. [Troubleshooting](#8-troubleshooting)
9. [Frequently Asked Questions](#9-frequently-asked-questions)
10. [Reference](#10-reference)

---

## 1. Quick Start

### Use it online (nothing to install)

1. Open [https://it-tools.tech](https://it-tools.tech) in any modern browser.
2. Find a tool — either browse the categorized sidebar on the left, or press the search box at the top and start typing (for example, `uuid`, `jwt`, or `base64`).
3. Click the tool. It opens instantly. Type or paste your input, and the result updates live as you type.

That's the entire learning curve. Every tool follows the same pattern: **input on the left or top, output below or beside it, copy button next to the result.**

> [!TIP]
> Press the search field and type a few letters of what you need. The command palette searches tool names, descriptions, and keywords, so searching `password` finds the password strength analyser, the token generator, and bcrypt.

### Run your own copy with Docker

If you want a private instance — for a homelab, an air-gapped network, or a company intranet — one command is enough:

```bash
docker run -d --name it-tools --restart unless-stopped -p 8080:80 corentinth/it-tools:latest
```

Then open `http://localhost:8080` (or your server's address on port 8080).

```text
$ docker run -d --name it-tools --restart unless-stopped -p 8080:80 corentinth/it-tools:latest
Unable to find image 'corentinth/it-tools:latest' locally
latest: Pulling from corentinth/it-tools
...
Status: Downloaded newer image for corentinth/it-tools:latest
a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2
```

> [!TIP]
> The same image is published to GitHub Container Registry. If Docker Hub is rate-limiting you, use `ghcr.io/corentinth/it-tools:latest` instead.

---

## 2. What Is IT-Tools?

IT-Tools is an **aggregated toolbox**. Instead of bookmarking a dozen different single-purpose websites (one for JSON formatting, one for base64, one for cron expressions, one for QR codes…), you get all of them in one place with a consistent interface, a shared search, and a favorites system.

### What makes it different

- **Client-side and private.** Tools run in your browser. For data-transformation tools (encoders, formatters, hashers, generators), nothing is sent to any server. This is what makes it safe to paste sensitive values.
- **No account, no tracking by default.** The hosted site uses privacy-friendly, cookieless analytics, and self-hosted instances ship with analytics disabled entirely.
- **Fast and keyboard-friendly.** A command-palette-style search lets you jump to any tool in a couple of keystrokes.
- **Installable & offline-capable.** IT-Tools is a Progressive Web App (PWA). You can "install" it like a desktop app, and once loaded it works without a network connection.
- **Free and open-source.** Licensed under the GNU GPLv3. You can read the source, self-host it, and contribute new tools.

> [!IMPORTANT]
> A small number of tools need an external lookup to be useful — for example, **MAC address lookup** (vendor database) relies on bundled data, and tools that fetch nothing still run locally. No tool transmits your input to IT-Tools' own servers. If a particular tool requires the network, this guide notes it.

### Who it's for

Developers, sysadmins, network engineers, DevOps practitioners, security folks, and anyone who occasionally needs to convert, encode, generate, or inspect a piece of data and would rather not trust a random ad-laden website with it.

---

## 3. Accessing IT-Tools

You can use IT-Tools four ways. Pick whichever fits.

=== "Hosted website"

    The simplest option. Open [https://it-tools.tech](https://it-tools.tech). Always up to date, nothing to maintain.

=== "Docker (Docker Hub)"

    ```bash
    docker run -d --name it-tools --restart unless-stopped -p 8080:80 corentinth/it-tools:latest
    ```

    Serves the app on port `8080`. The container is a tiny nginx image serving static files — it uses very little memory.

=== "Docker (GitHub Packages)"

    ```bash
    docker run -d --name it-tools --restart unless-stopped -p 8080:80 ghcr.io/corentinth/it-tools:latest
    ```

=== "App store / homelab platforms"

    IT-Tools is packaged for several self-hosting platforms with one-click installs:

    - [Cloudron](https://www.cloudron.io/store/tech.ittools.cloudron.html)
    - [Tipi](https://www.runtipi.io/docs/apps-available)
    - [Unraid](https://unraid.net/community/apps?q=it-tools) (search the Community Applications store)

### Install it as an app (PWA)

Because IT-Tools is a Progressive Web App, your browser will offer to install it:

- **Chrome / Edge:** click the install icon (a small monitor with a down-arrow) in the address bar, or open the browser menu and choose **Install IT-Tools…**
- **Safari (iOS):** tap **Share → Add to Home Screen**.
- **Android:** tap the browser menu and choose **Add to Home screen** / **Install app**.

Once installed, IT-Tools opens in its own window, gets its own icon, and continues to work even when you're offline.

> [!TIP]
> The offline cache updates automatically when a new version is deployed. If a page looks stale after an update, a force-refresh (Ctrl/Cmd + Shift + R) clears it — see [Troubleshooting](#8-troubleshooting).

### System requirements

| Requirement | Detail |
|---|---|
| Browser | Any current evergreen browser (Chrome, Edge, Firefox, Safari). The app targets modern JavaScript (`esnext`). |
| Network | Needed only to load the app the first time; tools then run offline. |
| Account | None. |
| For self-hosting | Docker, and a single free TCP port. ~Tens of MB of disk for the image. |

---

## 4. Navigating the Interface

The layout is the same on every page, so once you learn it for one tool you know it for all of them.

### The sidebar (tool menu)

The left sidebar lists every tool, **grouped by category** (Crypto, Converter, Web, and so on). Click a category header to collapse or expand it; your collapsed/expanded preferences are remembered between visits.

- Clicking the **IT-TOOLS** logo at the top of the sidebar returns you to the home page.
- A small colored dot next to a tool's icon marks a **New** tool (added within the last two weeks).
- On small screens the sidebar is hidden behind the **menu button** (☰) in the top bar.

### Search & the command palette

The fastest way to find anything is the **search box** in the top bar. It performs a fuzzy search across tool **names, descriptions, keywords, and categories**, plus a few quick actions. Results are grouped:

| Group | What it contains |
|---|---|
| **Tools** | Matching tools, plus a **Random tool** action that jumps you to a randomly chosen utility. |
| **Actions** | Quick actions like **Toggle dark mode** and **Report a bug or an issue**. |
| **Pages** | App pages such as **About**. |
| **External** | Links such as the **GitHub repository**. |

Just start typing and press Enter (or click) to jump to a result.

> [!TIP]
> Don't remember the exact tool name? Search by what you want to do. `escape`, `percent`, `slug`, `cidr`, `cron`, and `phonetic` all land you on the right tool thanks to per-tool keywords.

### Favorites

Every tool page has a **heart button** next to its title. Click it to add the tool to your favorites.

- Favorites appear in a dedicated **Your favorite tools** section at the top of both the home page and the sidebar.
- On the home page you can **drag and drop** favorites to reorder them.
- Favorites are stored in your browser (local storage), so they persist across visits on the same browser but are not synced between devices.

### The home page

The home page shows three sections, top to bottom:

1. **Your favorite tools** (only if you have any) — drag to reorder.
2. **Newest tools** — recently added utilities.
3. **All the tools** — the complete catalog as a card grid, each card showing the tool's icon, name, and a one-line description.

### Top-bar controls

| Control | What it does |
|---|---|
| ☰ Menu | Collapse/expand the sidebar. |
| 🏠 Home | Go to the home page. |
| Search | Open the fuzzy tool search. |
| Locale selector | Switch the interface language. |
| GitHub | Open the source repository. |
| X (Twitter) | Open the IT-Tools account. |
| ℹ About | App info and credits. |
| 🌙 / ☀ | Toggle dark / light mode. |

### Dark mode & language

- **Dark mode** is toggled with the moon/sun button in the top bar (or via the **Toggle dark mode** command in search). Your choice is remembered, and the app also respects your operating-system theme by default.
- **Language** is chosen with the locale selector. IT-Tools ships interface translations for several languages, including English, French, German, Spanish, Portuguese, Ukrainian, Vietnamese, Chinese, and Norwegian. Your selection is remembered between visits.

### Shareable links & remembered input

Many tools keep part of their state in the **URL** and/or your browser storage. That means:

- You can **bookmark or share a link** to a tool with certain options pre-filled.
- Returning to a tool often restores your last-used settings.

> [!NOTE]
> Where a tool stores state in the URL, copying the address bar shares your current configuration (but not necessarily large inputs). This is handy for sharing, e.g., a specific subnet calculation or a generator's settings.

---

## 5. The Tool Catalog

IT-Tools groups its utilities into ten categories. Every tool is listed below with what it does and how to use it. The **Path** column is the part of the URL after the domain (for example, `/uuid-generator`), useful for bookmarking and for self-hosted instances.

> [!NOTE]
> Unless stated otherwise, **every tool runs locally in your browser** and transmits nothing. Tools that bundle reference data (status codes, MIME types, MAC vendor prefixes, emoji metadata) ship that data inside the app.

### 5.1 Crypto

Tools for hashing, encryption, password handling, and key/identifier generation.

| Tool | What it does | Path |
|---|---|---|
| **Token generator** | Generate a random string from the character classes you choose. | `/token-generator` |
| **Hash text** | Hash a string with MD5, SHA1, SHA256, SHA224, SHA512, SHA384, SHA3, or RIPEMD160. | `/hash-text` |
| **Bcrypt** | Hash a string with bcrypt, and compare a string against a bcrypt hash. | `/bcrypt` |
| **UUIDs generator** | Generate UUIDs (v1, v3, v4, v5, and the nil UUID). | `/uuid-generator` |
| **ULID generator** | Generate random ULIDs (sortable unique identifiers). | `/ulid-generator` |
| **Encrypt / decrypt text** | Encrypt and decrypt text with AES, TripleDES, Rabbit, or RC4. | `/encryption` |
| **BIP39 passphrase generator** | Generate a BIP39 mnemonic/passphrase, or derive one from the other. | `/bip39-generator` |
| **HMAC generator** | Compute an HMAC from a message and secret key using a chosen hash function. | `/hmac-generator` |
| **RSA key pair generator** | Generate a random RSA public/private PEM key pair. | `/rsa-key-pair-generator` |
| **Password strength analyser** | Estimate password strength and crack time, entirely client-side. | `/password-strength-analyser` |
| **PDF signature checker** | Verify the digital signatures embedded in a PDF file. | `/pdf-signature-checker` |

**Notable usage details:**

- **Token generator** — toggle **Uppercase (ABC…)**, **Lowercase (abc…)**, **Numbers (123…)**, and **Symbols (!-;…)**, then set the **Length** with a slider. Click **Refresh** for a new token or **Copy** to copy it. Great for passwords, API keys, and random secrets.
- **Hash text** — paste your text once and see *all* supported digests at once; pick the output encoding you need. Because it's local, it's safe for hashing secrets.
- **Bcrypt** — two modes: **hash** a password (choose the salt rounds / cost factor) and **compare** a plaintext value against an existing `$2a$…` hash to check a match.
- **Encrypt / decrypt text** — choose the algorithm, enter a secret/passphrase, and switch between encrypt and decrypt. This uses symmetric ciphers from CryptoJS; the same secret is required to decrypt.
- **UUIDs generator** — choose the version. v4 is random (the common default); v1 is time-based; v3/v5 are name-based (you supply a namespace and name). Generate one or many at once.
- **Password strength analyser** — type a candidate password and see an entropy-based strength score and an estimated brute-force crack time. Nothing is transmitted.

> [!CAUTION]
> The **Encrypt / decrypt** tool uses classic symmetric ciphers (AES, TripleDES, Rabbit, RC4) for convenience. RC4 in particular is cryptographically weak and TripleDES is legacy — prefer **AES** for anything you actually care about, and treat this tool as a convenience utility rather than a vault.

### 5.2 Converter

Tools that transform data from one format or representation to another.

| Tool | What it does | Path |
|---|---|---|
| **Date-time converter** | Convert dates/times between many formats (ISO, UTC, timestamps, …). | `/date-converter` |
| **Integer base converter** | Convert a number between decimal, hex, binary, octal, base64, and arbitrary bases. | `/base-converter` |
| **Roman numeral converter** | Convert between Roman numerals and Arabic numbers. | `/roman-numeral-converter` |
| **Base64 string encoder/decoder** | Encode and decode strings to/from base64. | `/base64-string-converter` |
| **Base64 file converter** | Convert a file or image to/from its base64 representation. | `/base64-file-converter` |
| **Color converter** | Convert colors between hex, RGB, HSL, and CSS color names. | `/color-converter` |
| **Case converter** | Convert text between camelCase, snake_case, PascalCase, kebab-case, and more. | `/case-converter` |
| **Text to NATO alphabet** | Spell text out in the NATO phonetic alphabet. | `/text-to-nato-alphabet` |
| **Text to ASCII binary** | Convert text to/from its ASCII binary representation. | `/text-to-binary` |
| **Text to Unicode** | Convert text to/from Unicode code points. | `/text-to-unicode` |
| **YAML to JSON converter** | Live-convert YAML into JSON. | `/yaml-to-json-converter` |
| **YAML to TOML** | Convert YAML into TOML. | `/yaml-to-toml` |
| **JSON to YAML converter** | Live-convert JSON into YAML. | `/json-to-yaml-converter` |
| **JSON to TOML** | Convert JSON into TOML. | `/json-to-toml` |
| **List converter** | Transform column/list data (sort, reverse, prefix/suffix, transpose, …). | `/list-converter` |
| **TOML to JSON** | Convert TOML into JSON. | `/toml-to-json` |
| **TOML to YAML** | Convert TOML into YAML. | `/toml-to-yaml` |
| **XML to JSON** | Convert XML into JSON. | `/xml-to-json` |
| **JSON to XML** | Convert JSON into XML. | `/json-to-xml` |
| **Markdown to HTML** | Convert Markdown to HTML and print/export (e.g. as PDF). | `/markdown-to-html` |

**Notable usage details:**

- The format converters (YAML/JSON/TOML/XML) are **live** — type or paste in one pane and the converted output appears immediately in the other, with syntax highlighting and a copy button. Invalid input shows an inline error rather than crashing.
- **Integer base converter** — enter a value in any base field and all the others update simultaneously; supports custom bases.
- **Color converter** — type a color in any supported notation (e.g. `#1ea54c`, `rgb(30,165,76)`, `forestgreen`) and read the equivalents in every other format.
- **List converter** — paste line- or column-based data and chain operations: transpose, add a prefix/suffix to each row, reverse, sort, lowercase, and truncate. Useful for turning a copied column into a comma-separated list or SQL `IN (...)` clause.
- **Base64 file converter** — drag in a file or image to get its base64 string (handy for data URIs), or paste base64 to download the decoded file.

### 5.3 Web

Tools for web development, headers, tokens, and browser data.

| Tool | What it does | Path |
|---|---|---|
| **Encode/decode URL-formatted strings** | Percent-encode and decode URL strings. | `/url-encoder` |
| **Escape HTML entities** | Escape/unescape `<`, `>`, `&`, `"`, `'` to/from HTML entities. | `/html-entities` |
| **URL parser** | Break a URL into protocol, host, port, path, query params, credentials, etc. | `/url-parser` |
| **Device information** | Show your screen size, pixel ratio, user agent, and more. | `/device-information` |
| **Basic auth generator** | Build a base64 `Authorization: Basic …` header from a username and password. | `/basic-auth-generator` |
| **Open graph meta generator** | Generate Open Graph and social HTML `<meta>` tags. | `/og-meta-generator` |
| **OTP code generator** | Generate and validate time-based one-time passwords (TOTP) for MFA. | `/otp-generator` |
| **MIME types** | Look up MIME types from file extensions and vice-versa. | `/mime-types` |
| **JWT parser** | Decode a JSON Web Token and display its header and payload claims. | `/jwt-parser` |
| **Keycode info** | Show the JavaScript keycode, code, location, and modifiers of any key you press. | `/keycode-info` |
| **Slugify string** | Turn a string into a URL/filename/id-safe slug. | `/slugify-string` |
| **HTML WYSIWYG editor** | Rich-text editor that emits live HTML source. | `/html-wysiwyg-editor` |
| **User-agent parser** | Parse a user-agent string into browser, engine, OS, CPU, and device. | `/user-agent-parser` |
| **HTTP status codes** | Browse the full list of HTTP status codes, names, and meanings. | `/http-status-codes` |
| **JSON diff** | Compare two JSON objects and highlight the differences. | `/json-diff` |
| **Outlook Safelink decoder** | Recover the original URL from an Outlook SafeLink. | `/safelink-decoder` |

**Notable usage details:**

- **JWT parser** — paste a token and instantly read the decoded header and payload (issuer, subject, audience, expiry, issued-at, and any custom claims). It decodes only; it does not verify the signature, and nothing is transmitted, so it's safe for real tokens.
- **OTP code generator** — enter a TOTP secret to see the current 6-digit code and its countdown, mirroring an authenticator app; useful for testing MFA setups.
- **Basic auth generator** — type a username and password to get the ready-to-paste `Basic` header value.
- **Keycode info** — press any key and read its `event.key`, `event.code`, `keyCode`, location, and active modifiers — invaluable when wiring up keyboard handlers.
- **JSON diff** — paste two JSON documents to get a structured, side-by-side difference view.

### 5.4 Images & Videos

| Tool | What it does | Path |
|---|---|---|
| **QR Code generator** | Generate and download a QR code for any text or URL, with custom colors. | `/qrcode-generator` |
| **WiFi QR Code generator** | Generate a QR code that connects a phone to a WiFi network. | `/wifi-qrcode-generator` |
| **SVG placeholder generator** | Generate sized SVG placeholder images. | `/svg-placeholder-generator` |
| **Camera recorder** | Take a photo or record a video from your webcam. | `/camera-recorder` |

**Notable usage details:**

- **QR Code generator** — type a URL or text, customize the foreground/background colors and error-correction level, then download the result as an image.
- **WiFi QR Code generator** — enter your SSID, password, and encryption type; the generated QR code lets a phone camera join the network without typing the password.
- **Camera recorder** — requires your permission to access the camera. The capture stays in your browser.

> [!IMPORTANT]
> **Camera recorder** asks the browser for camera (and microphone, for video) permission. Captured media is handled locally in the page and is not uploaded anywhere.

### 5.5 Development

| Tool | What it does | Path |
|---|---|---|
| **Git cheatsheet** | Quick reference for the most common Git commands. | `/git-memo` |
| **Random port generator** | Generate random TCP port numbers above the well-known range (>1023). | `/random-port-generator` |
| **Crontab generator** | Build and validate cron expressions with a human-readable description. | `/crontab-generator` |
| **JSON prettify and format** | Pretty-print and format JSON. | `/json-prettify` |
| **JSON minify** | Strip whitespace to compress JSON. | `/json-minify` |
| **JSON to CSV** | Convert JSON to CSV with automatic header detection. | `/json-to-csv` |
| **SQL prettify and format** | Format SQL queries across many dialects. | `/sql-prettify` |
| **Chmod calculator** | Compute octal/symbolic chmod permissions and the matching command. | `/chmod-calculator` |
| **Docker run to Docker Compose converter** | Turn a `docker run` command into a `docker-compose.yml`. | `/docker-run-to-docker-compose-converter` |
| **XML formatter** | Pretty-print XML. | `/xml-formatter` |
| **YAML prettify and format** | Pretty-print and format YAML. | `/yaml-prettify` |
| **Email normalizer** | Normalize email addresses to a canonical form for de-duplication. | `/email-normalizer` |
| **Regex tester** | Test a regular expression against sample text. | `/regex-tester` |
| **Regex cheatsheet** | Quick reference for JavaScript regular-expression syntax. | `/regex-memo` |

**Notable usage details:**

- **Crontab generator** — type a cron expression and read a plain-English description ("At 02:30 every day"), or build one field by field. It validates the expression and flags errors.
- **SQL prettify** — paste a query and choose your dialect (PostgreSQL, MySQL, MariaDB, BigQuery, DB2, Hive, N1QL, PL/SQL, Redshift, Spark, T-SQL, …) for correct formatting.
- **Chmod calculator** — tick the read/write/execute boxes for owner/group/other and read off both the octal value (e.g. `755`) and the ready-to-run `chmod` command.
- **Docker run → Compose** — paste a long `docker run …` command and get an equivalent `docker-compose.yml`, a big time-saver when migrating ad-hoc containers to Compose.
- **JSON to CSV** — paste an array of JSON objects; the tool detects the columns from the keys and emits CSV.

### 5.6 Network

| Tool | What it does | Path |
|---|---|---|
| **IPv4 subnet calculator** | Parse an IPv4 CIDR block and report network, broadcast, mask, host range, and more. | `/ipv4-subnet-calculator` |
| **IPv4 address converter** | Convert an IPv4 address to decimal, binary, hex, and IPv6 forms. | `/ipv4-address-converter` |
| **IPv4 range expander** | Compute the smallest CIDR subnet covering a start/end IPv4 range. | `/ipv4-range-expander` |
| **MAC address lookup** | Find a device's vendor/manufacturer from its MAC address. | `/mac-address-lookup` |
| **MAC address generator** | Generate random MAC addresses with an optional prefix and case. | `/mac-address-generator` |
| **IPv6 ULA generator** | Generate RFC 4193 unique-local (private) IPv6 addresses. | `/ipv6-ula-generator` |

**Notable usage details:**

- **IPv4 subnet calculator** — enter something like `192.168.1.0/24` and read the network address, broadcast address, netmask, wildcard mask, first/last usable host, and host count.
- **IPv4 range expander** — give a start and end address; the tool returns a valid subnet and its CIDR notation that spans the range.
- **MAC address lookup** — the vendor database (OUI prefixes) is bundled with the app, so lookups work offline.

### 5.7 Math

| Tool | What it does | Path |
|---|---|---|
| **Math evaluator** | Evaluate mathematical expressions with functions like `sqrt`, `sin`, `cos`, `abs`. | `/math-evaluator` |
| **ETA calculator** | Estimate the completion time of a task from its progress rate. | `/eta-calculator` |
| **Percentage calculator** | Calculate percentages between values, and value↔percentage conversions. | `/percentage-calculator` |

**Notable usage details:**

- **Math evaluator** — type a full expression (e.g. `sqrt(2) * sin(pi/4) + 3^2`) and get the result; it supports a wide range of math functions.
- **ETA calculator** — enter the total amount of work, how much is done, and the elapsed time (or rate) to project the finish time and remaining duration — for example, estimating when a long file transfer will complete.

### 5.8 Measurement

| Tool | What it does | Path |
|---|---|---|
| **Chronometer** | A stopwatch with pause, resume, and lap timing. | `/chronometer` |
| **Temperature converter** | Convert between Kelvin, Celsius, Fahrenheit, Rankine, Delisle, Newton, Réaumur, and Rømer. | `/temperature-converter` |
| **Benchmark builder** | Compare the execution times of tasks (mean, variance) you enter. | `/benchmark-builder` |

**Notable usage details:**

- **Benchmark builder** — enter the measured durations for two or more approaches and the tool computes means and variance and tells you which is fastest and by how much — a quick, manual A/B timing comparison.

### 5.9 Text

| Tool | What it does | Path |
|---|---|---|
| **Lorem ipsum generator** | Generate placeholder lorem-ipsum text. | `/lorem-ipsum-generator` |
| **Text statistics** | Count characters, words, and byte size of a text. | `/text-statistics` |
| **Emoji picker** | Search emojis and copy them, with Unicode/code-point values. | `/emoji-picker` |
| **String obfuscator** | Mask part of a secret/IBAN/token so it's shareable but not revealing. | `/string-obfuscator` |
| **Text diff** | Compare two texts and highlight the differences. | `/text-diff` |
| **Numeronym generator** | Create numeronyms such as `i18n` from words. | `/numeronym-generator` |
| **ASCII Art Text Generator** | Render text as ASCII art in many fonts (figlet-style). | `/ascii-text-drawer` |

**Notable usage details:**

- **String obfuscator** — paste a secret and the middle is masked (e.g. `sk_live_…••••…1234`) so you can paste it into a ticket or chat to identify *which* secret you mean without exposing it.
- **Emoji picker** — search by name, click to copy the emoji, and also grab its Unicode code points.
- **ASCII Art Text Generator** — type a word and choose a font to produce a banner of ASCII characters, perfect for CLI splash screens and READMEs.

### 5.10 Data

| Tool | What it does | Path |
|---|---|---|
| **Phone parser and formatter** | Parse, validate, and format phone numbers; report country, type, etc. | `/phone-parser-and-formatter` |
| **IBAN validator and parser** | Validate an IBAN and extract country, BBAN, QR-IBAN flag, and friendly format. | `/iban-validator-and-parser` |

**Notable usage details:**

- **Phone parser and formatter** — enter a number (optionally with a country) and read whether it's valid, the national and international formats, the detected country, and the line type (mobile/fixed).
- **IBAN validator and parser** — paste an IBAN to check its validity and break it into its constituent parts.

---

## 6. Common Workflows

A few end-to-end recipes that combine tools.

### Generate a strong password or API key and check it

1. Open **Token generator** (`/token-generator`).
2. Enable uppercase, lowercase, numbers, and symbols; set length to 32.
3. Click **Copy**.
4. Open **Password strength analyser** (`/password-strength-analyser`) and paste it to confirm the entropy and crack time.

### Build a `docker-compose.yml` from a `docker run` command

1. Open **Docker run to Docker Compose converter** (`/docker-run-to-docker-compose-converter`).
2. Paste your full `docker run -d --name … -p … -v … image` command.
3. Copy the generated `docker-compose.yml` into your project.

### Inspect and sanity-check a JWT

1. Open **JWT parser** (`/jwt-parser`).
2. Paste the token. Read the header (`alg`, `typ`) and payload (`iss`, `sub`, `aud`, `exp`, …).
3. If `exp` looks wrong, open **Date-time converter** (`/date-converter`) and paste the timestamp to read it as a human date.

### Connect guests to WiFi without sharing the password aloud

1. Open **WiFi QR Code generator** (`/wifi-qrcode-generator`).
2. Enter the SSID, password, and encryption type.
3. Download the QR code and print it. Guests scan it to join.

### Turn a copied column into a SQL `IN (...)` list

1. Open **List converter** (`/list-converter`).
2. Paste the column of values.
3. Add a prefix and suffix (e.g. `'` and `'`), then transpose/join into one line.
4. Wrap the result in `IN ( … )`.

---

## 7. Tips & Best Practices

> [!TIP]
> **Favorite the tools you use weekly.** They jump to the top of both the sidebar and the home page, and you can drag them into the order you like.

> [!TIP]
> **Learn the search.** It's almost always faster to press the search box and type three letters than to hunt through the sidebar.

> [!TIP]
> **Install the PWA for offline use.** Once installed, IT-Tools works on a plane, in an air-gapped lab, or whenever your connection drops.

> [!NOTE]
> **Your settings live in the browser.** Favorites, theme, language, and collapsed categories are stored locally. They won't follow you to another browser or device, and clearing site data resets them.

> [!IMPORTANT]
> **Safe for secrets — within reason.** Data-transformation tools (hashing, encoding, JWT decoding, key generation) run locally and transmit nothing. Still, treat the **Encrypt/decrypt** tool's legacy ciphers as a convenience, not a security guarantee (see the caution in [Crypto](#51-crypto)).

> [!TIP]
> **Self-host for a team.** A single `docker run` gives your whole office a private, ad-free, always-available toolbox on the LAN. See the [Admin Guide](/guides/CorentinTh/it-tools/admin-guide/) for configuration and hardening.

---

## 8. Troubleshooting

### Error: `404 Not Found` / "Maybe the cache is doing tricky things, try force-refreshing?"

**Cause:** You followed a link to a tool path that has changed, or your offline (PWA) cache is serving an old build after a deploy.

**Solution:** Force-refresh the page to clear the cached app:

```text
Windows/Linux:  Ctrl + Shift + R
macOS:          Cmd + Shift + R
```

**Prevention:** The PWA updates itself automatically on the next visit after a new version ships; a force-refresh just speeds that up.

### A tool page is blank or shows stale content after an update

**Cause:** The service worker cached the previous version.

**Solution:** Force-refresh (above). If it persists, clear the site's cached data in your browser's site settings, then reload.

### The ASCII Art generator produces nothing

**Cause:** This is a known issue with certain inputs/fonts (community-reported).

**Solution:** Try a different font or a shorter input string. If it still fails, report it via search → **Report a bug or an issue**.

### The Regex tester behaves unexpectedly on some patterns

**Cause:** Edge-case patterns have produced incorrect highlighting in some versions (community-reported).

**Solution:** Double-check the pattern against the **Regex cheatsheet** (`/regex-memo`); for complex patterns, validate behavior in your actual runtime as well.

### "Add to favorites" doesn't seem to stick

**Cause:** Favorites are stored in browser local storage; private/incognito windows and "clear on close" settings discard them.

**Solution:** Use IT-Tools in a normal browser window, and don't clear site data if you want favorites to persist.

### Camera recorder shows no video

**Cause:** The browser blocked camera access, or another app is using the camera.

**Solution:** Grant camera permission when prompted (check the address-bar camera icon), close other apps using the camera, and ensure you're on `https://` (or `localhost`), which browsers require for camera access.

### Self-hosted instance shows the nginx welcome page or 404s on refresh

**Cause:** Wrong container/port mapping, or a reverse proxy not forwarding SPA routes.

**Solution:** Confirm the container is published as `-p 8080:80` and browse to that port. (The official image already handles SPA routing internally.) See the [Admin Guide](/guides/CorentinTh/it-tools/admin-guide/) for reverse-proxy and base-path configuration.

---

## 9. Frequently Asked Questions

**Q: Is IT-Tools free?**
Yes. It's open-source under the GNU GPLv3 and free to use, both the hosted site and self-hosted copies.

**Q: Do my inputs get sent to a server?**
No. Tools run in your browser. For data-transformation tools, nothing you type is transmitted. This is what makes IT-Tools safe for sensitive values like tokens and keys.

**Q: Does it track me?**
The hosted site uses privacy-friendly, cookieless analytics (page views only). Self-hosted instances ship with analytics **disabled**. No personal data or tool input is collected.

**Q: Do I need an account?**
No. There are no accounts, logins, or sign-ups.

**Q: Can I use it offline?**
Yes. Install it as a PWA (or just load it once) and it works offline thanks to its service worker.

**Q: Where are my favorites and settings stored?**
In your browser's local storage. They persist on the same browser but are not synced across devices, and clearing site data resets them.

**Q: How do I change the language?**
Use the locale selector in the top bar. Several languages are bundled.

**Q: A tool I need is missing — can I request it?**
Yes. Use search → **Report a bug or an issue**, or open a feature request on the [GitHub issues page](https://github.com/CorentinTh/it-tools/issues/new/choose).

**Q: Can I run it on my own server?**
Absolutely — that's a first-class use case. One `docker run` command does it (see [Accessing IT-Tools](#3-accessing-it-tools)). For configuration, see the Admin Guide.

**Q: How do I get a random tool to explore?**
Open search and choose the **Random tool** action.

**Q: Why does a tool show a small colored dot?**
That marks a **New** tool — one added within the last two weeks.

**Q: Is the JWT parser checking the signature?**
No — it decodes and displays the token's contents. It does not validate the signature. Decoding happens locally, so it's safe to paste real tokens.

**Q: Which encryption algorithm should I pick in the Encrypt/decrypt tool?**
Use **AES**. The other options (TripleDES, Rabbit, RC4) are legacy or weak and are included for compatibility, not security.

**Q: Can I share a tool with my settings pre-filled?**
Often yes — many tools keep state in the URL, so copying the address bar shares your current configuration.

---

## 10. Reference

### Tool routes by category

| Category | Tools (path) |
|---|---|
| **Crypto** | `/token-generator`, `/hash-text`, `/bcrypt`, `/uuid-generator`, `/ulid-generator`, `/encryption`, `/bip39-generator`, `/hmac-generator`, `/rsa-key-pair-generator`, `/password-strength-analyser`, `/pdf-signature-checker` |
| **Converter** | `/date-converter`, `/base-converter`, `/roman-numeral-converter`, `/base64-string-converter`, `/base64-file-converter`, `/color-converter`, `/case-converter`, `/text-to-nato-alphabet`, `/text-to-binary`, `/text-to-unicode`, `/yaml-to-json-converter`, `/yaml-to-toml`, `/json-to-yaml-converter`, `/json-to-toml`, `/list-converter`, `/toml-to-json`, `/toml-to-yaml`, `/xml-to-json`, `/json-to-xml`, `/markdown-to-html` |
| **Web** | `/url-encoder`, `/html-entities`, `/url-parser`, `/device-information`, `/basic-auth-generator`, `/og-meta-generator`, `/otp-generator`, `/mime-types`, `/jwt-parser`, `/keycode-info`, `/slugify-string`, `/html-wysiwyg-editor`, `/user-agent-parser`, `/http-status-codes`, `/json-diff`, `/safelink-decoder` |
| **Images & Videos** | `/qrcode-generator`, `/wifi-qrcode-generator`, `/svg-placeholder-generator`, `/camera-recorder` |
| **Development** | `/git-memo`, `/random-port-generator`, `/crontab-generator`, `/json-prettify`, `/json-minify`, `/json-to-csv`, `/sql-prettify`, `/chmod-calculator`, `/docker-run-to-docker-compose-converter`, `/xml-formatter`, `/yaml-prettify`, `/email-normalizer`, `/regex-tester`, `/regex-memo` |
| **Network** | `/ipv4-subnet-calculator`, `/ipv4-address-converter`, `/ipv4-range-expander`, `/mac-address-lookup`, `/mac-address-generator`, `/ipv6-ula-generator` |
| **Math** | `/math-evaluator`, `/eta-calculator`, `/percentage-calculator` |
| **Measurement** | `/chronometer`, `/temperature-converter`, `/benchmark-builder` |
| **Text** | `/lorem-ipsum-generator`, `/text-statistics`, `/emoji-picker`, `/string-obfuscator`, `/text-diff`, `/numeronym-generator`, `/ascii-text-drawer` |
| **Data** | `/phone-parser-and-formatter`, `/iban-validator-and-parser` |

### Hash algorithms available (Hash text & HMAC)

`MD5`, `SHA1`, `SHA256`, `SHA224`, `SHA512`, `SHA384`, `SHA3`, `RIPEMD160`.

### Encryption algorithms (Encrypt / decrypt text)

`AES` (recommended), `TripleDES`, `Rabbit`, `RC4` (legacy — avoid for real secrets).

### Where your data is stored

| Setting | Storage |
|---|---|
| Favorite tools | Browser local storage (`favoriteToolsName`) |
| Theme (dark/light) | Browser local storage |
| Interface language | Browser local storage (`locale`) |
| Sidebar collapse state | Browser local storage |
| Some tool inputs/options | URL query parameters and/or local storage |

### Useful links

- Hosted app: [it-tools.tech](https://it-tools.tech)
- Source code: [github.com/CorentinTh/it-tools](https://github.com/CorentinTh/it-tools)
- Report a bug / request a tool: [GitHub issues](https://github.com/CorentinTh/it-tools/issues/new/choose)
- Self-hosting & configuration: see the **Admin Guide**

---

_Generated June 2026 from CorentinTh/it-tools at d505845. AI-generated documentation. The library is checked by sampling (three repositories so far); this guide was not individually reviewed. Verify against the project before relying on it. Unofficial; not affiliated with or reviewed by the project._
