Skip to main content

A Shiny app to convert LLM Markdown exports to PDF with Quarto

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llmmd2pdf-0.1.3.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llmmd2pdf-0.1.3-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file llmmd2pdf-0.1.3.tar.gz.

File metadata

  • Download URL: llmmd2pdf-0.1.3.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for llmmd2pdf-0.1.3.tar.gz
Algorithm Hash digest
SHA256 da74bc8f68ae956054617492593f58f444a089f408550ac0a9e1e5ecb2d34025
MD5 9428341f71b4e2ecbcc5b1a19aeb9f6d
BLAKE2b-256 5ee59f2d9ec874454d1aaf96edfa0c9f072788ed7ab45a7e9f73821fcbfb7aaa

See more details on using hashes here.

File details

Details for the file llmmd2pdf-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: llmmd2pdf-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for llmmd2pdf-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c12f792f4eeade8fb989876393b65fb4a2900b518a45c49c9d7f0464ece59825
MD5 faa248009e482e6d6ba3fc78ac05df0e
BLAKE2b-256 c2cf1fcfadb62f814c59c1b9efaec3a942fd5dffbeb72a91273694679123a033

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page