# chriskiehl/Gooey

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/chriskiehl-gooey).**

22,050 stars · 1,047 forks · Python · mit

## Links

- GitHub: https://github.com/chriskiehl/Gooey
- awesome-repositories: https://awesome-repositories.com/repository/chriskiehl-gooey.md

## Description

Gooey is a framework that transforms command-line programs into graphical applications by automatically generating user interfaces from existing argument definitions. By applying a decorator to a script, the tool maps standard command-line arguments to specialized graphical widgets, allowing users to interact with terminal-based utilities through forms, file pickers, and date selectors.

The project distinguishes itself by providing a comprehensive suite of customization and lifecycle management tools that extend beyond simple interface generation. It includes capabilities for input validation, native menu integration, and application branding, alongside support for localizing interface text into multiple languages. Furthermore, it monitors the execution of background tasks by parsing console output to drive visual progress indicators.

The framework also facilitates the distribution of these tools by bundling scripts and their dependencies into standalone, cross-platform executables. This process eliminates the need for an end-user terminal environment, allowing the generated graphical applications to run as independent desktop programs.

## Tags

### Development Tools & Productivity

- [Graphical Argument Interfaces](https://awesome-repositories.com/f/development-tools-productivity/argument-parsers/graphical-argument-interfaces.md) — Maps standard command-line arguments to specialized graphical widgets like file pickers and date selectors.
- [CLI Application Generators](https://awesome-repositories.com/f/development-tools-productivity/cli-application-generators.md) — Transforms existing command-line tools into user-friendly graphical applications by automatically generating interfaces from argument definitions.
- [Decorator-Based GUI Generators](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces/task-command-generators/decorator-based-gui-generators.md) — Automatically generates graphical user interfaces for command-line programs by applying decorators to existing argument definitions.
- [Executable Bundlers](https://awesome-repositories.com/f/development-tools-productivity/command-line-application-wrappers/executable-bundlers.md) — Bundles command-line scripts and dependencies into standalone, cross-platform executables for simplified distribution.
- [Desktop Application Runtimes](https://awesome-repositories.com/f/development-tools-productivity/desktop-application-runtimes.md) — Bundles command-line scripts into standalone executable files that run on user machines without requiring a terminal or external dependencies.
- [Progress Indicators](https://awesome-repositories.com/f/development-tools-productivity/progress-indicators.md) — Monitors standard output streams using pattern matching to update visual progress indicators during long-running background tasks.
- [Argument-to-Widget Mappers](https://awesome-repositories.com/f/development-tools-productivity/widget-mapping-utilities/argument-to-widget-mappers.md) — Translates command-line argument types into specialized graphical input components like file pickers or date selectors.
- [Static Asset Bundlers](https://awesome-repositories.com/f/development-tools-productivity/static-asset-bundlers.md) — Packages application logic and graphical resources into a standalone executable to eliminate external dependencies.
- [Progress Tracking](https://awesome-repositories.com/f/development-tools-productivity/workflow-automation-tools/workflow-lifecycle-management/progress-tracking.md) — Provides visual progress bars for long-running tasks by parsing console output streams. ([source](https://cdn.jsdelivr.net/gh/chriskiehl/Gooey@master/README.md))

### DevOps & Infrastructure

- [Executable Packaging](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-tooling/native-build-orchestrators/executable-packaging.md) — Bundles command-line scripts and dependencies into standalone, cross-platform graphical executables for simplified distribution. ([source](https://github.com/chriskiehl/Gooey/blob/master/docs/packaging/Packaging-Gooey.md))

### User Interface & Experience

- [Graphical User Interfaces](https://awesome-repositories.com/f/user-interface-experience/graphical-user-interfaces.md) — Wraps command-line programs with a decorator to automatically render a graphical user interface based on existing argument definitions. ([source](https://cdn.jsdelivr.net/gh/chriskiehl/Gooey@master/README.md))
- [UI Decoration Frameworks](https://awesome-repositories.com/f/user-interface-experience/ui-decoration-frameworks.md) — Automatically constructs graphical user interfaces by wrapping command-line argument definitions with metadata decorators.
- [Form Input Widgets](https://awesome-repositories.com/f/user-interface-experience/form-input-widgets.md) — Enables replacing standard text input fields with specialized graphical components like file choosers, date pickers, or color selectors. ([source](https://cdn.jsdelivr.net/gh/chriskiehl/Gooey@master/README.md))
- [Forms](https://awesome-repositories.com/f/user-interface-experience/forms.md) — Builds specialized input forms with file choosers, date pickers, and validation logic to improve data entry for command-line utilities.
- [Interface Localization](https://awesome-repositories.com/f/user-interface-experience/interface-localization.md) — Supports translating application labels and interface text into multiple languages through external configuration files.

### Operating Systems & Systems Programming

- [Subprocess Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-administration-utilities/system-utilities/process-and-task-orchestration/subprocess-managers.md) — Manages the lifecycle of external command-line programs by capturing their output and exit codes to update the interface state.

### Software Engineering & Architecture

- [Lifecycle Event Hooks](https://awesome-repositories.com/f/software-engineering-architecture/lifecycle-event-hooks.md) — Triggers custom user-defined functions at specific points in the program execution flow to allow for dynamic interface behavior.

### System Administration & Monitoring

- [Task Status Monitors](https://awesome-repositories.com/f/system-administration-monitoring/task-status-monitors.md) — Visualizes the status of long-running background processes by parsing console output into interactive progress bars.

### Testing & Quality Assurance

- [Input Validation](https://awesome-repositories.com/f/testing-quality-assurance/validation-verification/input-validation.md) — Provides pre-flight checks on form data using custom validation functions before executing the main program logic. ([source](https://cdn.jsdelivr.net/gh/chriskiehl/Gooey@master/README.md))
