pip-ui-tkinter
A Tkinter desktop GUI that puts a friendly face on Python's most-used packaging tools. Instead of remembering flags across pip, pipx, build, twine, virtualenv, pip-audit, hatch, flit, pypi-server, and devpi, you click through them in a single window — with discoverable forms, live output, and guardrails on the destructive bits.
Why pip-ui-tkinter
- One window, ten tools. Switch between
pip,pipx,build,twine,virtualenv,pip-audit,hatch,flit,pypi-server, anddevpifrom a single tool switcher. No need to context-switch between docs, terminals, and tutorials. - Discoverable commands. Every subcommand and flag is laid out as a tree with a generated form. You see what's available without
--help-ing your way through ten layers of subcommands. - Real CLI underneath. The UI doesn't reimplement anything — it constructs the exact CLI invocation and runs it. The full argv is shown before and after every run, so you can copy/paste it into a script or learn what the UI just did.
- Safety rails. Commands are classified as read-only, environment-modifying, destructive, or risky-config. A
--safe-modeflag prompts for confirmation before anything that would uninstall, purge, or rewrite configuration. Global installs are flagged. Secrets in flags are redacted in history and output. - Pure Python, pure stdlib UI. Tkinter ships with Python — no Electron, no browser, no npm. The app launches fast and runs anywhere Python and Tk do.
Features
Multi-tool support
Each tool is a plugin with its own command catalog, run mode, and (where relevant) custom panel:
| Tool | What it does in pip-ui |
|---|---|
pip |
Install, uninstall, list, freeze, show, check, inspect, configure, cache, debug |
pipx |
Install and manage CLI apps in isolated envs; pick the Python they use |
build |
Build sdists and wheels for the current project |
virtualenv |
Create virtual environments with a guided form |
twine |
Upload, check, and register distributions |
pip-audit |
Scan an env or requirements file; results render in a dedicated panel |
hatch |
Project and environment commands with an environment panel |
flit |
Build and publish flit-managed projects |
pypi-server |
Run a local PyPI-compatible index for testing |
devpi |
Drive a devpi server and client from a dedicated panel |
Interpreter & environment awareness
- Auto-discovers the system Python, the active
VIRTUAL_ENV, project.venv, andpython/pyonPATH. - Switch interpreters per-run from the dropdown; the UI invokes commands via
python -m <tool>against the selected interpreter so you can target any env. - Working-directory picker — point any command at a specific project.
--diagnosticsmode prints a Markdown report on the selected interpreter without launching the GUI.
Forms generated from command specs
- Every command knows its required and optional arguments, types, choices, and help text. The form is rendered from that spec, so you get the right widget (checkbox, picker, multi-value, text) for the right flag.
- Per-command global options dialog (proxy, index URL, trusted hosts, etc.) so you don't repeat yourself.
- Requirements-file picker, index selector, and certificate tester live alongside the form.
Live output and history
- Stdout/stderr stream into an output panel as the command runs — no waiting for completion to see what happened.
- Per-command output cache: re-selecting a command restores its last output instead of a blank panel.
- Command history records every run (argv, exit code, duration). Disable with
--no-historyif you prefer not to write it to disk. - Common pip errors are intercepted and translated to a plain-language explanation.
Safety and secrets
--safe-modeputs a confirmation dialog in front of any destructive or config-mutating command.- Auto-detection of global installs warns before they're committed.
- Tool plugins declare which flags carry secrets (tokens, passwords); those values are redacted in the output panel and history file.
Self-update check
- The app checks for newer versions of
pip-ui-tkinterin the background and surfaces an upgrade hint when one's available. Manual checks available from the menu.
Quick start
pipx install pip-ui-tkinter
pip-ui
Useful flags:
pip-ui --interpreter /path/to/python # start with a specific interpreter selected
pip-ui --working-directory ./myproj # start in a specific project dir
pip-ui --safe-mode # confirm before destructive commands
pip-ui --no-history # do not record history to disk
pip-ui --diagnostics # print env diagnostics and exit
To get the optional tools that aren't pip itself, install the matching extra (build, virtualenv, twine, pip-audit, hatch, flit, pipx, pypiserver, devpi) or all-tools for everything.
Requirements
- Python 3.10+
- Tkinter (bundled with python.org installers; on Linux install your distro's
python3-tkpackage)
Links
- Source: https://github.com/matthewdeanmartin/pip_ui
- Issues: https://github.com/matthewdeanmartin/pip_ui/issues
- Changelog: CHANGELOG.md
License
MIT — see LICENSE.
Metadata
Release files for pip-ui-tkinter 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pip_ui_tkinter-0.2.0.tar.gz | 110.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pip_ui_tkinter-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 217.3 kB
Release files / pip_ui_tkinter-0.2.0.tar.gz
| Download URL | pip_ui_tkinter-0.2.0.tar.gz |
|---|---|
| Size | 110.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
798097331c7771b7093b2ec7e17b4187790ffda6a950aab0fcfd8430e579ff24
|
|
BLAKE2b-256 checksum How to use checksums |
bd84984d4362fa53565099b02e0b51194dd2d4493c2a267c83b09c5542e19dea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 May 24, 2026.
Transparency logRelease files / pip_ui_tkinter-0.2.0-py3-none-any.whl
| Download URL | pip_ui_tkinter-0.2.0-py3-none-any.whl |
|---|---|
| Size | 107.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6ff9fdac6ff3b94f333eb7a1f8390a7ee5863e92cb5da53841563f93513c1197
|
|
BLAKE2b-256 checksum How to use checksums |
b0dcc7466cd81e2b517771e4d7af3e7a4862ff73b8c1a92c9027a74a80f0b639
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 May 24, 2026.
Transparency log