akatz-ai/Akatz-Utils

A collection of utility tools including image and video manipulation and file conversions.

★ 0Forks 0JavaScriptGitHub ↗Compare

README

Akatz Utils

A collection of GUI utility tools for common tasks, managed as a Python monorepo using UV workspaces.

Tools Included

  • 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

Installation

Prerequisites

  • Python 3.9 or higher
  • uv package manager

Quick Start

Clone the repository and install the launcher:

git clone https://github.com/akatz-ai/Akatz-Utils.git
cd Akatz-Utils
uv tool install ./launcher

Note: Do not use uv tool install launcher (without ./) — that installs an unrelated package from PyPI.

Usage

Launch the GUI launcher from anywhere:

akatz-utils

The launcher will display all available tools. Click on any tool to launch it in a new window.

Installing Individual Tools

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/imgsizer

Then run them directly:

pdf2md
vid2gif
imgsizer

Development

Repository Structure

akatz-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/

Working with the Workspace

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

Adding a New Tool

  1. Create a new directory under tools/
  2. Add a pyproject.toml with proper metadata and a [project.scripts] entry
  3. Implement your tool with a main() function and a tkinter GUI
  4. Add the tool to launcher/launcher.py in the tools list
  5. Add the workspace dependency in launcher/pyproject.toml under [project.dependencies] and [tool.uv.sources]
  6. Add it as a workspace member in the root pyproject.toml

License

MIT

Contributors

akatz-ai

Issues