Я согласен, что дополнительные потоки управления и mime — это фишка TermKit. И для вывода используется webkit. То есть по сути отображение в TermKit — это очень крутая html-страница. Мне он не совсем нравится тем, что нужно запускать отдельный сервер для него. А про w3m не знал, спасибо, посмотрю-попробую.
В случае с конкретно этим show — не пройдет… сигнал о картинке отправляется процессу-«дедушке» show, id которого записан в отдельном файле. И с этой реализацией тоже связана проблема — если запустить еще один bash внутри term.py — show также не отработает. Увы, пока что механизмы взаимодействия процессов продуманы на скорую руку.
Пока не знаю как без GTK — сам vte не поддерживает рисование «по себе» (через свой стандартный интерфейс). Так что для МакОси нужен свой порт по всей видимости. Либо надо углубляться в vte (чья документация в случае питона весьма скудна).
Терминал с картинками на python: proof of concept