Skip to main content

Markdown to PDF Converter (llmmd2pdf)

A local Python application built with Shiny for Python that allows you to paste Markdown text, preprocess it, and convert it to PDF using Quarto.

Currently, markdown input needs to be generated by other programs, such as SaveYourChat or manual copy-pasting from LLM chat windows (e.g., ChatGPT, Gemini, Claude).

Features

  • GUI Interface: Clean Shiny layout for text input and settings.
  • Smart Preprocessing: Cleans "Gemini Apps Activity" footers, removes profile placeholders, and cleans artifact tags.
  • Native Directory Picker: Robustly handles native macOS file dialogs via a subprocess.
  • Quarto Integration: High-quality PDF conversion.
  • Metadata & Config: Autosaves your favorite models, author name, and stores them in the standard OS configuration path.

Prerequisites

  1. Python 3.9+
  2. Quarto CLI: Required for PDF generation.

Option 1: Installation via PyPI (Recommended)

This is the easiest way to use the tool.

  1. Install the package:
    pip install llmmd2pdf

  2. Run the app:
    llmmd2pdf

    The app will open in your browser automatically.

Option 2: Installation from Source (GitHub)

Use this if you want to modify the code or contribute.

  1. Clone the repository:
    git clone [https://github.com/yourusername/llmmd2pdf.git\](https://github.com/yourusername/llmmd2pdf.git)
    cd llmmd2pdf

  2. Install in editable mode:
    pip install -e .

  3. Run the app:
    llmmd2pdf

Configuration

The application stores settings in the standard Application Support folder for your OS.

  • macOS: ~/Library/Application Support/llmmd2pdf/config.toml
  • Windows: %APPDATA%/llmmd2pdf/config.toml
  • Linux: ~/.config/llmmd2pdf/config.toml

This file is automatically created when you run the app. You can modify it to set default models, your name, or the server port.

Default Config:
models = [ "Claude Haiku 4.5", "Claude Opus 4.5", "Claude Sonnet 4.5", "GPT-4o", "GPT-4o mini", "GPT-5", "GPT-5.1", "Gemini 3 Pro"]
author = "Karl Dafoe"
port = 5555 # Change this to run on a different port

Changing the Port

You can change the port by editing the port value in the config file above. The next time you run llmmd2pdf, it will bind to that port.

Roadmap

  • Add unit tests for preprocessing functions
  • maybe add API-based direct fetching of conversations
  • Improve Quarto template customization options

Metadata

Release files for llmmd2pdf 0.1.3

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

Source distribution (sdist)

Source distribution for llmmd2pdf 0.1.3
File Size Uploaded Provenance
llmmd2pdf-0.1.3.tar.gz 22.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for llmmd2pdf 0.1.3
File Interpreter ABI Platform
llmmd2pdf-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 43.7 kB

Release files / llmmd2pdf-0.1.3.tar.gz

Download URL llmmd2pdf-0.1.3.tar.gz
Size 22.5 kB
Tags Source
SHA-256 checksum
How to use checksums
da74bc8f68ae956054617492593f58f444a089f408550ac0a9e1e5ecb2d34025
BLAKE2b-256 checksum
How to use checksums
5ee59f2d9ec874454d1aaf96edfa0c9f072788ed7ab45a7e9f73821fcbfb7aaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / llmmd2pdf-0.1.3-py3-none-any.whl

Download URL llmmd2pdf-0.1.3-py3-none-any.whl
Size 21.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c12f792f4eeade8fb989876393b65fb4a2900b518a45c49c9d7f0464ece59825
BLAKE2b-256 checksum
How to use checksums
c2cf1fcfadb62f814c59c1b9efaec3a942fd5dffbeb72a91273694679123a033
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Security for llmmd2pdf 0.1.3

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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