Communitygithub.com

OpenTechIL/markitdown-for-ai

MarkItDown é uma ferramenta Python que converte vários formatos de documento para Markdown. Esta imagem Docker fornece uma versão containerizada portátil e fácil de usar que funciona imediatamente.

O que é markitdown-for-ai?

Esta skill de agente de IA, 'Document to Markdown Conversion', permite que agentes como Claude Code, Cursor ou Codex convertam documentos (PDF, DOCX, PPTX, XLSX, HTML) para Markdown usando uma imagem Docker pré-construída. A principal vantagem é eliminar a necessidade de instalação local do Python ou bibliotecas de manipulação de documentos: tudo roda dentro de um contêiner, garantindo portabilidade e isolamento. O fluxo de trabalho típico é: o usuário solicita a leitura ou análise de um arquivo, o agente executa um comando Docker (ou Podman, como fallback automático) passando o arquivo via pipe ou montagem de volume, captura a saída stdout como Markdown e, em seguida, raciocina ou processa o conteúdo extraído. A skill suporta Docker e Podman, oferecendo comandos equivalentes para ambos os runtimes, com recomendações sobre quando usar cada um. Também inclui exemplos práticos para casos comuns, como sumarização de PDF, extração de tabelas de Excel, conversão de slides do PowerPoint e preparação de documentos para pipelines de RAG ou embedding.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add OpenTechIL/markitdown-for-ai

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Conversão de Documentos para Markdown

Converta documentos para Markdown usando a imagem Docker markitdown-for-ai. Não é necessário instalar Python localmente — tudo roda dentro do Docker.

Pré-requisitos

⚠️ Esta skill requer que o Docker ou Podman esteja instalado e disponível em seu sistema. Certifique-se de que o Docker Desktop ou Podman esteja em execução antes de usar esta skill.

Comandos Rápidos

Esta skill usa Docker por padrão. Se o Docker não estiver disponível, ela tentará automaticamente o Podman.

Do stdin (pipe):

# Tente Docker primeiro
docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < file.pdf

# Se o Docker não estiver disponível, use Podman:
podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < file.pdf

De um arquivo local (montar diretório atual):

# Tente Docker primeiro
docker run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest file.docx

# Se o Docker não estiver disponível, use Podman:
podman run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest file.docx

Salvar saída em um arquivo:

# Tente Docker primeiro
docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < input.pptx > output.md

# Se o Docker não estiver disponível, use Podman:
podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < input.pptx > output.md

Pipe do cat:

# Tente Docker primeiro
cat file.xlsx | docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest

# Se o Docker não estiver disponível, use Podman:
cat file.xlsx | podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest

Formatos Suportados

FormatoExtensão
PDF.pdf
Word.docx
PowerPoint.pptx
Excel.xlsx
HTML.html

Baixar a Imagem (primeira vez)

docker pull ghcr.io/opentechil/markitdown-for-ai:latest

Fluxo de Trabalho do Agente

Quando um usuário lhe der um arquivo de documento para ler ou analisar:

  1. Verifique se o Docker está disponível — se não, tente o Podman (a skill faz fallback automaticamente)
  2. Execute o comando de conversão acima
  3. Capture a saída stdout como o conteúdo Markdown
  4. Leia e raciocine sobre o Markdown diretamente — nenhum arquivo temporário é necessário

Exemplo — usuário diz "resuma este PDF":

# Capture o markdown em uma variável do shell ou pipe diretamente para o próximo passo
docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < report.pdf

# Se o Docker falhar, tente Podman:
podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < report.pdf

Quando Usar Esta Skill

Use esta skill sempre que precisar extrair ou processar conteúdo de documentos. Aqui estão cenários comuns:

Conversão e Extração de Documentos

  • Lendo arquivos DOCX: "Leia este documento Word", "extraia texto de docx"

    docker run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest document.docx
    
    # Ou com Podman se o Docker não estiver disponível:
    podman run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest document.docx
    
  • Lendo arquivos PDF: "Converta PDF para markdown", "extraia conteúdo de PDF"

    docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < report.pdf
    
    # Ou com Podman:
    podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < report.pdf
    
  • Processando PowerPoint: "Extraia slides de pptx", "converta apresentação"

    docker run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest slides.pptx
    
    # Ou com Podman:
    podman run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest slides.pptx
    
  • Extraindo dados do Excel: "Leia planilha", "converta xlsx para markdown"

    docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < data.xlsx
    
    # Ou com Podman:
    podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < data.xlsx
    
  • Extraindo HTML: "Converta página web para markdown", "extraia conteúdo de artigo"

    docker run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest page.html
    
    # Ou com Podman:
    podman run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest page.html
    

