explaingit

chriskiehl/gooey

Analysis updated 2026-06-21

21,889PythonAudience · developerComplexity · 2/5Setup · easy

TLDR

A Python library that converts any argparse command-line script into a clickable graphical desktop application with a single decorator, generating input fields, file pickers, and dropdowns automatically.

Mindmap

mindmap
  root((Gooey))
    What it does
      argparse to GUI
      Single decorator
      No GUI code needed
    Tech Stack
      Python
      wxPython widgets
      pip install
    Widgets
      FileChooser
      Dropdown
      Checkbox
    Audience
      Python developers
      Office scripters
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Turn an existing argparse Python script into a desktop app non-programmer colleagues can run by double-clicking.

USE CASE 2

Add a file picker and dropdown GUI to a data-processing script without writing any UI code.

USE CASE 3

Package a Python utility as a graphical app with a progress bar for long-running tasks.

USE CASE 4

Build a simple office tool with a form-based interface using only Python's standard argparse.

What is it built with?

PythonwxPythonpip

How does it compare?

chriskiehl/gooeyjina-ai/servealishahryar1/free-claude-code
Stars21,88921,87221,991
LanguagePythonPythonPython
Setup difficultyeasymoderatemoderate
Complexity2/54/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

wxPython installs via pip but may need system libraries on Linux.

In plain English

Gooey is a Python library that turns a command line program into a graphical desktop application. The author Chris Kiehl built it for scripts that already use Python's argparse module, which is the standard way to define command line options. By adding a single decorator called @Gooey above your main function, the library reads your argparse setup and builds a window with input fields, checkboxes, dropdowns, and file pickers that match each option. You get a clickable interface without writing any GUI code. Installation is one pip command. After that, a normal argparse-based script becomes a small app that a non-programmer can run by double clicking. The decorator accepts options for the window size, the program name, the number of columns in the layout, the language for translations, and whether to skip the config screen and start straight away. If you want more control over which widget shows up for a given argument, you can swap ArgumentParser for the included GooeyParser and pass a widget hint such as FileChooser or DateChooser to each add_argument call. The intended audience is people who write small around-the-office scripts and want to hand them to colleagues who do not live in a terminal. Gooey is not aimed at Unix pipeline tools or utilities meant to be chained with other programs. The author is direct about that distinction in the README, suggesting Gooey for run-and-done utilities and quick one-off tools rather than for shell-friendly helpers. Internally Gooey parses your script for references to ArgumentParser, then maps each action to a wxPython widget. A store action becomes a text box, a store_true becomes a checkbox, a choice argument becomes a dropdown, and a mutually exclusive group becomes a radio group. The README also lists features for showing progress bars, custom icons, packaging the app, lifecycle hooks, dynamic validation, and a basic versus advanced view mode, with example screenshots and a companion GooeyExamples repository for ready-made demos.

Copy-paste prompts

Prompt 1
How do I add the @Gooey decorator to my existing argparse Python script to get an instant GUI window with no other changes?
Prompt 2
Show me how to use GooeyParser with a FileChooser widget so users can pick input and output files from a dialog box.
Prompt 3
How do I package a Gooey Python app into a standalone .exe my colleagues can run without installing Python?
Prompt 4
Give me an example of a Gooey script with a progress bar that updates while a long-running background task runs.
Prompt 5
How do I customize the Gooey window title, number of columns, and default language without modifying my argparse code?

Frequently asked questions

What is gooey?

A Python library that converts any argparse command-line script into a clickable graphical desktop application with a single decorator, generating input fields, file pickers, and dropdowns automatically.

What language is gooey written in?

Mainly Python. The stack also includes Python, wxPython, pip.

How hard is gooey to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is gooey for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub chriskiehl on gitmyhub

Verify against the repo before relying on details.