litmus
See what's hiding in your files — and remove it, safely.
litmus is a private, fully local tool that reveals invisible characters, hidden file information and content credentials in your documents, code and images — then strips them out without changing anything you can see. Every clean-up is checked before it is saved: if a change cannot be confirmed safe, litmus keeps your original untouched.
- Check — see what's hidden: invisible characters, embedded file info, content credentials
- Clean — remove it, while what you see stays exactly the same
- Trust — nothing is saved unless the result is verified safe
- Private — 100% offline; your files never leave your machine
Works with text, source code, PNG, JPEG and SVG files.
Get started in one minute
git clone https://github.com/LastDev-coder/litmus
cd litmus
./start.sh # macOS / Linux
./start.ps1 # Windows (PowerShell)
That's the whole setup — it prepares everything and opens the app in your browser. Drop a file in, choose Check or Clean, and download the clean result. Requires Python 3.11+ (or uv, which fetches Python for you).
Using the app
- Drop a file onto the page.
- Check shows what's hiding inside, explained in plain language.
- Clean removes it and hands you the cleaned file. Your original is never modified.
Pick a cleaning level to control how much is done:
| Level | What it does |
|---|---|
| Minimal | Remove invisible characters only |
| Standard (default) | Also normalize unusual spaces, line endings and letterforms |
| Tidy | Also neaten extra blank lines |
| Code-aware | Also remove unused Python imports |
Command line
Prefer a terminal? After setup, the same features are available as commands:
source .venv/bin/activate
litmus inspect myfile.txt # what's hidden? (read-only)
litmus transform myfile.txt # print the cleaned version
litmus transform myfile.txt --in-place --backup # save it, keep a .bak
litmus serve # open the web app
litmus --help # everything else
For source-code files, litmus is deliberately strict: it saves a cleaned code file only when it can verify the program still behaves the same. If it can't verify, it refuses and tells you why.
Privacy
Everything runs on your machine. No accounts, no uploads, no telemetry, no
network access. The web app binds to 127.0.0.1 and analyses files in memory.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file litmus_cli-0.3.0.tar.gz.
File metadata
- Download URL: litmus_cli-0.3.0.tar.gz
- Upload date:
- Size: 80.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bd48bc090d2fa27a2eff2875dd733d4287126906831c9002e2aea6aade40a77
|
|
| MD5 |
f62f025f186ac52c5d9461ec9121d30c
|
|
| BLAKE2b-256 |
0f607f3633405b2531566588c72c788d938ac6f473b3a83d8b21fde4d8f1a955
|
File details
Details for the file litmus_cli-0.3.0-py3-none-any.whl.
File metadata
- Download URL: litmus_cli-0.3.0-py3-none-any.whl
- Upload date:
- Size: 80.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
145c858cba88c8693b2f987a3a42b5a882472128676e3bc290100400398fbb93
|
|
| MD5 |
13d55b3e0c0be291da0b9bfa4dcb9fae
|
|
| BLAKE2b-256 |
263927013cacbbba2f9de71c3feb666f091f738f09bd28e843c496c4219393f7
|