Live Open Source Desktop App

tomd

A thin, native desktop GUI for Microsoft MarkItDown. Drop files or entire folders onto the window to convert PDFs, Word docs, spreadsheets, slides, and images into clean Markdown. Run conversions locally, manage setup environments automatically, and access your queue seamlessly through a menu-bar tray or a smart corner drop zone.

Python PySide6 Microsoft MarkItDown uv PyObjC PyInstaller
View Website GitHub ← Back to Projects
tomd desktop client UI screenshot

Project Overview

tomd is a lightweight desktop GUI application that acts as a wrapper for Microsoft's MarkItDown CLI. It enables users to drag and drop files or entire folders to automatically batch-convert them into clean Markdown. It avoids local or cloud service dependencies — the app runs 100% on the user's device, ensuring that sensitive documents never leave the local machine.

The GUI handles the conversion pipeline: managing an asynchronous queue, rendering row states (queued, converting, finished, error), providing quick actions like clipboard copy and Finder/Explorer integration, and automatically validating the local environment on launch. For power users, the app runs in the background as a menu-bar tray application and offers a corner drop zone that stays hidden until you drag files toward it.

Key Features

  • Drag & drop queue: Recursively parses folders and accepts files, scheduling them in a sequential background worker queue.
  • Smart drop zone: An always-on-top frameless mini-window that reveals itself dynamically when dragging files to a specific screen corner.
  • Menu bar tray operation: Keeps running in the menu bar/system tray when the main window is closed, with Dock icon hiding.
  • Interactive UI widgets: Per-row checkboxes, multi-select, clear queue, stop execution, drag output chips, and toast alerts.
  • Local setup automation: Installs a private virtualenv for `markitdown[all]` using `uv` on first launch to avoid polluting system Python.

Tech Stack

  • Python 3.10+ & PySide6 — Used for building the cross-platform GUI and managing asynchronous workers.
  • Microsoft MarkItDown — Microsoft AutoGen team's open-source file-to-markdown library.
  • uv — Fast Python package installer used to build and manage the app's isolated virtualenv.
  • PyObjC — macOS-specific system bindings to control Dock visibility and handle desktop space changes.
  • PyInstaller & dmgbuild — Bundles Python script source into unsigned standalone `.dmg` and `.exe` binaries.
← Momentum Logistics
Next Case Study → Schorlarle