Installation
DiskGOup ships as a Python CLI, as a standalone compiled binary, and as an Electron desktop app that bundles the binary. Pick the one that fits how you want to use it.
Requirements
Section titled “Requirements”| Component | Needs |
|---|---|
| CLI (from source) | Python 3.12+, uv |
| Standalone binary | nothing — the binary is self-contained |
| Desktop app | the compiled binary (the app refuses to start without it) |
The repository ships a .python-version file, so uv sync picks the right
interpreter for you.
Install the CLI from source
Section titled “Install the CLI from source”git clone https://github.com/elshadaghazade/diskgoup.gitcd diskgoupuv syncuv sync creates .venv/, installs the project in editable mode and pulls in
the development toolchain (pytest, ruff, mypy, pyinstaller).
Check that it works:
uv run diskgoup --versionuv run diskgoup --helpThe console script is registered as diskgoup, so uv run diskgoup … works
from anywhere in the project.
Without uv
Section titled “Without uv”The project is a standard PEP 621 package, so pip works too:
python3 -m venv .venvsource .venv/bin/activatepip install -e .diskgoup --helpBuild a standalone binary
Section titled “Build a standalone binary”uv run pyinstaller diskgoup.spec produces a single self-contained executable:
uv run pyinstaller diskgoup.spec| Platform | Output |
|---|---|
| macOS / Linux | dist/diskgoup |
| Windows | dist/diskgoup.exe |
The build bundles the Jinja2 report templates and send2trash’s data files,
and excludes the usual test-and-REPL baggage. diskgoup.spec also lists the
modules PyInstaller would otherwise miss, because they are imported lazily.
Install the desktop app
Section titled “Install the desktop app”The desktop app is a front-end for the CLI. It needs the compiled binary — if it is missing, the app shows an error and quits rather than opening an empty window.
npm --prefix ui installnpm --prefix electron installThen, from the repository root:
uv run pyinstaller diskgoup.spec # → dist/diskgoupnpm --prefix electron run devnpm --prefix electron run dev builds the CLI copy, compiles the Electron
main process and starts the app against the Vite dev server.
Where the app looks for the binary
Section titled “Where the app looks for the binary”In order:
- Packaged —
<app>/Contents/Resources/diskgoup(electron-builder copies it there viaextraResources). - Development —
electron/resources/diskgoup(built bynpm run build:cli). - Fallback —
<repo>/dist/diskgoup(the raw PyInstaller output).
Release builds
Section titled “Release builds”npm --prefix electron run dist:mac # DMG + portable zip, arm64 + x64npm --prefix electron run dist:win # NSIS installer + portable exe, x64npm --prefix electron run dist:linux # AppImage + portable tar.gzSee Building and releasing for the full pipeline.
Quick start → — your first scan.