Skip to main content
core:run-command runs a shell command and streams its output to your terminal. It is included with @isox-sh/cli; no separate executor installation is needed. The fully scoped reference is @isox-sh/core:run-command. Both also accept the plural alias run-commands.

Wrap an existing script

For a project that already has a build script in apps/web/package.json, create apps/web/project.json:
apps/web/project.json
Replace the command with your package manager or underlying tool invocation. Make sure the wrapped script does not call the same Isox command recursively.

Options

Commands inherit the environment and standard input, output, and error streams. A nonzero exit code or signal termination fails the Isox command. Cancellation propagates to the child process tree.

Run multiple commands

Use exactly one of command or commands. Every entry runs in its own shell with the same cwd; changing directories in one entry does not affect another. Entries run in parallel by default. Set parallel: false to run them in order. A failed command stops the sequence or cancels parallel siblings. The executor waits for all child processes to finish before returning. String entries and command objects execute the same way. For example, this array uses both forms:
Command objects accept only command; set cwd and parallel on the enclosing options object. Put each tool’s arguments directly in its command string.

Configure tool flags

Put tool flags in command. Use named configurations for repeatable variants. A configuration or CLI options override can switch between command and commands; the explicitly supplied form replaces the inherited form. Supplying both together in the same override is invalid. For example, isox check web --strict would pass an option named strict to this executor; it would not append --strict to your shell command. Define the full command in the configuration instead:
If this definition is stored under targets.check, run isox check web --config=strict. The example assumes your workspace provides scripts/check.mjs and that it accepts --strict. The executor passes command strings to the shell without expanding workspace tokens or loading .env files. The invoked tools handle their own configuration. Use target-level dependsOn for required build ordering. For programmatic execution and cancellation helpers, see the core API.