Те обычно это был ui, сейчас вот каждый уважающий себя сервис имеет кли. Ну, это проще чем ui ваять и можно очень быстро добавлять фичи. Я вот этот написал прямо по ходу добавляя то, что мне было нужно
Кстати, сделал там достаточно приятный дсл для определения дерева команд. Команды внутри все типизированные в дсл-е не ту команду в дерево не прицепить. И можно ветку прицепить готовую от поиска например к удалению по результатам поиска
Но суть дсля очень простая. У команды есть возвращаемый тип и тип параметра. Просто когда декларируешь вложенные команды, их возвращаемый тип должен подходить к типу параметра родителя