sleepyconvert is a Typer CLI that converts files between formats, inferring intent solely from the input and output extensions — no subcommands, no flags to memorize. Point it at a source and a destination and it does the right thing.
Install
uv tool install sleepyconvert # or: pipx install sleepyconvert
Configure
sleepyconvert is a sleepy util and reads its settings from the shared ~/sleepyconfig/params.yml, using the convert_ key prefix. If the file is absent it writes only its own section (below) and says so; if a value it needs is missing it prints this snippet and asks you to verify your config.
# sleepyconvert
convert_output_archive_dir: null # a dir → also save a dated copy of every output; null → off
convert_output_archive_dir— when set to a directory, every conversion also drops a dated copy of its output there as<archive_dir>/<yyyy>_<mm>_<dd>_<output_filename>.
Supported conversions
| Category | Extensions |
|---|---|
| Data | csv, parquet, json, pkl, xlsx |
| Images | png, jpg, jpeg |
| Documents | html, pdf, md |
Any pair within the same category is valid (in either direction); cross-category conversions are rejected.
Usage
sleepyconvert <input_path> <output_path>
Both paths resolve relative to the current directory, and their extensions decide the conversion.
Data — round-trip between tabular formats:
$ sleepyconvert sales.csv sales.parquet
Created /Users/dingus/work/sales.parquet
Images — re-encode between raster formats:
$ sleepyconvert photo.png photo.jpg
Created /Users/dingus/pics/photo.jpg
Documents — convert between markup and PDF:
$ sleepyconvert notes.md notes.pdf
Created /Users/dingus/docs/notes.pdf
With convert_output_archive_dir set, each conversion also writes a dated archive copy:
$ sleepyconvert sales.csv sales.parquet
Created /Users/dingus/work/sales.parquet
Archived copy written to /Users/dingus/archive/2026_02_09_sales.parquet
Mixing categories fails fast with a clear message:
$ sleepyconvert data.csv chart.png
Error: Input and output extensions must belong to the same type group.
Use `convert --help` to see the supported categories.
Development
uv venv
uv pip install -e ".[dev]"
uv run pytest # or ./tools/test.sh
Documentation
- Specification — what the tool does
- Project outline — repository layout
- Test drive — setup, testing, and CLI usage
- Adding a conversion — how to add a new format pair
- Publishing — release to PyPI
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 sleepyconvert-2.3.1.tar.gz.
File metadata
- Download URL: sleepyconvert-2.3.1.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edbd3a805cb10feceec9ac49b30aa8cd6b0048a6c9e645079b0fa5d7a53bfaf5
|
|
| MD5 |
55608d85ffd6f914fb7f212bfdf93a38
|
|
| BLAKE2b-256 |
9075e2220d0071668e2428cb16d49a81da178da6666ed4671d53ed3a924f2c0b
|
File details
Details for the file sleepyconvert-2.3.1-py3-none-any.whl.
File metadata
- Download URL: sleepyconvert-2.3.1-py3-none-any.whl
- Upload date:
- Size: 31.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb6381c3f25989982524e92fc63b35b26e9decae09cc866b3e7d2303aeec56f0
|
|
| MD5 |
b7238696f919a58780110cdf4d160396
|
|
| BLAKE2b-256 |
fb87f35115c1bb555511013918ea8b0708fc6e7af1208684bd183705a1669c66
|