Good list. Thanks for sharing. > goal [...] gain access to custom virtual tables That's one of the main reason of my original post too. Those are part of a large application that can't be made into a loadable extension of the *regular* (official) SQLite shell, so the logical solution is to embed the shell into that large application. Others in the company have created a GUI dialog that allows running queries, including against the vtables, displaying the results in a GUI table control/widget. But of course one loses all the *.commands* of the shell, and doing a one-time embedding is IMHO a losing proposition, given the fast pace of the SQLite sources (including its shell.c). As I wrote originally, just allowing IO to be fully *redirected* to the hosting app is required, while the ability to side-step the text-based `.mode` processing to have the hosting app using a table GUI control/widget is more *nice-to-have*. (Optional side-stepping, since `.mode` is also used for output to CSV, HTLM, etc... Which should be retained and is part of the appeal to embed the shell)