software/ToolApp.jpg{teaser.png} Source Code on GitLab

ToolApp is a jack of all trades and master of none. It has many built-in tools, including a file manager, text editor, web browser, and git tool. It brings them all together into what I call a "Project Window". The image above shows a project window with 6 tools running. I can save this project to a file, and re-load it at a later date.

All of the ToolApp tools have one thing in common, they have "Options". An option has a small script to perform any action you wish. These options are fully customisable; you can add you own, edit or delete the in-built options. Taking the "Directory" tool as an example, there are options to delete a file, to rename a file, to open a directory etc. The power of ToolApp comes when you start creating your own options to suit your specific needs.

Options can be run by selecting them from a pop-up menu, or by typing a short code. For example I use "rm" as the code to delete a file - DOS fans may like to change it to "del" ;-)

Imagine you have an on-line shop, and your products images must be a particular size. Create an option to run an ImageMagick command. You can then resize an image by typing the code next to each full-size image.


  • Save/Restore the state of the whole project window
  • Each tab remembers its history, so you can got back/forward in the same way you do with a web browser.
  • Options are fully customisable
  • Creating a new tool is extremely quick compared to traditional GUI programs.
  • Integrates well with the unix command line - tools and tasks can be run directly or "prompted", allowing command line arguments to be entered by filling in a form (no need to remember command line arguments, or reading through "man" pages).


ToolApp's predecessor was originally written in Java using Swing (See JGuifier and WrkFoo). I started writing this Kotlin version, as a way of learning a new language. I also used it to learn about JavaFX too. I soon realised that JavaFX was so much better than Swing, so I soon abandoned JGuifier and WrkFoo in preference of ParaTask and ToolApp.


ToolApp was inspired by a clunky AS/400 text-only program call "PDM". Well, actually PDM was a little limited, and I wrote my own version of it, so ParaTask is actually my 3rd iteration!

Having user-customisable options in combination with the AS/400's "commands" provided a very flexible and powerful tool. AS/400 commands are superior to unix style commands, in that they can be "prompted". There is no need to remember command line switches, instead, you can fill out a form to provide the command line arguments. Paratask's Tasks give the same ease of use, with all the added goodness of a proper GUI.