A collection of GUI utility tools for common tasks, managed as a Python monorepo using UV workspaces.
- PDF to Markdown (
pdf2md) - Convert PDF files to Markdown format for efficient LLM processing - Video to GIF (
vid2gif) - Convert video files to GIF with customizable size, duration, and dimensions - Image Resizer (
imgsizer) - Resize and compress images with preview and quality control
- Python 3.9 or higher
- uv package manager
Clone the repository and install the launcher:
git clone https://github.com/akatz-ai/Akatz-Utils.git
cd Akatz-Utils
uv tool install ./launcherNote: Do not use
uv tool install launcher(without./) — that installs an unrelated package from PyPI.
Launch the GUI launcher from anywhere:
akatz-utilsThe launcher will display all available tools. Click on any tool to launch it in a new window.
If you prefer to install tools individually without the launcher:
# From the repository root
uv tool install ./tools/pdf2md
uv tool install ./tools/vid2gif
uv tool install ./tools/imgsizerThen run them directly:
pdf2md
vid2gif
imgsizerakatz-utils/
├── pyproject.toml # UV workspace configuration
├── launcher/ # GUI launcher package
│ ├── __init__.py
│ ├── __main__.py
│ ├── launcher.py
│ ├── assets/
│ │ └── akatz_logo_small.png
│ └── pyproject.toml
└── tools/ # Individual utility tools
├── pdf2md/
├── vid2gif/
└── imgsizer/
The project uses UV workspaces to manage multiple packages in a monorepo:
# Sync all workspace dependencies
uv sync
# Run a specific tool in development
uv run --package pdf2md pdf2md
# Run the launcher in development
uv run --package akatz-utils-launcher akatz-utils- Create a new directory under
tools/ - Add a
pyproject.tomlwith proper metadata and a[project.scripts]entry - Implement your tool with a
main()function and a tkinter GUI - Add the tool to
launcher/launcher.pyin thetoolslist - Add the workspace dependency in
launcher/pyproject.tomlunder[project.dependencies]and[tool.uv.sources] - Add it as a workspace member in the root
pyproject.toml
MIT