🛠 AI-инструменты

Anydoc от Firecrawl: документы в Markdown за 4 мс

Михаил ИванинМихаил Иванин5 августа 2026 г.6 мин чтения
Anydoc от Firecrawl: документы в Markdown за 4 мс
✈️
Свежие гайды и обзоры выходят в моём Telegram первыми
Подписаться →

Anydoc от Firecrawl: конвертирует документы в Markdown за 4 миллисекунды

Anydoc - опенсорсная библиотека на Rust от команды Firecrawl, которая переводит Word, PDF, презентации, таблицы и ещё несколько офисных форматов в чистый Markdown. Медиана конверсии - 4.4 миллисекунды на документ, всё крутится локально, без внешних API и ML-моделей. Лицензия MIT, 4 300+ звёзд на GitHub за первые двое суток после релиза. Основной сценарий - подготовить документы, чтобы скормить их нейросети: RAG, агенты, кастомные пайплайны обучения.

Что делает anydoc и зачем он вообще нужен

Любая работа с документами через LLM упирается в одну задачу: превратить .pdf / .docx / .pptx в текст, который модель поймёт без потерь. Готовые обёртки типа LangChain-парсеров либо дорогие, либо теряют структуру: заголовки становятся обычным абзацем, таблицы плывут, footnotes пропадают.

Anydoc решает это одним бинарником. На входе - файл или байты, на выходе - GitHub-Flavored Markdown с сохранённой структурой: заголовки с якорями, жирный/курсив, инлайн-код, ссылки, вложенные списки с оригинальной нумерацией, таблицы с объединёнными ячейками, сноски, комментарии докладчика в презентациях. Картинки внутри документа сохраняются как alt-текст, а сырые байты доступны через объектную модель - если понадобится, можно достать и отдельно.

Сайд-эффект: он быстрый настолько, что его не жалко звать хоть в цикле. Медианное время - 4.4 мс, это на порядок быстрее ближайшего конкурента.

Какие форматы поддерживает anydoc

Восемь семейств, 14 расширений - весь мейнстрим офисной документации:

СемействоРасширения
Word.doc, .docx, .docm
PowerPoint.ppt, .pps, .pot, .pptx, .pptm, .ppsx, .ppsm
Excel.xls, .xlsx, .xlsm, .xlsb
OpenDocument.odt, .ods, .odp
Rich Text Format.rtf
EPUB.epub
CSV.csv
PDF.pdf (текстовые, без OCR)

Важный нюанс про PDF: anydoc парсит только текстовые PDF - те, где текст живёт в файле как текст. Отсканированные страницы, где картинка вместо букв, он не тянет: для них нужен OCR. У Firecrawl для этого есть платный хостед-сервис Firecrawl Parse, но это уже другая история.

Формат определяется не по расширению, а по содержимому - по сигнатурам внутри байтов (PDF-хедер, RTF open group, ZIP mimetype). То есть если файл называется "report.txt", но внутри реально .docx - anydoc всё равно поймёт.

Как установить и запустить anydoc за минуту

Самый быстрый способ - через npx, без глобальной установки:

npx @firecrawl/anydoc report.docx               # markdown в stdout
npx @firecrawl/anydoc slides.pptx -o slides.md  # или в файл
npx @firecrawl/anydoc - --format csv < data.csv # чтение из stdin

На первом запуске npx скачает бинарник под твою платформу и закеширует. Если хочешь постоянную команду anydoc в системе:

npm install -g @firecrawl/anydoc

Есть биндинги под Node.js, Python и Rust. Пример на Node.js:

import { toMarkdown, toMarkdownBytes } from '@firecrawl/anydoc';

const markdown = await toMarkdown('report.docx');
const fromBytes = await toMarkdownBytes(bytes);

На Python:

import anydoc
markdown = anydoc.to_markdown("report.docx")

Если лень что-то ставить - открывай firecrawl.github.io/anydoc, там WASM-версия прямо в браузере. Файл никуда не улетает, всё считается локально в твоей вкладке. Я туда закинул скачанный PDF на 60 страниц с таблицами и списками - результат вставился в буфер за секунду, таблицы и заголовки на месте.

Как быстро на самом деле - бенчмарк против других конвертеров

Авторы прогнали anydoc против шести известных парсеров на 100 реальных документах и 14 форматах. Судья - LLM (Claude Sonnet 5) сравнивал вывод вслепую с эталонным рендером страниц. Итоговый балл усредняется по всем поддерживаемым форматам:

ИнструментФорматовМедиана, мсБалл
anydoc14/144.481
mammoth1/1452.569
markitdown6/14134.864
unstructured8/14572.962
docling4/14513.657
pandoc5/14102.156
libreoffice12/141129.539

Цифра "медиана мс" - время одной тёплой конверсии на Ryzen 9 9950X3D. Разница между anydoc и вторым местом по скорости (mammoth) - на порядок, между anydoc и libreoffice - в 256 раз. По качеству anydoc обошёл всех на каждом формате, где сравнение было корректным.

Самооценка бенчмарка через LLM-судью - не идеальная методика, но фейковый выигрыш в 15+ баллов на одном формате всё равно бы не проехал. И плюс мой личный тест на WASM: у markitdown таблицы в моём .docx поехали, у anydoc - стоят как в оригинале.

