Skip to main content
Glama

omapdf

Preview.app для Linux — но вашим агентом можно управлять.

omapdf — это агент-нативный PDF-инструмент: быстрый GTK4 редактор для чтения, аннотирования и подписания; скриптуемый CLI; MCP-сервер для ИИ-агентов; и интеграция с Omarchy, которая связывает их все с операционной системой. Под капотом один движок операций — всё, что человек может сделать вручную, агент может сделать по инструкции, и наоборот.

omapdf edit lease.pdf                       # the editor
omapdf sign lease.pdf --page 4 --at 120,540 --date -o signed.pdf
# …or just tell your agent: "fill out this lease, highlight anything
#  unusual, and get it ready for my signature"

Почему

Рабочий процесс «кто-то прислал мне PDF по почте, мне нужно выделить два места, подписать и отправить обратно» — это killer-фича macOS Preview, а в Linux нет лёгкого аналога. И никто нигде не относится к ИИ-агентам как к полноправным пользователям PDF. omapdf делает и то и другое с одной архитектурой:

Related MCP server: PDF Manipulation MCP Server

Единый API операций, каждый клиент тонкий

Каждое действие — выделение, комментарий, заполнение поля, штамп подписи, рисование чернилами — это небольшая JSON-операция. Редактирование документа — это список таких операций. Редактор, CLI и MCP-сервер проходят через один и тот же движок:

     human                            agent
       │                                │
 ┌─────┴─────┐                 ┌────────┴────────┐
 │  editor   │                 │  MCP server /   │
 │  (GTK4)   │                 │  Claude skill   │
 └─────┬─────┘                 └────────┬────────┘
       │          ops (JSON)            │
       └──────────────┬─────────────────┘
              ┌───────┴───────┐
              │   op engine   │  validate → resolve → apply → report
              │   (PyMuPDF)   │
              └───────┬───────┘
                 document.pdf

Каждая применённая операция возвращает свою разрешённую геометрию, так что любая сторона может показать другой, что именно и где изменилось. Всё записанное — это стандартная PDF-аннотация — пользователи Acrobat, Preview и Evince видят ваши заметки и выделения как обычные комментарии.

Редактор (omapdf edit)

Нативный редактор GTK4, быстрый как Preview, спроектирован для Omarchy, но переносим на обычный GTK:

  • Инструменты (набор векторных иконок, нарисованных от руки): выбор/перетаскивание, перо с палитрой цветов по повторному нажатию, маркер, текст, стикеры, размещение подписи, штампы «зелёная галочка» и «красный крест»

  • Модель-призрак: всё, что вы размещаете, является перетаскиваемым, подвижным ожидающим элементом, пока Save не пропечёт его через движок операций — и отмена пересекает границу сохранения: Ctrl+Z после сохранения откатывает файл и воскрешает сохранённые элементы как редактируемые призраки

  • Удобства чтения: боковая панель миниатюр (F9), масштаб по ширине, отслеживающий живое окно просмотра, пресеты масштаба + Ctrl+колесо, поиск по всему документу (Ctrl+F) с циклическим перебором совпадений, навигация по страницам с помощью Up/Down, PgUp/PgDn, Home/End, Ctrl+G переход к странице

  • Комментарии открываются по клику: щёлкните любую сохранённую аннотацию, чтобы прочитать её текст — включая комментарии, оставленные агентами или другими PDF-приложениями

  • Предложения агента как призраки: omapdf edit doc.pdf --ops proposal.json загружает dry-run операции агента как выбранные, перетаскиваемые оверлеи — подвиньте, затем Save. Агент предлагает, человек подтверждает.

  • Спросите своего агента (✦): введите вопрос, и он откроет агента по умолчанию вашей ОС (omarchy agent prompt) с прикреплённым документом. Редактор следит за файлом и перезагружается, когда агент сохраняет изменения.

  • Поделиться (нативно, без фальшивого листа общего доступа): вложение в письмо, LocalSend, копирование файла (или его zip-архива) прямо в буфер обмена, показать в папке — с опциональным переключателем «сначала сплющить копию»

  • Празднование сохранения включено. Увидите.

CLI

omapdf read doc.pdf                  # structured JSON: text+bboxes, fields, annots
omapdf read doc.pdf --text-only      # just the words
omapdf fields form.pdf               # fillable fields with names and rects
omapdf snapshot doc.pdf --page 2 --grid 50   # page PNG with a labeled
                                     # coordinate grid — agents read placement
                                     # coordinates straight off the image

