explaingit

chriskiehl/gooey

21,889PythonAudience · vibe coderComplexity · 2/5MaintainedLicenseSetup · easy

TLDR

Turn Python command-line scripts into graphical applications with a single decorator, no GUI framework knowledge needed.

Mindmap

mindmap
  root((repo))
    What it does
      Converts CLI to GUI
      Reads argparse definitions
      Auto-generates windows
    How to use
      Add one decorator
      No GUI framework needed
      Works with argparse
    Use cases
      Share scripts with non-coders
      Office utilities
      Non-programmer tools
    Tech stack
      Python 3
      WX framework
      argparse
    Features
      Text inputs and checkboxes
      File pickers
      Dropdown menus
      Internationalization

Things people build with this

USE CASE 1

Share a utility script with non-technical teammates or clients without requiring them to use the terminal.

USE CASE 2

Turn a data-processing script into a clickable application with file pickers and input fields.

USE CASE 3

Build internal office tools that anyone can run by clicking a button instead of typing commands.

Tech stack

PythonWXargparse

Getting it running

Difficulty · easy Time to first run · 5min
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

Gooey is a Python library that turns command-line programs into graphical applications, with a window, buttons, checkboxes, and file pickers, using just a single line of code. Normally, when someone writes a Python script that accepts options and arguments, non-technical users have to run it from a terminal (the black text window), which can be intimidating. Gooey removes that barrier entirely. The way it works is straightforward. Python scripts that accept arguments typically use a built-in tool called argparse, which defines what options the program accepts. Gooey reads those definitions at the moment the program runs and automatically builds a graphical window around them. A text field becomes a text input box, a yes/no flag becomes a checkbox, a list of choices becomes a dropdown menu, and so on. You add a single decorator, a one-line annotation, above your main function, and Gooey handles the rest. No need to learn a separate GUI framework. You would reach for Gooey when you have written a useful utility script but want to share it with teammates, clients, or users who are not comfortable with the command line. The README specifically calls out "around-the-office-style scripts" and anything "targeted at a non-programmer" as ideal use cases. It is less suited for tools meant to be piped together in a terminal workflow, or for polished end-user products where you want full design control. The library is written in Python and works with Python 3. It uses a GUI framework called WX under the hood. Installation is through pip, the standard Python package manager. It also supports internationalization, meaning the interface can be translated into different languages via configuration files. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
Show me how to add Gooey to a Python script that uses argparse to accept command-line arguments.
Prompt 2
I have a Python script with argparse options. How do I turn it into a GUI app with Gooey in one line?
Prompt 3
How do I add a file picker dialog to a Gooey GUI for users to select input files?
Prompt 4
Can I translate a Gooey interface into another language? Show me how to set up internationalization.
Open on GitHub → Explain another repo

Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.