4 ms·
This sounds great! Expanding on this a little: Seems like you'd need a universal CLI tool usage traverser and parser to figure out what's possible. Likely this
by darzu 6y ago
This sounds great! Expanding on this a little:
Seems like you'd need a universal CLI tool usage traverser and parser to figure out what's possible.
Likely this would produce a decision tree of sorts with different modes and options excluding or including new options.
We'd need a way to show all this, maybe nested tabs for modes and check boxes and other inputs at each appropriate level.
Layer on this a way to optimize for the most common cases like you said.
Further, if this becomes popular, CLI tools could emit some sort of standard description language that would optionally customize the GUI.
The GUI's output should be both the text command it constructed and the ability to run that command directly.
More future steps would be a way to reason about multiple commands, pipes, and other combinators.
Adding this to my side projects backlog. Thanks for the idea!
- crazygringo 6y agoExactly that -- all of it. And I love the idea of CLI tools optionally emitting their own defaults for it too. I (selfishly) hope you build it, since I don't have the time!
- iib 6y agoIn the emacs world, there are textual interfaces like magit's [0] or dired's [1] interface, that tick many, perhaps most, boxes that you mention. Magit is basically that interface, but tailored to `git`, that also constructs the actual git command, should you want to see it. Dired is like that for ls, rm, cp, mv and other file utils. So, as a general design, they _may_ be of useful interest. A tool to automatically parse `man` pages or help prompts from tools would be a dream come true, basically. Apart from the possible commands, it may be useful for the GUI to also show some kind of state, for example filesize (akin to invoking `ls` before `ffmpeg`, as you would normally do on the CLI). Done with the right abstractions, command combinations should come almost for free. [0] https://magit.vc/ https://magit.vc/ [1] https://en.wikipedia.org/wiki/Dired https://en.wikipedia.org/wiki/Dired