Gooey: Turn almost any Python command line program into a full GUI application

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • Onboard AI - ChatGPT with full context of any GitHub repo.
  • WorkOS - The modern API for authentication & user identity.
  • Gooey

    Turn (almost) any Python command line program into a full GUI application with one line

    Hey! Cool project! I have a question: why do you dump out sys.argv to a local file in the CWD? [0] tmp.txt is hardly a unique name… or am I missing something and this never triggers?

    [0] https://github.com/chriskiehl/Gooey/blob/be4b11b8f27f500e732...

  • python-uime

    Wow, what a nice coincidence to see this on HN! Just two days ago, I was hacking up a similar project. https://github.com/livetheoogway/python-uime

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • quick

    A real QUICK Qt5 based gUI generator for ClicK (by szsdk)

    Which is arguably a good reason Click should look for an alternative basis (though, OTOH, the reasons Click remains on optparse are, arguably, a reason that optparse, while it perhaps should not be further developed but for bug fixes, should not be considered deprecated), but in fact a lot of Python command-line programs depend on Click, so something that only works on argparse-based programs does not, in fact, support "almost any Python command line program".

    Interestingly, there is a gooey-inspired GUI generator for Click-based programs: https://github.com/szsdk/quick

  • docopt

    Pythonic command line arguments parser, that will make you smile

    http://docopt.org/

    Not quite what you asked for, but close: type example invocations to generate the CLI, and just pull the arguments from a dictionary at runtime.

  • camply

    camply, the campsite finder ⛺️ - a tool to find campsites at sold out campgrounds through sites like recreation.gov

    Adding Textual support to camply [1] was apparently very easy. I didn't to the implementation; I just contribute to the project sometimes: https://juftin.com/camply/command_line_usage/#tui

    [1] https://juftin.com/camply/

  • ffmprovisr

    Repository of useful FFmpeg commands for archivists!

    The Handbrake suggestion is a good one if your only interest is transcoding ... which barely scratches the breadth of what ffmpeg as a tool can do.

    Try: https://amiaopensource.github.io/ffmprovisr/

    for a 'better' ffmpeg CLI documentation, your mileage may vary, it's task and example focused.

    Try: https://github.com/topics/ffmpeg-gui

    for 66 variations on a GUI for ffmpeg of which I have no comment, I'm an old school CLI user through and through.

  • klask

    Automatically create GUI applications from clap3 apps

    There are also similar applications for usage with clap-rs.[1][2]

    [1]: https://github.com/MichalGniadek/klask

    [2]: https://github.com/grantshandy/claui

  • Onboard AI

    ChatGPT with full context of any GitHub repo. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at app.getonboardai.com.

  • claui

    A GUI generator for clap-rs using egui

    There are also similar applications for usage with clap-rs.[1][2]

    [1]: https://github.com/MichalGniadek/klask

    [2]: https://github.com/grantshandy/claui

  • jc

    CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts.

    > I'd love to see programs communicate through a typed JSON/proto format that shed enough details to make this more independent, and get useful shell command structuring/completion or full blown GUIs from simply introspecting the expected input and output types.

    You should try PowerShell. It's basically Microsoft's .NET ecosystem molded into an interactive command line. I'm not entirely sure if PoweShell can make full use of the static types that build up its core, but its ability to exchange objects in the command line is almost unmatched.

    On Linux you can use `jc` (https://github.com/kellyjonbrazil/jc) combined with `jq` (https://jqlang.github.io/jq/) to glue together command lines.

  • jq

    Command-line JSON processor

    > I'd love to see programs communicate through a typed JSON/proto format that shed enough details to make this more independent, and get useful shell command structuring/completion or full blown GUIs from simply introspecting the expected input and output types.

    You should try PowerShell. It's basically Microsoft's .NET ecosystem molded into an interactive command line. I'm not entirely sure if PoweShell can make full use of the static types that build up its core, but its ability to exchange objects in the command line is almost unmatched.

    On Linux you can use `jc` (https://github.com/kellyjonbrazil/jc) combined with `jq` (https://jqlang.github.io/jq/) to glue together command lines.

  • bencher

    A package for benchmarking the characteristics of arbitrary functions (by blooop)

    I'm trying to solve the part of the problem that generates the output, the argparse part would not be that hard to write.

    https://github.com/blooop/bencher/tree/main

  • PowerShell

    PowerShell for every system!

    PowerShell is available on macOS and Linux as well (source on Github: https://github.com/PowerShell/PowerShell). It may not be as well-integrated with things like system services management, but the language still works well. You can still use all the command line tools you're used to on Linux, of course.

    nushell does look interesting, though the lack of a .deb repository does put it pretty low on my to-do list.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts