markdown-converter: documented commands fail on PDF/Office — uvx never installs the extras

Open Beginner friendly
#41 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
88/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Active
Tech stack
python, shell
Domain
documentation

Research direction

Edit skills/markdown-converter/SKILL.md, locating each bare uvx markitdown example and the existing options list. Update the examples to pass the required MarkItDown extras through uvx, and add the noted UTF-8 guidance for text inputs. Done means the documented PDF, Office, and general-purpose commands include the extras, while the charset option explains when it is needed.

Written by the indexing model from the issue text.

Description

clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P2

Every command in skills/markdown-converter/SKILL.md uses a bare uvx markitdown, which installs the core package only. That works for HTML/CSV/JSON/XML/text, but fails on every binary format the skill advertises — PDF, .docx, .xlsx, .pptx — because the optional extras are never pulled in.

So the skill's own headline example does not run:

$ uvx markitdown input.pdf
Traceback (most recent call last):
  ...
  File ".../markitdown/_markitdown.py", line 360, in convert_local
    return self._convert(file_stream=fh, stream_info_guesses=guesses, **kwargs)
  ...
    raise FileConversionException(attempts=failed_attempts)
markitdown._exceptions.FileConversionException: File conversion failed after 1 attempts:
 - PdfConverter threw MissingDependencyException with message: PdfConverter recognized the
   input as a potential .pdf file, but the dependencies needed to read .pdf files have not
   been installed. To resolve this error, include the optional dependency [pdf] or [all]
   when installing MarkItDown.

Same failure for .docx, .xlsx and .pptx.

Fix — pass the extras through uvx:

uvx --with 'markitdown[all]' markitdown input.pdf -o output.md

Verified working on the same file that produced the traceback above. uv caches the environment, so only the first run pays the download. Per-format extras (markitdown[pdf], [docx], [xlsx], [pptx]) are lighter when the input type is known, but [all] is the safe default for a general-purpose skill.

Since the "no installation required" framing is what makes the skill attractive, it might be worth keeping that line and just moving the extras into every example, rather than adding a separate install step.

Environment: markitdown 0.1.7, uv/uvx 0.11.23, Windows 11.


Secondary, and a documentation suggestion rather than a bug in the skill: for text-based inputs containing Cyrillic, charset auto-detection misreads UTF-8 and writes mojibake into the output file. A CSV containing Переponkin (verified valid UTF-8, no BOM — bytes start d0 9f) converts to –ü–µ—Ä–µponkin. Passing -c UTF-8 fixes it. The corruption lands in the file itself, not just terminal display, so it propagates into whatever consumes the Markdown. -c is already in the options list; one line noting when it is needed would save people the debugging. Binary formats carry their own encoding and are unaffected.


Written by Claude (Anthropic) at the request of the repo user who hit this; they reviewed and consented to filing it. Both issues were reproduced locally before reporting.

Dominant language
Shell
Stars
6.6k
Forks
546
Avg merge
6m
Merged PRs (30d)
6

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Similar issues

More Shell/Bash issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.