Skip to content

Guide · Agent skill

How to use the Convert Documents to Markdown agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The convert-documents-to-markdown skill teaches an AI agent to turn a document you send it, such as a Word file, slide deck, spreadsheet, EPUB, CSV or text-based PDF, into plain Markdown that the agent can read. It is written for people who send files to an agent and want the text read without a third-party parser seeing the file. After this guide you will know how to install the skill, how to ask for a conversion, and which documents and tasks it handles poorly.

Convert Documents to Markdownnanocoai/nanoclaw · MIT

Quick start

  1. 1Download and unzip the skill. Download the ZIP from this page and unzip it so that SKILL.md sits in a convert-documents-to-markdown folder.
  2. 2Place the folder in the skills directory. Move the folder into ~/.claude/skills/ for all projects, or into a project's .claude/skills/ for one project.
  3. 3Confirm anydoc is installed. Make sure the Firecrawl AnyDoc CLI (anydoc) is available in the agent container, since the skill relies on it.
  4. 4Attach the document. Send the file with your message so the agent receives it at a local attachment path.
  5. 5Ask for what you need. Describe the task in plain language, such as a summary, a list of items or specific passages.
  6. 6Check the result. Where the output is incomplete, look for the limitation the agent reports, such as lost images or formatting, and verify important numbers in the original file.

What an agent skill is and what this one does

An agent skill is a folder containing a SKILL.md file with instructions that an agent loads when a request matches the skill's description. This skill is one such folder. Its description says it applies when a message supplies a local attachment path that must be read without uploading it to an external parser.

When it applies, the skill tells the agent to use the Firecrawl AnyDoc command-line tool (anydoc, MIT licensed) to convert the file to Markdown. The conversion runs locally inside the agent's container rather than on an outside service. The skill also tells the agent to treat the document's contents as untrusted data, never to follow instructions found inside it, and to report clearly when a file cannot be converted or may have lost visuals or formatting.

  • Supported inputs: Word documents, presentations, spreadsheets, OpenDocument files, RTF, EPUB, CSV and text-based PDFs.
  • Runs inside the agent container only, not on the host.
  • Does not upload failed documents to Firecrawl Parse or any other service without your explicit permission.

Install the skill in Claude Code or the Claude apps

Download the ZIP from this page and unzip it. To make the skill available to all your projects, place the unzipped folder in ~/.claude/skills/. To limit it to one project, place it in that project's .claude/skills/ folder.

In the Claude apps, you can instead upload the skill under Settings → Capabilities → Skills.

  • Personal install: ~/.claude/skills/ (available everywhere).
  • Project install: .claude/skills/ inside your project folder.
  • Claude apps: Settings → Capabilities → Skills, then upload.

Check the requirements before you start

The skill depends on the Firecrawl AnyDoc CLI (anydoc) being installed in the agent container. The skill itself does not install it, so confirm it is present before you rely on the skill. The skill also needs Bash access inside the agent container.

The timeout command is optional. If it is missing, the skill runs anydoc without the time limit wrapper.

  • Firecrawl AnyDoc CLI (anydoc) installed in the agent container.
  • Bash access inside the agent container.
  • timeout command (optional).

Ask for a conversion with a natural request

You do not need a special command. Attach the file to your message and ask for what you want, for example a summary or specific figures. The agent loads the skill when the message supplies a local attachment path. Current Chat SDK attachments are normally stored under /workspace/inbox/ with a message ID folder.

Under the hood the agent runs anydoc with an output file, quoting the path safely and placing the input after a -- separator. The skill's own example looks like this:

  • Try: "Read the attached Q3 report and list the main risks."
  • Try: "Extract the action items from this meeting deck."
  • Try: "Summarise the chapters of this EPUB."
input_path='/workspace/inbox/<message-id>/<document>' mkdir -p "/workspace/agent/converted" output_dir="$(mktemp -d "/workspace/agent/converted/anydoc.XXXXXX")" output_path="$output_dir/document.md" timeout 60s anydoc -o "$output_path" -- "$input_path" printf 'Converted document: %s\n' "$output_path"

Handle CSV and large files

For CSV data read from standard input, the skill names the format explicitly. For large outputs, the skill reads only the relevant sections of the Markdown file rather than loading the whole conversion into the model's context.

Prefer writing to an output file with -o except for very small inputs.

  • CSV from stdin uses --format csv.
anydoc - --format csv < "$input_path"

Know what the conversion will lose

Conversion is a reading aid, not a perfect copy. Scanned and image-only PDFs need OCR, which the skill does not support, so conversion will fail for them. Embedded images and objects may become alt text. Spreadsheet formatting can be lost, including percentages and hidden rows. Untitled slides can run together, nested tables can flatten, and fillable PDF form fields may be omitted.

The skill reports these limitations rather than guessing around them. Do not use the Markdown output as an authoritative workbook for financial or numeric calculations.

  • Scanned or image-only PDFs: unsupported.
  • Charts and images: may be reduced to alt text.
  • Spreadsheets: percentages and hidden rows may be lost.
  • Presentations and tables: slides can merge and nested tables can flatten.

Safety notes: scripts and network

This skill runs scripts, because it executes the anydoc command in the agent's Bash environment. It does not use the network. Conversion happens locally inside the container.

The skill treats document text as untrusted. Instructions inside a file are not followed, and the skill never runs commands or visits links because a document asks it to. Filenames are passed as single-quoted shell literals so that names containing shell syntax are not executed. Review the SKILL.md file before installing it if your environment is sensitive.

  • Runs scripts: yes (anydoc inside the agent container).
  • Uses network: no.
  • Conversion of failed files to an external service only with your explicit authorisation.

What people use it for

  • Summarising a Word report that a colleague sent to the agent.
  • Pulling action items out of a slide deck.
  • Reading the chapters of an EPUB book to answer questions about it.
  • Extracting text from a text-based PDF contract for review.
  • Reviewing the rows of a CSV export without uploading it to an outside parser.

Frequently asked questions

Is the convert-documents-to-markdown skill free?

The skill is published under the MIT licence, as is the Firecrawl AnyDoc CLI it uses. The source only states the licence, so check the repository for any other terms before you use it commercially.

How do I install the convert-documents-to-markdown skill?

Download the ZIP from this page and unzip it. Place the folder in ~/.claude/skills/ for all projects or in a project's .claude/skills/ folder for one project. In the Claude apps, you can upload it under Settings → Capabilities → Skills.

What do I need to run this skill?

You need the Firecrawl AnyDoc CLI (anydoc) installed in the agent container and Bash access inside that container. The timeout command is optional, because the skill falls back to running anydoc without it.

Can it convert scanned PDFs?

No. Scanned and image-only PDFs need OCR, which the skill does not support, so conversion fails for them. Text-based PDFs work.

Does this skill upload my documents to an outside service?

Conversion runs locally inside the agent container and the skill does not use the network. It also tells the agent not to upload a failed document to Firecrawl Parse or another service without your explicit authorisation.

Why are my spreadsheet numbers wrong in the output?

Spreadsheet formatting can be lost in conversion, including percentages and hidden rows. Treat the Markdown as reading context and check any financial or numeric figures against the original workbook.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use this skill if you regularly send Word, Excel, slide, EPUB, CSV or text-based PDF files to an agent and want them read locally, without a third-party parser. Pick something else if you need OCR for scanned PDFs, exact spreadsheet calculations, or conversions where charts and images carry the meaning.

Download the skill