Как подключить anydoc как навык к Claude Code, Cursor или Codex

Авторы выкатили anydoc сразу как Agent Skill - формат, который понимают Claude Code, Codex, Cursor, OpenCode. Одна команда - и агент сам знает, как читать любой офисный документ:

npx skills add firecrawl/anydoc

После этого агент понимает: "если пришёл .docx / .pdf / .pptx - вызови CLI anydoc, получи Markdown, работай с текстом". Тебе не надо руками писать в промпте, чем открывать файл.

Если пишешь агента с нуля через SDK - самый простой путь: попросить Claude Code сгенерить обёртку.

В Claude Code вставь запрос:

Добавь в мой агент функцию parseDocument(filepath), которая:
1. Запускает `npx @firecrawl/anydoc <filepath>` через child_process
2. Возвращает stdout как строку markdown
3. Кидает ошибку, если формат не поддерживается (список форматов - в docs anydoc)
4. Обрабатывает stdin-вариант для in-memory байтов
5. Пишет юнит-тест с одним sample.docx в /fixtures

Дальше вставляешь эту функцию в свой RAG или пайплайн - и получаешь готовый корм для эмбеддингов из любого офисного мусора.

Когда anydoc - в самый раз, а когда - overkill

Бери anydoc, если:

  • Нужен локальный конвертер без API и без пересылки файлов наружу (компливэнс, чувствительные данные).
  • В пайплайне текстовые документы разных форматов, нужен единый Markdown на выходе.
  • Скорость критична: обрабатываешь тысячи файлов, надо укладываться в минуты, а не часы.
  • Ты собираешь RAG или дообучение и не хочешь платить за парсинг.

Не бери anydoc, если:

  • Нужен OCR - твои PDF это сканы, а не текст. Тут либо Firecrawl Parse платно, либо связка Tesseract → anydoc.
  • Тебе нужны 3-5 файлов в неделю руками - открой firecrawl.github.io/anydoc и не парься.
  • Работаешь с .doc из 1997 года с макросами и полями - тесты на них у авторов есть, но покрытие не идеальное, лучше проверить на своих файлах.

FAQ

Anydoc бесплатный? Да, MIT-лицензия. Можно использовать в коммерческих проектах, форкнуть, вкорячить в свой продукт - никаких ограничений. Отдельно платный хостед-сервис Firecrawl Parse - но он опционален, для случаев с OCR.

Умеет ли anydoc в OCR отсканированных PDF? Нет, только текстовые PDF. Для сканов нужен внешний OCR, и его результат уже можно передать в anydoc или обработать отдельно. Хостед-версия у Firecrawl OCR включает.

Работает ли anydoc на Windows / Mac / Linux? Да, кроссплатформенно. npx автоматически подтянет бинарник под твою систему на первом запуске. Rust-бинарники собраны под все три платформы.

Как anydoc сравнивается с markitdown от Microsoft? По бенчмарку авторов - anydoc в 30 раз быстрее (4.4 мс против 134.8 мс медианы) и на 17 баллов выше по качеству (81 против 64). Markitdown покрывает 6 форматов из 14, anydoc - все 14. Судья - Claude Sonnet 5, вслепую.

Куда девать вывод anydoc, чтобы нейросеть его "поняла"? Markdown из anydoc - готовый корм. Разбивай на чанки по заголовкам (H1/H2), считай эмбеддинги, клади в векторную базу. Или отдавай агенту как context напрямую - модели типа Claude или GPT читают Markdown лучше, чем сырой HTML или PDF-текст.

Вывод

Anydoc - тот редкий случай, когда опенсорс не догоняет коммерческие решения, а обгоняет их и по скорости, и по качеству. Локально, бесплатно, MIT, 8 форматов из коробки, встраивается за минуту в любой пайплайн через CLI или биндинги.

Если ты собираешь что-то на нейросетях и работаешь с документами - выкидывай костыли, ставь anydoc. Если только присматриваешься - открой WASM-демо и брось туда свой самый уродский .pptx, всё сразу станет понятно.

Что дальше

Если хочешь собрать такую систему у себя - у меня есть курс по вайбкодингу и работе с нейросетями в клубе Мандарин Лаб: mandarinedu.ru. Первые уроки открыты бесплатно.

Если нужно внедрить ИИ в бизнес - процессы, агентов, автоматизацию под вашу задачу - пишите мне напрямую: t.me/Philigranchik. Разберу задачу и скажу, что реально автоматизируется, а что нет.

Бесплатный первый урок

Хочешь собрать это сам - с нуля до первого клиента?

В первом уроке показываю весь путь по шагам: ставим Claude Code, собираем первый рабочий инструмент и как на этом начать зарабатывать. Без воды и без кода.

Смотреть первый урок →
Михаил Иванин
Об авторе
Михаил Иванин

Вайбкодер-разработчик и маркетолог с 9-летним опытом, основатель «Мандарин Лаб». Собирает на ИИ то, за что раньше платили подрядчикам сотни тысяч: CRM, ботов, автоматизации, монтаж. Одну из систем строил под агентство недвижимости с базой в 400 000 лидов. Теперь учит этому с нуля - как за вечер собрать свой инструмент через Claude Code и зарабатывать на нейросетях.

Telegram @mike_cmo →
#anydoc#firecrawl#markdown#конвертер документов#opensource#rust#rag