Bug / UX issue
When passing a command as a single quoted string to vers exec, it's sent as-is as the executable name rather than being shell-interpreted, causing command not found.
Repro
$ vers execute <vm-id> 'echo hello'
bash: line 1: echo hello: command not found
$ vers execute <vm-id> echo hello # works — separate args
hello
This means pipelines, redirects, and any shell syntax require the user to manually wrap in sh -c:
$ vers execute <vm-id> sh -c 'echo hello | wc -w'
1
Suggestion
Consider adding a --shell / -c flag that wraps the remaining args in sh -c "...":
vers exec <vm-id> -c 'echo hello | wc -w'
Or alternatively, detect when a single argument is passed and automatically wrap it in a shell invocation.
Impact
This is a major friction point for agents. Most programmatic use wants to run shell commands (with pipes, env var expansion, etc.), not just bare binaries with separate args.
Bug / UX issue
When passing a command as a single quoted string to
vers exec, it's sent as-is as the executable name rather than being shell-interpreted, causingcommand not found.Repro
This means pipelines, redirects, and any shell syntax require the user to manually wrap in
sh -c:Suggestion
Consider adding a
--shell/-cflag that wraps the remaining args insh -c "...":Or alternatively, detect when a single argument is passed and automatically wrap it in a shell invocation.
Impact
This is a major friction point for agents. Most programmatic use wants to run shell commands (with pipes, env var expansion, etc.), not just bare binaries with separate args.