Casos de Uso de IA e Automação

  • Resumindo documentos: "Resuma este PDF/relatório/documento" — primeiro converta para markdown, depois use o conteúdo extraído para sumarização

    content=$(docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < document.pdf)
    
    # Se o Docker falhar, tente Podman:
    content=$(podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < document.pdf)
    
    # Em seguida, alimente $content ao seu prompt de sumarização
    
  • Analisando contratos/acordos: "Extraia termos-chave deste PDF", "leia o contrato"

    docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < contract.pdf
    
    # Ou com Podman:
    podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < contract.pdf
    
  • Processando arquivos enviados: Quando usuários enviam documentos para análise — converta primeiro, depois raciocine sobre o markdown

  • Processamento em lote de documentos: Converta vários arquivos em um loop para indexação ou análise

    for f in *.pdf; do
      docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < "$f" > "${f%.pdf}.md"
      # Tente também com Podman, se necessário:
      # podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < "$f" > "${f%.pdf}.md"
    done
    
  • Pipelines de RAG/embedding: "Prepare documentos para armazenamento vetorial" — converta documentos para markdown para chunking e embedding

    docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < document.pdf | text-embeddings-cli embed
    
    # Ou com Podman:
    podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < document.pdf | text-embeddings-cli embed
    

Exemplos

Solicitação do UsuárioAção
"Leia este PDF para mim"Converta PDF para markdown e exiba o conteúdo
"O que há neste documento Word?"Converta DOCX para markdown e resuma
"Extraia a tabela deste arquivo Excel"Converta XLSX — tabelas são preservadas no formato markdown
"Converta esta página web para markdown"Converta HTML para markdown
"Resuma a apresentação"Converta slides PPTX para markdown

Erros Comuns

ErroCorreção
Usar o placeholder {owner}Use ghcr.io/opentechil/markitdown-for-ai:latest
Esquecer a flag -i para stdinSempre adicione -i ao usar pipe
Montar caminho erradoUse $(pwd) e -w /data juntos
Esperar que o Docker encontre caminhos relativos sem montagemMonte com -v "$(pwd):/data"

Docker vs Podman

Esta skill suporta tanto Docker quanto Podman. Escolha com base no seu ambiente:

Quando usar Docker

  • Estação de trabalho de desenvolvimento - Docker Desktop no macOS/Windows
  • Servidores de produção - Sistemas Linux com Docker Engine
  • Na maioria dos casos - Total paridade de recursos, configuração mais fácil

Quando usar Podman

  • Contêineres sem root - Melhor segurança e isolamento
  • Servidores Linux sem Docker - Nenhum daemon necessário
  • Ambientes Cloud Native - Funciona com Kubernetes e orquestração de contêineres
  • Conformidade de segurança - Executa sem privilégios de root

Escolhendo o comando certo

Os exemplos acima fornecem comandos tanto para Docker quanto para Podman. A skill recomenda tentar Docker primeiro — se falhar com "comando não encontrado" ou outros erros de execução, simplesmente use o comando Podman.

Tanto Docker quanto Podman compartilham a mesma imagem (ghcr.io/opentechil/markitdown-for-ai:latest), então os comandos são idênticos, exceto por docker vs podman.

Verificando qual está disponível

Verifique qual runtime de contêiner está instalado:

# Verifique o Docker
docker --version

# Verifique o Podman
podman --version

Se o Docker não estiver disponível, o Podman pode ser usado como substituto direto.

Baixando a imagem (configuração única)

Como Docker e Podman compartilham o mesmo registro, o comando para baixar é idêntico:

docker pull ghcr.io/opentechil/markitdown-for-ai:latest
podman pull ghcr.io/opentechil/markitdown-for-ai:latest

Baixe uma vez com seu runtime preferido, e ambos terão acesso à imagem localmente.

Habilidades Relacionadas