chriskiehl

Gooey

Gooey is a Python library that turns command line programs into cross-platform desktop GUI apps with forms, progress bars, and an output console by adding a single decorator to argparse-based code.

1.0.8.2
Published at
18h ago
21,895
Stars
1,143
Download
Synced at
9h ago

Latest release

1.0.8.2Oct 28, 2026, 05:09 AM
Downloads slow? Switch the source anytime above

README

Project Overview

Gooey turns almost any Python 3 console program into a full GUI application with one line. It works on top of argparse: attach the @Gooey decorator to your main function and existing command line arguments are automatically mapped to form widgets, while program output streams into the GUI window in real time.

Item Value
Platforms Windows, macOS, Linux
Language Python 3
UI framework wxPython
License MIT

One decorator moves your script tools from the terminal onto everyone's desktop.

Key Features

  • One-line integration: add the @Gooey decorator to a function with argparse declarations to get a GUI
  • Automatic forms: widgets such as text fields, dropdowns, and file pickers are chosen from argument types
  • Fine-grained control: swap in GooeyParser to pick widget styles and validation per argument
  • Run modes: full configuration, basic mode, or skip the config screen and run directly
  • Progress and output: program output streams into the window, with progress bars and elapsed/remaining time
  • Lifecycle events: hooks for startup, success, and failure let you drive the UI dynamically
  • Dynamic validation: validate inputs before submission and surface errors on the form
  • Appearance options: custom menus, icons, fonts, and global UI configuration

Target Audience

  • Python script authors
  • Developers handing internal tools to non-technical colleagues
  • Teams maintaining many argparse-based CLI tools
  • Prototype builders who need a UI fast

Quick Start

  1. Install via pip
pip install Gooey
  1. Decorate your argparse entry point
from gooey import Gooey

@Gooey
def main():
    # existing argparse declarations stay unchanged
    ...
  1. Run the script to open the GUI; pair with PyInstaller to distribute a standalone executable

Core Advantages

  • Zero rewrite: existing argparse logic stays untouched, one decorator line adds the interface
  • Friendly UX: non-technical users run scripts through forms instead of memorizing flags
  • Complete toolkit: progress display, lifecycle events, and packaging guidance are all included

System Requirements

Item Requirement
Language Python 3
OS Windows, macOS, Linux
UI dependency wxPython

Notes

  • wxPython dependency: installing wxPython on some platforms may require prebuilt wheels or extra setup
  • argparse based: programs must define parameters with argparse for forms to be generated automatically

Release history

Sort