Skip to main content

📄 PDF Tool

Herramientas para tus PDFs — sin subir nada a internet. Como app de escritorio o como comando para agentes de IA y scripts.

pdf-tool: pantalla de inicio con las seis herramientas

Comprime, une, divide, protege y marca tus documentos —y conviértelos desde imágenes— desde tu propio ordenador. Gratis, de código abierto y sin anuncios.

Descargar

CI Release PyPI License: MIT Platform


✨ Qué puedes hacer

Herramienta Para qué sirve
🗜️ Comprimir PDF Reduce el peso de uno o varios PDFs hasta el tamaño en MB que elijas.
🔗 Unir PDFs Combina varios documentos en uno solo, en el orden que quieras y con el nombre que elijas.
✂️ Dividir PDF Separa un PDF en varios: por rangos de páginas, una página por archivo o cada N páginas.
🖼️ Imágenes a PDF Convierte cada imagen (JPG/PNG) en su propio PDF — y si quieres uno solo, únelos después.
🔒 Proteger PDF Añade o quita la contraseña de uno o varios PDFs a la vez.
💧 Marca de agua Repite un texto en diagonal sobre todas las páginas.

🔐 Todo ocurre en tu equipo. Tus archivos nunca salen de tu ordenador.

En Comprimir PDF, el modo predeterminado busca la reducción máxima: primero reduce las imágenes y, solo si no basta, convierte páginas en imagen (lo avisa, porque se pierde el texto seleccionable). Con Conservar texto y enlaces nunca lo hace; el icono de ayuda explica la diferencia.


⬇️ Descargar e instalar

Ve a la página de descargas y elige el archivo de tu sistema:

🍎 macOS

  1. Descarga el archivo .dmg y ábrelo.
  2. Arrastra PDF Tool a la carpeta Aplicaciones.
  3. Ábrela desde Aplicaciones. macOS mostrará un aviso y no dejará abrirla aún (es normal: la app no está firmada, pero es segura).
  4. Ve a Menú Apple () → Ajustes del Sistema → Privacidad y Seguridad.
  5. Baja hasta la sección Seguridad: verás un mensaje que dice que se bloqueó “PDF Tool”. Pulsa Abrir de todas formas y confirma con tu contraseña o Touch ID.
    Solo hay que hacerlo la primera vez. A partir de ahí se abre con doble clic como cualquier app.

🪟 Windows

  1. Descarga el instalador (.exe) y ejecútalo.
  2. Si aparece SmartScreen: Más información → Ejecutar de todas formas.
    (El aviso sale porque el instalador no está firmado; es seguro.)

✅ Tus ajustes se guardan fuera de la app, así que se conservan al actualizar. Cuando publique una nueva versión, la app te avisa con un banner.


🤖 Para agentes de IA y la línea de comandos

Las mismas herramientas están disponibles como comando, pensado para agentes (Claude Code, Cursor, Copilot…) y scripts. Todo sigue ocurriendo en tu equipo.

pipx install pdf-tool-cli                    # solo la CLI (sin la app de escritorio)
pdf-tool list --json                         # qué herramientas hay y qué aceptan
pdf-tool compress informe.pdf --json         # comprimir y obtener el resultado en JSON
pdf-tool merge a.pdf b.pdf --output-name todo
echo "$CLAVE" | pdf-tool protect a.pdf --password-stdin

Cada herramienta tiene su ayuda (pdf-tool compress --help). Códigos de salida: 0 ok · 1 error al procesar · 2 uso inválido · 3 algún archivo del lote falló. pipx install 'pdf-tool-cli[gui]' instala además la app (comando pdftool).

Plugin para Claude Code

Una skill le enseña a Claude Code a usar pdf-tool para crear o modificar PDFs en lugar de escribir scripts: pide permiso antes de instalar la CLI, ejecuta las herramientas con --json y te explica el resultado. Para instalarla, dentro de Claude Code:

/plugin marketplace add juanMaAV92/pdf-tool
/plugin install pdf-tool@pdf-tool

