MarsDawn

Línea de comandos

La herramienta de línea de comandos gratuita marsdawn: exporta Markdown a PDF desde una shell o un agente LLM y, si tienes instalada la app MarsDawn, abre archivos en ella.

marsdawn es gratis y se distribuye por separado del Mac App Store. Instálalo con Homebrew: en una Mac con chip de Apple llega listo para usar. export funciona por sí solo; open necesita la app MarsDawn.

¿Llamas a marsdawn desde un agente de IA o un script? Consulta marsdawn para agentes para ver la salida JSON, sus esquemas y todos los códigos de salida, o el servidor MCP si tu agente llama a herramientas por MCP.

Instalación

Con Homebrew:

brew tap redtear1115/tap && brew install marsdawn

¿Usas un agente de programación? Ejecuta marsdawn skill --install para agregar la skill de marsdawn: un solo archivo que le enseña a abrir lo que escribió en MarsDawn para que lo revises, y a exportar PDF.

En una Mac con chip de Apple, Homebrew instala una copia precompilada en segundos, sin nada más que instalar. En una Mac con Intel, compila marsdawn desde el código fuente, lo que toma unos minutos y requiere Xcode 26 o posterior (Swift 6.2). La herramienta funciona en macOS 15 o posterior.

O compílala desde el código fuente con Swift Package Manager:

git clone https://github.com/redtear1115/mars-dawn-kit.git
cd mars-dawn-kit
swift build -c release --product marsdawn

Revisa qué versión tienes con marsdawn --version.

Comandos

marsdawn open

Abre uno o varios archivos Markdown en la app MarsDawn para que los revises. Necesita la app instalada: sin ella, marsdawn open termina con el código 3 e indica que MarsDawn no está instalado. export no necesita la app. La app está en el Mac App Store.

marsdawn open notes.md
marsdawn open notes.md:120
marsdawn open notes.md --line 120
marsdawn open .
marsdawn open notes.md --folder .

Las líneas llegaron con marsdawn 0.3.0, las carpetas y --background con la 0.5.1, y --wait y el estado de la carpeta con la 0.5.3.

marsdawn export

Convierte un archivo Markdown en un PDF paginado, con el mismo exportador que usa la exportación a PDF de MarsDawn. No necesita la app MarsDawn. Las imágenes relativas se resuelven a partir de la carpeta del archivo de entrada.

marsdawn export notes.md -o notes.pdf --theme classic --paper a4

--breaks llegó con marsdawn 0.7.0, --layout y --toc-title con la 0.7.1, y el valor handbook con la 0.7.2. El valor anterior de la 0.7.1, manual, sigue funcionando.

marsdawn theme

Comprueba un archivo de tema (theme.json) y muestra cómo se ve antes de que lo compartas. No necesita la app MarsDawn. Para los campos de un tema, consulta Crea un tema con tu agente.

marsdawn theme validate my-theme.json
marsdawn theme css my-theme.json
marsdawn theme preview my-theme.json --appearance dark -o preview.png

Los comandos theme llegaron con marsdawn 0.6.1.

La variable $MARSDAWN_THEME

Cuando no se pasa --theme, export lee la variable de entorno $MARSDAWN_THEME. Su valor debe ser dawn, classic, modern o vivid; cualquier otro vuelve a dawn. La CLI no lee el ajuste de tema de la propia app, porque leer el contenedor de otra app puede hacer que macOS muestre un aviso de privacidad.

Sobrescribir archivos

export se niega a reemplazar un archivo de salida existente a menos que pases --force.

Códigos de salida

CódigoSignificadoQué hacer
0éxito.Con --json, lee la única línea JSON en stdout
2no se encontró la entrada.Revisa la ruta y el nombre del archivo
3MarsDawn no está instalado (solo open).Instala la app, o usa export, que no la necesita
4la salida ya existe (pasa --force).Pasa --force para reemplazarlo, o -o para escribir en otro lugar
5falló la exportación.Lee message en el resultado JSON
6este MarsDawn no puede mostrar una carpeta, así que no se abrió nada (solo open).
64error de uso, incluidos una línea fuera de rango, --line con más de un archivo o con una carpeta, o más de una carpeta.Corrige la opción o el valor; este error sale como texto en stderr, incluso con --json

Salida --json

Si todo sale bien, marsdawn open --json muestra ok, opened (una lista con el path de cada archivo, más line cuando se pidió una), app (la ruta de la app) y, cuando se indicó una carpeta, folder. marsdawn export --json muestra ok, output, pages, theme, paper y diagramErrors. Si algo falla, ambos muestran ok, error y message.