Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Convert files between formats — PDF to Word, HEIC to JPG, MP4 to MP3, CSV to JSON, EPUB to MOBI, and 999 total routes across images, video, audio, documents, data, fonts, ebooks, and archives. Free via changethisfile.com, no API key or signup. Use when the user needs a file converted to a different format.
.claude/skills/itamarzand88-file-conversion/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 110% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -19% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -12% | 0% |
<!-- source: file-conversion-changethisfile — https://raw.githubusercontent.com/wshobson/agents/main/plugins/file-conversion/skills/file-conversion/SKILL.md -->
Convert files between 999 conversion routes using the free ChangeThisFile service. No account or API key required. Conversions run server-side (FFmpeg, LibreOffice, Calibre, 7-Zip, sharp, Ghostscript); files are deleted within 24 hours.
changethisfile:convert_file, changethisfile:list_conversions) — use them directly. convert_file takes source_url OR base64_content + source_format, plus target_format, and returns a temporary download URL.bashscripts/convert.sh <input-file> <target-format> [output-file] # e.g. scripts/convert.sh report.docx pdf # prints the output file path on success
The script path is relative to this skill's directory. It base64-encodes the file, calls the hosted MCP endpoint over plain HTTPS, downloads the result, and writes it next to the input (or to [output-file]).
bashcurl -sS -X POST https://changethisfile.com/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"convert_file","arguments":{"source_url":"<FILE_URL>","target_format":"pdf"}}}'
The response text contains a download URL — fetch it with curl -o <output>.
Ask before guessing if a conversion is exotic:
bashcurl -sS -X POST https://changethisfile.com/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_conversions","arguments":{"source_format":"docx"}}}'
Omit source_format for a grouped summary of all 999 routes.
POST /v1/convert.changethisfile.com. On claude.ai, the code-execution sandbox restricts egress by default — prefer the MCP connector there, or the user can allow the domain under Settings → Capabilities.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 5,371 | 12,816 | +139% | 1 | 1 | 0% | 1,155 | 1,913 | +66% | 0 | 0 | — |
case-02 | fail→pass | 5,507 | 6,783 | +23% | 1 | 1 | 0% | 1,076 | 2,256 | +110% | 0 | 0 | — |
case-03 | fail→fail | 8,225 | 6,795 | -17% | 1 | 1 | 0% | 612 | 1,370 | +124% | 0 | 0 | — |
case-04 | fail→pass | 10,980 | 4,523 | -59% | 1 | 1 | 0% | 2,009 | 1,628 | -19% | 0 | 0 | — |
case-05 | fail→pass | 7,121 | 2,053 | -71% | 1 | 1 | 0% | 1,278 | 1,105 | -14% | 0 | 0 | — |
case-06 | fail→pass | 7,202 | 1,498 | -79% | 1 | 1 | 0% | 1,306 | 1,006 | -23% | 0 | 0 | — |
case-07 | pass→pass | 7,152 | 2,424 | -66% | 1 | 1 | 0% | 1,143 | 1,285 | +12% | 0 | 0 | — |
case-08 | fail→pass | 6,947 | 1,580 | -77% | 1 | 1 | 0% | 1,192 | 1,044 | -12% | 0 | 0 | — |
case-09 | fail→pass | 10,388 | 3,844 | -63% | 1 | 1 | 0% | 1,721 | 1,421 | -17% | 0 | 0 | — |
case-10 | fail→pass | 8,616 | 2,504 | -71% | 1 | 1 | 0% | 1,543 | 1,245 | -19% | 0 | 0 | — |
case-11 | fail→fail | 7,948 | 3,293 | -59% | 1 | 1 | 0% | 1,483 | 1,489 | +0% | 0 | 0 | — |
case-12 | fail→pass | 12,662 | 2,074 | -84% | 1 | 1 | 0% | 2,118 | 1,008 | -52% | 0 | 0 | — |
case-13 | fail→fail | 3,935 | 1,734 | -56% | 1 | 1 | 0% | 649 | 1,052 | +62% | 0 | 0 | — |
case-14 | pass→pass | 7,503 | 1,592 | -79% | 1 | 1 | 0% | 1,257 | 991 | -21% | 0 | 0 | — |
case-15 | pass→pass | 3,676 | 2,327 | -37% | 1 | 1 | 0% | 608 | 1,235 | +103% | 0 | 0 | — |
case-16 | pass→pass | 6,832 | 2,054 | -70% | 1 | 1 | 0% | 1,188 | 1,045 | -12% | 0 | 0 | — |
case-17 | fail→pass | 7,741 | 2,321 | -70% | 1 | 1 | 0% | 1,376 | 1,250 | -9% | 0 | 0 | — |
case-18 | pass→pass | 9,257 | 1,412 | -85% | 1 | 1 | 0% | 1,488 | 1,010 | -32% | 0 | 0 | — |
case-19 | fail→pass | 7,277 | 1,185 | -84% | 1 | 1 | 0% | 1,271 | 932 | -27% | 0 | 0 | — |
case-20 | pass→pass | 8,182 | 5,631 | -31% | 1 | 1 | 0% | 1,877 | 2,072 | +10% | 0 | 0 | — |
case-21 | pass→pass | 9,991 | 4,697 | -53% | 1 | 1 | 0% | 2,150 | 1,835 | -15% | 0 | 0 | — |
case-22 | pass→pass | 6,685 | 6,031 | -10% | 1 | 1 | 0% | 1,422 | 2,129 | +50% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +45 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.