CommunityProgramación y desarrollogithub.com

imprimir

Imprime texto, Markdown o escenas de Excalidraw en una impresora térmica Bluetooth PT210 cercana desde macOS.

¿Qué es imprimir?

The skill 'imprimir' enables an AI agent or user to print content to a PT210 Bluetooth thermal printer from macOS. It supports plain text, fully formatted Markdown, and Excalidraw scenes (using the official local renderer). Communication is via BLE using a included bash helper from the cloned repository. It requires macOS, `uv`, the printer powered on with paper, Bluetooth permission for the invoking app, and locally installed Google Chrome for Markdown/Excalidraw rendering. The typical workflow is to scan for devices, configure the printer once (saving the UUID address), then preview and finally print. It handles automatic format detection by file extension, a default height limit of 2400 dots (300 mm), and tear margin options. It includes protection against overlapping jobs, does not automatically retry on failure, and advises checking the paper output after an interruption. It is useful for developers who need to generate receipts, tickets, quick notes, or diagrams from an AI agent in a local environment.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/guzus/pt-210/tree/HEAD/skills/print

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Imprimir en una PT210

Usa el helper incluido a través del repositorio clonado completo. Resuelve PRINT_SKILL_DIR al directorio de este skill e invoca:

bash "$PRINT_SKILL_DIR/scripts/print.sh" --help

Requiere macOS, uv, una PT210 encendida con papel y permiso de Bluetooth para la aplicación que invoca. Markdown/Excalidraw también requieren Google Chrome instalado localmente. La primera instalación de dependencias usa la red; el renderizado en sí permanece local. No asumas que esta carpeta del skill funciona si se copia sin el repositorio.

Conectar una vez

bash "$PRINT_SKILL_DIR/scripts/print.sh" scan
bash "$PRINT_SKILL_DIR/scripts/print.sh" setup --address UUID_DEL_ESCANEO

macOS identifica los dispositivos BLE por un UUID específico de la máquina, no por una dirección MAC Bluetooth clásica. El setup verifica una característica grabable soportada y guarda la selección en ~/.config/pt210/printer.json. Se puede seleccionar una PT210 descubierta de forma única sin --address; resuelve el dispositivo deseado si coinciden varios. Una impresora guardada ausente nunca recurre a otra impresora. --address anula PT210_ADDRESS, luego la selección guardada. inspect se conecta sin imprimir.

Preparar, previsualizar, imprimir

Usa exactamente el contenido solicitado. Una solicitud de impresión autoriza su salida en papel; no añadas una puerta de confirmación redundante. Previsualiza diseños desconocidos primero.

bash "$PRINT_SKILL_DIR/scripts/print.sh" preview --file /tmp/nota.md --output /tmp/nota-preview.png
bash "$PRINT_SKILL_DIR/scripts/print.sh" print --file /tmp/nota.md
  • Texto plano: stdin o --file. ASCII imprime rápidamente con la fuente incorporada; Unicode, incluido coreano, usa texto en mapa de bits. --mode raster fuerza mapa de bits.
  • Markdown: .md/.markdown detección automática; usa --format markdown para stdin. Preserva el formato solicitado. Se renderizan encabezados, énfasis, listas, casillas de verificación de tareas, citas, código, tablas y enlaces. Las tablas anchas se convierten en filas etiquetadas. Los enlaces incluyen destinos; las imágenes se convierten en marcadores de posición de texto alternativo. El HTML sin procesar se mantiene literal y los recursos externos están bloqueados.
  • Excalidraw: .excalidraw/.excalidraw.json detección automática; usa --format excalidraw para stdin o JSON genérico. Compila una vez con build-excalidraw (requiere npm). Usa la escena guardada, no una URL compartida, biblioteca, envoltorio de Obsidian o PNG. No regeneres una escena editada desde Mermaid. El renderizador local oficial preserva la geometría y escala proporcionalmente al ancho del papel. Las advertencias de texto pequeño requieren inspección de previsualización; no recortes ni reorganices silenciosamente. Se admiten PNG/JPEG/WebP/GIF incrustados; las inserciones remotas y las imágenes SVG fallan explícitamente. Excalidraw y Markdown siempre usan modo raster.

Las previsualizaciones nunca acceden a Bluetooth y se niegan a sobrescribir un archivo existente. Las previsualizaciones de Markdown/Excalidraw coinciden con la impresión con opciones idénticas. Para texto plano, usa print --mode raster para que coincida con la previsualización; las fuentes nativas difieren. Cada trabajo termina con una guía discontinua y un margen de desgarre en blanco de 20 mm. Ajusta con --tear-margin-mm 0..50 u omite la guía con --no-tear-line. El límite de altura predeterminado es 2400 puntos (300 mm incluyendo el margen); acorta la salida grande o eleva explícitamente --max-height para un recibo largo solicitado.

Entrega y fallos

Espera a que el proceso termine. transmitted significa que las escrituras Bluetooth se completaron, no una prueba independiente de la salida en papel. Obtén confirmación del papel para la configuración inicial o comportamiento de nuevo transporte. El bloqueo local evita trabajos superpuestos; no lo evites. Un envío fallido o interrumpido puede haber impreso parcialmente: inspecciona el papel antes de reintentar y nunca reenvíes automáticamente.

Si no se encuentra ninguna impresora, pide al usuario que la encienda cerca y desconecte las aplicaciones de impresión del teléfono. Usa la ruta de permiso aprobada por el tiempo de ejecución cuando Bluetooth esté en modo sandbox. Una denegación de Bluetooth requiere acción del usuario en Privacidad y Seguridad de macOS; no edites la configuración de TCC. Las variantes solo Bluetooth Clásico necesitan otro transporte verificado; no adivines puertos serie ni uses la impresora de oficina/predeterminada.

--transport conservative usa paquetes más pequeños para el próximo trabajo autorizado si la salida está corrupta. La configuración de la impresora, los archivos de bloqueo y los cachés renderizados son estado local del tiempo de ejecución; nunca los confirmes. Las capacidades completas, configuración y limitaciones están en el README del repositorio.

Skills relacionados