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.0

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.0
File Size Uploaded Provenance
filefit-1.0.0.tar.gz 59.5 kB With provenance Details

Built distribution (wheel)

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

Total release size: 116.6 kB

Release files / filefit-1.0.0.tar.gz

Download URL filefit-1.0.0.tar.gz
Size 59.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ec37dc50b3c61d4cdb41c9a4f1570cef1de4473348541bb3b7a554d4d530e753
BLAKE2b-256 checksum
How to use checksums
dcc5dbc34a9a8762b38087f04d8cdca7b38ab5258a4cfe19a2c3af28679a3b02
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.0-py3-none-any.whl

Download URL filefit-1.0.0-py3-none-any.whl
Size 57.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd3ef29148d56d87e8e5d75cadc6e24257fb4d3d6a343a8c132864e5f829c1cf
BLAKE2b-256 checksum
How to use checksums
9de7bbc345d86e47b7f4b7a962d2b59756172a4701539d04b5377768b61981fd
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.0

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.0.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