Gooey: Turn almost any Python command line program into a full GUI application
A Python project called Gooey aims to automatically wrap command‑line tools in graphical interfaces, making it easier for non‑technical users to run scripts. Commenters like the concept but point out that it primarily supports argparse‑based CLIs, limiting compatibility with popular alternatives like Click, and note the project’s aging code and open issues. The thread branches into related tools (such as Textual, Script Server, and GUI frontends for other ecosystems), broader ideas about standardized CLI metadata and APIs, and the trade‑offs between GUI convenience, CLI power, and dependency bloat.
Scope and limitations of Gooey
- Originally tightly coupled to
argparse; several commenters argue the tagline “almost any Python command line program” is misleading given lack of native support for Click/optparse and other parsers. - Author clarifies that newer Gooey speaks JSON and is no longer inherently tied to
argparse, butargparseremains the “blessed” path and the most-supported workflow. - Some see
argparseas sufficient and like avoiding extra dependencies; others find it awkward for complex subparsers and prefer Click/Typer ergonomics. - There are questions about handling programs that expect interactive input during execution; behavior here is unclear from the thread.
Practical use and experiences
- Multiple users report using Gooey successfully to wrap Python scripts so non-programmers can run internal tools via a GUI.
- It’s noted to work on Windows, macOS, and Linux, and to pair well with PyInstaller/cx_Freeze to ship standalone executables.
- Some emphasize that non-programmers can also be taught to use CLI tools, but acknowledge that GUIs reduce friction and cognitive load for infrequent tasks.
Project maturity and maintenance
- Concern raised about the last substantial commit being over two years old and a large open-issue count; some see this as a risk.
- Others argue a tool can be “old” yet stable and still useful; they don’t expect indefinite free maintenance.
Alternatives and related tools
- Click-based analogue: Trogon for Textual (“turn your Click CLI into a terminal app”) and another Gooey-inspired GUI generator for Click.
- Other GUI/CLI frontends mentioned: Textual, Zenity/KDialog/Dialog, Python Script Server, various ffmpeg GUIs, and tools in other ecosystems (e.g., clap-rs GUIs, imgui + Boost program_options, Commando in classic Mac tools).
- Some suggest combining Gooey with other Python CLI frameworks such as Python Fire.
Broader ideas and desiderata
- Interest in the “reverse” direction: generating CLIs from GUIs, or web UIs from CLIs.
- Several comments explore a more general vision: typed, introspectable interfaces (JSON/proto, D-Bus-like IPC, PowerShell-style object pipes) that allow shells, GUIs, and tools to be auto-generated from a common description.
- Concerns are raised about the security and complexity implications of mandating universal APIs for all application functionality.