Is it possible to use WP-CLI in a plugin (or theme)?
$ret = \WP_CLI::execute('plugin list');
I want to use some subcommands from other plugins.
WP-CLI is a command line interface to WP. So, it is used in a Unix shell environment. Plugins and themes are written in PHP (which itself also runs in a shell, usually Unix). So, to execute a WP-CLI command in a plugin you would have to pass it from PHP to the Unix shell. That may be done using the PHP function
So, the answer to the question 'is it possible?', is YES. However, the answer to the question 'should I be doing this?' is NO WAY. Here are some considerations:
WP-CLI may not even be installed on the server the plugin/theme is used on, for instance because it is a Windows based server.
shell_exec from a theme/plugin is a security risk, because of the powerful commands that are possible on the command line. Many providers block PHP from using
shell_exec and other execution commands.
Everything you can do through WP-CLI can be done in WP proper as well. After all, it is a gateway to WP and offers no additional functionality.