meltify
Melt files of any format into prompt-ready text where every line cites its source
Agents misread blurry digits, miss text a PDF hides, can't watch video, and paraphrase the one condition that mattered. meltify turns images, PDFs, office files, mail, video and audio into markdown an agent can quote, puts a citation on every block, and checks answers before they go out.
Quickstart
Claude Code:
/plugin marketplace add jeon-jihyeon/meltify
/plugin install meltify@meltify
Codex, Gemini CLI, Cursor and other agents that read Agent Skills:
npx skills add jeon-jihyeon/meltify
Command line only:
uvx meltify read ./inputs
The skills call the meltify command. If it isn't installed, the plugin launcher runs it through uvx, so uv is the only thing you need.
What it does
| Command | Input | Output |
|---|---|---|
read |
files and folders of mixed formats | one cited markdown file per item, plus a list of what still needs OCR, transcription or a hidden-text check |
ocr |
images and scanned PDF pages | each engine's lines with positions, and the values the engines disagree on |
hidden |
PDFs | text a reader doesn't see and why, with page and position |
media |
video, audio or a video URL | timestamped full-resolution frames and a timestamped transcript |
submit |
candidate files and a scoring endpoint | rate-limited submissions that skip duplicates and keep the best score |
check |
an answer file or a string | violations of a schema, counts, unique keys and text rules |
brief |
a problem statement | every condition line quoted with its line number, plus a board for juggling several problems |
doctor |
nothing | which engines, binaries and keys are available, and how to add the rest |
Each command has a skill of the same name, such as meltify-ocr, that tells the agent when to run it and what to do with the result.
Citations
Every result carries src and a one-line cite:
| Input | Cite |
|---|---|
| PDF text | report.pdf#p3@pt(72,95,140,103) |
| Image region | menu.png@px(120,40,380,72) |
| Spreadsheet cell | calendar.xlsx#Calendar!B7 |
| Mail attachment | handover.eml#att=cal.xlsx#Calendar |
| Text line | notes.txt:42 |
| Media span | call.m4a@00:01:23.4-00:01:27.0 |
| JSON value | answers.json#$[3].reason |
Every command prints a table by default, and the full result with --json. Exit codes:
0: success1: violations, failed checks or other errors2: usage error or bad input3: a needed engine, key, binary or base module is missing
Engines
| Task | Local | Paid API |
|---|---|---|
| OCR | Apple Vision on macOS, PaddleOCR | Gemini, Claude, any OpenAI-compatible endpoint |
| Speech | MLX Whisper on Apple Silicon, whisper.cpp | any OpenAI-compatible transcription endpoint |
auto uses local engines only. Paid engines run only when you name them in meltify.toml or on the command line. An agent can also feed in what it reads in an image with meltify ocr --reading agent=FILE, so its own reading gets cross-checked against the local engines without any API key.
Optional parts install on request:
meltify doctor --install office # docx, pptx and Outlook msg
meltify doctor --install media # video URLs through yt-dlp
meltify doctor --install asr-mlx # local speech on Apple Silicon
meltify doctor --install ocr-paddle # PaddleOCR
media needs ffmpeg, and YouTube downloads need deno.
Configuration
Settings are layered, lowest precedence first:
- The packaged defaults
$XDG_CONFIG_HOME/meltify/config.toml(usually~/.config/meltify/config.toml)- The nearest
meltify.toml, searched from the working directory up to the git root, or the file you pass with--config. Outside a git repository, only the working directory is searched MELTIFY_<KEY>andMELTIFY_<SECTION>_<KEY>environment variables- Command-line flags
See examples/meltify.toml for a sample.
Limits
- Text drawn inside an image is just pixels, so
hiddenfinds it only through--contrastrendering and OCR - OCR agreement means the engines read the same value, not that the value is right. A value read only by LLM engines is never marked agreed
- Speech recognition and OCR quality depend on the engine and the input
- The plugin launcher is a POSIX shell script, so Windows isn't supported
License
MIT. meltify depends on PyMuPDF, which is AGPL-3.0, so distributing a product that bundles it comes with AGPL obligations.
Metadata
Release files for meltify 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| meltify-0.1.0.tar.gz | 43.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meltify-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 102.6 kB
Release files / meltify-0.1.0.tar.gz
| Download URL | meltify-0.1.0.tar.gz |
|---|---|
| Size | 43.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
480708e19eca7afabb81f00a583648c65085428b2560851e2e0094d7bf294fe4
|
|
BLAKE2b-256 checksum How to use checksums |
e0858b2f06bce42c124d6711bebe20b5cd48b6797a3e24f4811af43c70cc3cea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / meltify-0.1.0-py3-none-any.whl
| Download URL | meltify-0.1.0-py3-none-any.whl |
|---|---|
| Size | 58.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6dd6788a289fdffda491a69a45409c224f3b4df01405c82e70a5895c8c99ba4e
|
|
BLAKE2b-256 checksum How to use checksums |
a733fb0ba294c9f61fb5e440701654397e17d3c670b6d3698e266b557de52946
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency log