Modular, multilingual CLI converter for 30+ units. Supports 5 languages
10K+
One CLI to convert everything β from temperature to Morse code, in 5 languages.
Lumix is a modular, multilingual command-line converter for physical units, digital data, time, security tools, and creative utilities. Designed to be easily extensible, it features shell autocompletion β all in one sleek package.
π Supported languages: English, Italian, French, Spanish, Japanese. βοΈ Modular core: add your own converters in minutes.
argcomplete.pytest.units or qalc?| Feature | Lumix | GNU Units | qalc |
|---|---|---|---|
| Multilingual CLI (5 languages) | β | β | β |
| 30+ categories out of the box | β | β | β |
| Shell autocompletion | β (argcomplete) | β | β |
| Modular, add your own converter in 5 min | β | β | β |
| Docker image with 0 config | β | β | β |
| Native hashing, IP tools, Morse | β | β | β |
| Open source, Python, easily hackable | β | β | β |
Lumix is not just another unit converter β it's a pluggable framework for CLI conversions, designed to be extended by developers and used by anyone in their native language.
pip install lumix
git clone https://github.com/davideferigato/lumix.git
cd lumix
python -m venv venv && source venv/bin/activate # or `venv\Scripts\activate` on Windows
pip install --upgrade pip
pip install -e .
lumix --help
Lumix follows a simple pattern:
lumix <language> <converter> from <source> to <target> <value>
For example:
lumix en temperature from C to F 36.5
lumix it temperatura da C a F 36,5 # Italian uses comma as decimal separator
| Category | Example command | Input units | Output units |
|---|---|---|---|
| Temperature | lumix en temperature from C to F 36.5 | C, F, K | C, F, K |
| Currency | lumix en currency from EUR to USD 50 | EUR, USD, GBP, JPY, ... | EUR, USD, GBP, JPY, ... |
| Number bases | lumix en base from dec to hex 255 | dec, bin, hex, oct | dec, bin, hex, oct |
| Weight | lumix en weight from kg to lb 75 | kg, lb, oz, g, mg, st, t | same |
| Length | lumix en length from m to ft 1.80 | m, km, cm, mm, mi, yd, ft, in, nmi | same |
| Volume | lumix en volume from l to gal 2 | l, ml, m3, gal, qt, pt, cup, fl oz | same |
| Area | lumix en area from m2 to ft2 50 | m2, km2, ft2, mi2, ha, acre, cm2, mm2, yd2, in2 | same |
| Speed | lumix en speed from km/h to mph 130 | km/h, mph, m/s, kn | same |
| Time | lumix en time from days to hours 3 | s, min, h, d, w | same |
| Energy | lumix en energy from J to kcal 500 | J, kJ, cal, kcal, Wh, kWh, eV | same |
| Pressure | lumix en pressure from bar to psi 2 | Pa, bar, atm, mmHg, psi | same |
| Power | lumix en power from W to hp 1000 | W, kW, hp | same |
| Digital Data | lumix en data from MB to GB 1500 | B, KB, MB, GB, TB | same |
| Bitrate | lumix en bitrate from Mbps to Kbps 100 | bps, kbps, Mbps, Gbps, Tbps | same |
| Hash | lumix en hash sha256 "hello world" | md5, sha1, sha224, sha256, sha384, sha512 | hash string |
| Color | lumix en color from rgb to hex 255,255,255 | rgb, hex | rgb, hex |
| IP Tools | lumix en iptools cidr-to-range 192.168.1.0/24 | CIDR, IP, binary | range, binary, netmask, etc. |
| Time Zones | lumix en timezones from Europe/Rome to Asia/Tokyo "2025-08-02 14:00" | any IANA timezone | any IANA timezone |
| Date | lumix en date from us to iso 08/02/2025 | us, iso, eu, jp | us, iso, eu, jp |
| Calendar | lumix en calendar diff 2025-01-01 2025-12-31 | YYYY-MM-DD | days |
| Age | lumix en age from 1990-05-23 | YYYY-MM-DD | years |
| Passwords | lumix en passwords generate length 16 symbols true | length, symbols flag | random password |
| Country | lumix en country from code to name IT | country code | country name |
| Language | lumix en language from name to code "Italian" | language name | ISO code |
| Unit Symbols | lumix en unitsymbols from W to "unit name" | symbol or name | symbol, name, type |
| Roman | lumix en roman from 2025 | 1β3999 | Roman numeral |
| Morse | lumix en morse to-text "... --- ..." | text or Morse | text or Morse |
| Timezone Bot | lumix en timezonebot what-time Tokyo | city name | current local time |
| Spoken | lumix en spoken from 123456 | integer | number in words (en/it) |
| Phonetic | lumix en phonetic for CIAO | text | NATO phonetic alphabet |
Lumix integrates with argcomplete to provide smart tab completion.
pip install argcomplete
eval "$(register-python-argcomplete lumix)"
# Add the eval line to your ~/.bashrc or ~/.zshrc to make it permanent
Note: Autocompletion is still under active improvement.
Run Lumix in a container without any local installation:
docker build -t lumix .
docker run --rm lumix en temperature from C to F 36.5
We use pytest for unit tests. To run the full suite:
pytest tests/
Each module has its own test file (test_<module>.py) to ensure reliability.
Content type
Image
Digest
sha256:3b8eb549aβ¦
Size
52.1 MB
Last updated
3 months ago
docker pull davideferigato/lumix