Feature request: 'run' action & io.run() method

Hi @Gunnar

I would like to request a feature that would solve a real limitation that I encounter many times.

The problem:

Right now, the only way to run something external from a script is io.launch() (in JS) or the “launch” action (in midiScript). Both options actually opens/launches a target via the OS, which brings another application to the foreground and steals focus from the app I’m working in.

I would like that Cubase keeps window focus when a script calls the following actions:

- launch a plain command-line binary (launch opens a Terminal window)

- launch a URL command , like btt:// URL (launch activates BetterTouchTool)

In every case Cubase loses focus, which is disruptive during a session. So io.launch() / launch action are not approppiate for “fire-and-forget” background commands.

The request:

Could you add a complementary method like io.run() in JS, and “run” action in midiScript, that executes a command silently — i.e. runs an executable/command directly (like a plain exec / shell invocation) WITHOUT opening or activating any application, and without bringing any window to the foreground?

The key difference from launch:

- launch action / io.launch(path, parameters) → opens/activates a target via the OS (current behavior, keep as is).

- run action / io.run(command, parameters) → executes a command in the background, no app activation, no focus change, no Terminal window.

Why this matters:

This would make it possible to communicate with other tools (for example BetterTouchTool’s CLI, or any shell command) from a background script without changing the app focus (keeping focus on the DAW).

It would turn the plugin into a capable hub for “silent” automations, without the side effect of taking focus away from the user’s current app.

Optional nice-to-haves (only if easy):

- A way to capture the command’s stdout return value (string), so the script can react to the result.

- A flag to choose between blocking and non-blocking execution.

Thanks for considering this!

Good suggestion, I’ll take a look at it.

1 Like

Thanks a lot!