🤝 Contribuir

¡Las contribuciones son bienvenidas! Puedes abrir un issue con ideas o errores, o mandar un pull request. La arquitectura es modular: añadir una herramienta nueva es crear una carpeta y la app y la CLI la descubren solas. En el roadmap está lo que viene: una skill para que los agentes de IA usen la CLI.

🛠️ Para desarrolladores (montar el proyecto en local)

Requisitos

Arrancar

poetry install --all-extras   # incluye Flet (extra [gui]) para la app
poetry run pdftool        # abre la app
poetry run pytest         # corre los tests

Añadir una herramienta nueva

  1. Crea pdftool/tools/<id>/ con params.py, logic.py (función pura + tests), spec.py (registra la herramienta, sin Flet), panel.py y un __init__.py vacío.
  2. La app la muestra en la barra lateral y la CLI la ofrece como pdf-tool <id>, las dos automáticamente.

La lógica (logic.py) no importa Flet y se prueba sin UI; la UI (panel.py) solo arma controles. Detalles en AGENTS.md.

Publicar una versión (automatizado con GitHub Actions)

git tag vX.Y.Z
git push origin vX.Y.Z

Eso dispara release.yml, que corre los tests, construye macOS (.dmg) y Windows (instalador Inno Setup) en paralelo, hornea la versión del tag en el build y crea un GitHub Release en borrador con ambos instaladores. Revísalo y pulsa Publish release para que las apps instaladas detecten la actualización. Si los instaladores se construyen bien, publica también el paquete en PyPI (pdf-tool-cli, por Trusted Publishing y sin tokens). Ese paso espera a que lo apruebes en Actions (entorno pypi), porque una versión en PyPI no se puede reemplazar.

Los PRs que cambian la app, el empaquetado o sus dependencias ejecutan además Package smoke: construye e inspecciona el DMG de macOS y compila e instala de forma silenciosa el instalador de Windows. Antes de una release importante, seguir la checklist manual para validar la ventana y los diálogos nativos.

El número de versión es el tag — única fuente de verdad.

Build local (para depurar el empaquetado)

poetry run flet build macos --project pdf-tool --product pdf-tool     # -> build/macos/pdf-tool.app
poetry run flet build windows --project pdf-tool --product pdf-tool   # -> build/windows/

--project pdf-tool es obligatorio: sin él, flet build toma el nombre del paquete (pdf-tool-cli) y la app cambia de identidad.


Hecho con 🐍 Python + Flet · Licencia MIT

Metadata

Release files for pdf-tool-cli 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pdf-tool-cli 1.1.1
File Size Uploaded Provenance Actions
pdf_tool_cli-1.1.1.tar.gz 57.9 kB With provenance Details for pdf_tool_cli-1.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pdf-tool-cli 1.1.1
File Interpreter ABI Platform Actions
pdf_tool_cli-1.1.1-py3-none-any.whl Python 3 none any Details for pdf_tool_cli-1.1.1-py3-none-any.whl

Total release size: 135.9 kB

Release files / pdf_tool_cli-1.1.1.tar.gz

Download URL pdf_tool_cli-1.1.1.tar.gz
Size 57.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8e5af2f6e9c528afe39e524c5f16c88f4b6600c4f699ee1a864909c26453dd7b
BLAKE2b-256 checksum
How to use checksums
beca99e9cb8c6ecdaaf4ae19b49cb35c1311fbf8d5660c832451d1a7287cede8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / pdf_tool_cli-1.1.1-py3-none-any.whl

Download URL pdf_tool_cli-1.1.1-py3-none-any.whl
Size 77.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
67e995f9f73592e07f26d2052ac53cebf14dabd4674663a9f2574c20ff20a3f2
BLAKE2b-256 checksum
How to use checksums
1858c66a64ed964a0cd55aa5f7de95cf82dda40e25705d66b531591e0ea28f96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Security for pdf-tool-cli 1.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pdf_tool_cli-1.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page