Skip to main content

FileFit — File Converter & Compressor

Convert documents between the formats upload portals ask for, and shrink them under a size limit (for example 2 MB or 200 KB), all offline on your own PC.

From To
JPG, JPEG, PNG, WEBP, BMP, GIF, TIFF, HEIC (iPhone photos) JPG, JPEG, PNG, WEBP, PDF, DOCX
PDF JPG / JPEG / PNG / WEBP (one picture per page), DOCX (editable), PDF (compressed)
DOCX PDF, pictures, DOCX (compressed)

Extra options: size limit with one-click presets (100 KB to 5 MB), maximum width and height in pixels, combine many files into one PDF (drag to reorder), and save next to the original or into a chosen folder. Originals are never changed.

Install

  • Windows: download FileFit-Setup.exe from the Releases page or the website and run it.
  • Linux: pipx install filefit, then filefit-cli --install-shortcut to add it to your app menu.
  • Command line (any OS): filefit-cli photo.jpg --to pdf --max-size 2MB

DOCX → PDF / JPG needs Microsoft Word or the free LibreOffice installed. Every other conversion works with nothing else installed.

Releases are built automatically by GitHub Actions; see PUBLISHING.md. To build the single-file exe yourself on Windows, double-click build_windows.bat.

How size limits work

  • JPG / WEBP: finds the highest quality that fits, and only shrinks the pixel size if quality alone is not enough.
  • PNG: reduces colours, then pixel size. For photos, JPG reaches small sizes with far better quality.
  • PDF: first recompresses the pictures inside the PDF (text stays selectable). If that is still too big, pages are turned into compressed images; the result says so.
  • DOCX: recompresses the pictures inside the document.

If a file cannot reach the limit, the result shows ⚠ with its final size.

Contact

Made by Dipanjan Banerjee. Questions, bugs or ideas: dipanjanbanerjee20@gmail.com or open an issue.

Project layout

main.py                     starts the app
filefit/core/               conversion + compression engine (no GUI code)
filefit/gui/                PySide6 (Qt) desktop window and styling
tests/                      pytest suite for the engine
filefit/cli.py              command line tool (filefit-cli)
FileFit.spec                PyInstaller recipe for the .exe
installer/FileFit.iss       Windows installer (Inno Setup)
site/                       download website (GitHub Pages)
.github/workflows/          automatic builds, releases, website
build_windows.bat           local one-click Windows build

Run the tests: pip install -r requirements-dev.txt then pytest -q tests.

Linux and Android later

  • Linux: the same code runs as is (python main.py), and pyinstaller FileFit.spec on Linux makes a Linux binary.
  • Android / Play Store: the engine in filefit/core is plain Python with no desktop code, so it can be reused. The planned route is a new touch-friendly screen built with Flet (Python + Flutter), which packages Python apps as Android APK/AAB files for the Play Store; the desktop Qt window does not carry over to phones.

Metadata

Release files for filefit 1.0.1

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

Source distribution (sdist)

Source distribution for filefit 1.0.1
File Size Uploaded Provenance
filefit-1.0.1.tar.gz 60.1 kB With provenance Details

Built distribution (wheel)

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

Total release size: 118.3 kB

Release files / filefit-1.0.1.tar.gz

Download URL filefit-1.0.1.tar.gz
Size 60.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9c4d168931fa3b35bfe0aa962d81adb9cdd5bed42cd7653123e4e25d86fa3f5d
BLAKE2b-256 checksum
How to use checksums
c1f999cbf9096d0f61370ec26199d0f888238fab1edda14cd714c637f8e04e1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / filefit-1.0.1-py3-none-any.whl

Download URL filefit-1.0.1-py3-none-any.whl
Size 58.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
438c22f5c54fa21df33561fc49562663346cdc5544486a032f2c8fd1560227ec
BLAKE2b-256 checksum
How to use checksums
34e6b472f3b4c166b5b7d19232f37de64accacb1be012a66d9569ac4f88c515e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for filefit 1.0.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for filefit-1.0.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

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