omapdf annotate doc.pdf --page 2 --match "termination clause"
omapdf note doc.pdf --page 2 --at 400,300 --text "negotiate this"
omapdf fill form.pdf --field tenant_name "Peter Bergin" --field rent "1800"
omapdf apply doc.pdf --ops edits.json        # atomic batch of ops

omapdf sig draw                      # draw your signature once (GTK window)
omapdf sig add ~/sig.png --name work # …or import an image
omapdf sign doc.pdf --page 4 --at 120,540 --date -o signed.pdf
omapdf flatten doc.pdf -o final.pdf  # bake everything in for any viewer
omapdf open doc.pdf                  # opens the omapdf editor

Каждая команда редактирования принимает -o (по умолчанию: на месте), --dry-run и --json (каждая операция возвращает свою разрешённую геометрию). Координаты — это пункты PDF, начало координат — верхний левый угол, страницы с 1 — идентично тому, что сообщает read. Словарь операций описан в docs/ops.md.

Агенты

claude mcp add omapdf -- omapdf-mcp

Инструменты MCP: read_pdf, list_form_fields, apply_ops, highlight, add_note, fill_field, place_signature (по умолчанию dry-run — подтверждение перед чернилами), list_signatures, flatten_pdf.

Навык Claude Code в skill/ — это полное руководство PDF-ассистента: рецепты для рецензирования и выделения, заполнения форм, подписания, редактирования, чек-листов, извлечения с цитированием страниц — построено вокруг лестницы точности: текстовые якоря → снимок сетки (посмотрите на страницу) → dry-run → визуальная проверка записанного результата → передайте перетаскиваемый призрак человеку, когда важен вкус.

Установка

git clone https://github.com/pbergin11/omapdf && cd omapdf
python -m venv --system-site-packages .venv    # system gi for the GTK editor
.venv/bin/pip install -e '.[mcp]'
ln -s "$PWD/.venv/bin/omapdf" ~/.local/bin/omapdf
ln -s "$PWD/.venv/bin/omapdf-mcp" ~/.local/bin/omapdf-mcp
ln -s "$PWD/bin/omapdf-pick" ~/.local/bin/omapdf-pick

Требуется Python ≥ 3.11, PyMuPDF и (для редактора и sig draw) PyGObject + GTK4 из вашего дистрибутива. Упаковка для Arch в packaging/PKGBUILD.

Сделайте omapdf обработчиком PDF в вашей системе:

cp share/omapdf.desktop ~/.local/share/applications/
xdg-mime default omapdf.desktop application/pdf

Интеграция с Omarchy

  • Виджет верхней панели (shell-plugin/): PDF-пилюля — нажмите для меню недавних PDF, выберите один, он откроется в редакторе (ln -s .../shell-plugin/omapdf.bar ~/.config/omarchy/plugins/omapdf.bar, затем omarchy bar put omapdf.bar --section right)

  • Ask-agent использует omarchy agent prompt, поэтому запускает того агента по умолчанию, которого выбрал пользователь (omarchy default agent), в нативном окне агента Omarchy; диктовка Voxtype работает в поле вопроса, как в любом текстовом поле

  • Упаковано в духе omasnap: сфокусированный, одноцелевой нативный инструмент

Статус и дорожная карта

Работает сегодня: движок операций, CLI, MCP-сервер + навык, хранилище подписей и окно рисования, полный редактор, виджет панели, цикл запроса/наблюдения агента, тесты. Смотрите docs/roadmap.md о том, что дальше — главное: автоматическое обнаружение строки подписи (sign --auto), удаление/редактирование аннотаций сохранённых элементов, страница сводки комментариев, криптографическое (PAdES) подписание через pyHanko.

Лицензия

AGPL-3.0-or-later (соответствует нашей зависимости PyMuPDF). См. LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents and users to process documents through natural language, supporting PDF operations like text extraction, redaction, splitting, form filling, annotations, and content search.
    60 npm
    62
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables PDF processing and analysis including text extraction, metadata retrieval, search, page manipulation, splitting/merging, conversion to images, and form handling.
    10
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to perform 13 PDF operations (merge, split, compress, watermark, encrypt, and more) on local files via MCP.
    3
    -