A modern, production-grade desktop application for managing Python packages across virtual environments. Built with Tauri (Rust), Vanilla JS, and Tailwind CSS.
[π‘ UPDATE]: The app builds without any compilation errors and runs as well, but the layout is not propely organised and the core backend logic is not being called due to some reason. I am trying to fix this and would like collaboration, if possible.
This project is still under development. Though the project is being worked on throughly, ERRORS MIGHT COME. As a humble request to anyone who sees this, please fork this repo and help me in dev by creating PRs. I really value your help and appreciate it.
- No IDE required - Manage packages without opening an IDE
- venv-aware - Auto-detects and switches between virtual environments
- No embedded Python - Works with your system Python
- Cross-platform - Windows, macOS, Linux
- Fast & native - Rust backend, minimal overhead
- Intentional design - Every feature is production-ready
Download pre-built installers from Releases:
- Windows:
pip_gui-installer.msi - macOS:
pip_gui.dmg - Linux:
pip_gui.AppImageor.deb
- App launches with Python selection dialog
- Auto-detects system Python installations
- Or manually browse to select a Python executable
- Confirms with
python --versionandpython -m pip --version - Selection persisted - no need to select again
Sidebar
- Selected Python version
- Detected virtual environments (quick-switch)
- Navigation tabs
Main Tabs
- Installed Packages: Manage installed packages (upgrade, uninstall)
- Search PyPI: Find and install packages
- Project Dependencies: View
requirements.txtandpyproject.toml
- Auto-detect system Python installations
- Custom folder browser (no OS dialogs)
- Virtual environment detection and quick-switch
- Validation with version checks
- Path persistence across sessions
- List installed packages with versions
- Search PyPI for new packages
- Install specific versions
- Upgrade to latest
- Downgrade to previous version
- Uninstall with confirmation
- Real-time command output logging
- Detect
pyproject.toml,requirements.txt,requirements-dev.txt - Parse PEP 621 dependencies
- Show dependency status: installed β, missing β, version mismatch β
- Version specifier support:
==,>=,<=,>,<
- Auto-detect
.venv,venv,env, and custom venvs - Parse
pyvenv.cfgfor venv identification - Quick-switch between venvs in sidebar
- Clearly labeled venv Python selections
Frontend
- Vanilla JavaScript (no frameworks)
- Tauri IPC for backend communication
- Tailwind CSS for styling
- Vite for build
Backend
- Rust with Tauri 2.0
- Async command handlers
- Native subprocess execution
- PyPI JSON API integration
Cross-platform
- Works with system Python only
- Executes pip via
python -m pip - Safe path validation
- Platform-aware file operations
pip_gui Application
βββ Frontend (JavaScript)
β βββ Python Selection UI
β βββ Folder Browser
β βββ Package Management UI
β βββ Project Dependencies View
β
βββ Backend (Rust)
βββ Python Detection & Validation
βββ Virtual Environment Detection
βββ Directory Listing
βββ pip Subprocess Execution
βββ PyPI Metadata Fetching
βββ Project File Parsingpip_gui/
βββ src/ # Frontend
β βββ index.html # Main HTML
β βββ css/input.css # Tailwind input
β βββ js/main.js # App logic
β
βββ src-tauri/ # Tauri/Rust backend
β βββ src/
β β βββ main.rs # App entry
β β βββ state.rs # App state
β β βββ models/ # Data structures
β β βββ commands/ # Tauri commands
β β βββ utils/ # Helpers
β βββ Cargo.toml
β βββ tailwind.config.js # Styling
β βββ tauri.conf.json
β
βββ vite.config.js # Frontend build
βββ package.json # Node dependencies
βββ SETUP.md # This file
βββ README.md # README- Rust 1.70+
- Node.js 18+
- Tauri CLI
cargo install tauri-cli --version "^2.0.0" --lockednpm install
cargo tauri devcargo tauri buildSee SETUP.md for detailed instructions.
While pip_gui is a GUI app, all operations can be done from terminal with:
# Direct pip usage (why use GUI then?)
python -m pip install requests
# venv management
python -m venv myenv
source myenv/bin/activate # or myenv\Scripts\activate on Windowspip_gui just makes this faster and more visual!
- All paths validated before filesystem access
- pip executed without shell (no injection vectors)
- No remote code execution possibilities
- Config stored in user home directory
- Source code auditable and open
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Write tests for new commands
- Submit a pull request
MIT
Issues and feature requests: GitHub Issues
Built with β€οΈ using Tauri, Rust, and Python