If the question appears to be off topic then please migrate to some other suitable domain on stackexchange.

Q.why to have GUI along with CLI, when you already have command line interface?

I'm currently developing an application. As of now application has a command line interface.

The target machines for application will be 80% servers and 20% workstations. I'm considering to provide GUI too for the application.

GUI Use Case: Product registration is main use case i.e. my product needs license key to run. And after that only some text info will be shown every time its launched. Only 2-3 buttons to perform extended functions.

CLI Use Case: Product registration will expect some arguments as command line arguments. Later the 2-3 extended functions available in GUI can also be started from command line.

  • 4
    There are no general answers. For some uses CLI is better and for other GUI is. Without stating the use-cases, it can't be reasonably answered.
    – Jan Hudec
    Sep 26, 2013 at 6:49
  • Note: Questions (and answers) can be edited here. You should really extend the question, not provide details in comments.
    – Jan Hudec
    Sep 26, 2013 at 6:50
  • I've updated the question with use cases!
    – bikram990
    Sep 26, 2013 at 9:21
  • 1
    This question still seems very specific to your application. Go speak with the people that will be using your application day to day and see what they have to say about using the command line or using a GUI.
    – Mike
    Sep 26, 2013 at 16:16
  • Why not do the registration online and then send some sort of registration file? Any user operating a server should be able to save the file to the correct folder so your app can read it.
    – JeffO
    Sep 26, 2013 at 18:10

2 Answers 2


Some of the reasons you might want a GUI are:

  • Some, or all, of the users are not comfortable with the command line interface
  • It may be easier to use a GUI, due to the complexity of the application. Think about Adobe Illustrator, the GUI is much simpler than writing postscript files or similar
  • There are visualizations, graphs and similar things that are better in a GUI than in ASCII

I suspect that the main thing that would motivate you, based on your description, is the first one. If you have some users that aren't comfortable with the command line interface, then you may want to provide a GUI.

One thing to consider, there are a few applications I have used that basically build their GUI as a front end for the command line version, so there is a lot of shared code.

  • The main reason why there is a CLI interface also is because its going to be on servers also and most of the servers are un-atended and the installation is going to be either pushed or automated via scripts. As far as workstations are concerned that can also use the CLI. And one thing i forgot to mention the product is basically for system admins The machine user is not going to use it much however he(user) can use it to view the status etc. Can please suggest some strong reasons for going for a GUI?
    – bikram990
    Sep 26, 2013 at 6:20
  • If the majority of users are using ssh to get to a server and run the CLI, then I would say just use the CLI and don't worry about the GUI. Administrators and developers are used to command line programs, so you don't have to make a GUI for them if they are already using the CLI, but if you were targeting a different group then you might want the GUI. Basically, i can't give you a good reason to give the same user 2 different interfaces (not that there isn't ever a good reason for that, but not usually in my experience)
    – sasbury
    Sep 26, 2013 at 6:34
  • thankx! I've added some use case in my question if you can look on them as well!
    – bikram990
    Sep 26, 2013 at 9:23
  • a graphic design application is a poor choice for making a complexity comparison between a CLI or GUI application. Something like burning CDs or partitioning disks is a better example. Sep 26, 2013 at 17:15
  • I've update the question again! I think i will need CLI for sure.
    – bikram990
    Sep 27, 2013 at 4:42
  1. Information organization. UI applications has a richer toolkit to present the data - e.g. checkbox is much faster to parse at a glance then to distinguish "true" from "false", charts give instant insight into dataset, different fonts help to drive user attention, etc.
  2. Performance. Console application IO is inherently slow. The console application you see is actually two applications (UI application called terminal emulator and actual application running in the background) that communicate over 3 pipes (e.g. character-by-character copy). Terminal emulator knows nothing about actual application and can't make any assumptions - it only parses the streams and reacts on control codes. UI applications are fused into one - instead of inefficient "emit string with control codes > switch context to different application > parse the string > update presentation" they only need to update the presentation (which they do just the same way terminal emulator does - but instead they may be optimized, e.g. cache some regions beforehand to avoid re-rendering).
  3. User-friendliness. Non-IT people are much more used to UI.
  • Thankx, I've updated my question. can you please suggest something for that.
    – bikram990
    Sep 27, 2013 at 4:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.