Skip to content

exec treats single quoted arg as binary name — no shell interpretation #176

@AlephNotation

Description

@AlephNotation

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions