[@tauri-apps/api](../README.md) / [shell](../modules/shell.md) / Command # Class: Command [shell](../modules/shell.md).Command The entry point for spawning child processes. It emits the `close` and `error` events. **`Example`** ```typescript import { Command } from '@tauri-apps/api/shell'; const command = new Command('node'); command.on('close', data => { console.log(`command finished with code ${data.code} and signal ${data.signal}`) }); command.on('error', error => console.error(`command error: "${error}"`)); command.stdout.on('data', line => console.log(`command stdout: "${line}"`)); command.stderr.on('data', line => console.log(`command stderr: "${line}"`)); const child = await command.spawn(); console.log('pid:', child.pid); ``` ## Hierarchy - [`EventEmitter`](shell.EventEmitter.md)<``"close"`` \| ``"error"``\> ↳ **`Command`** ## Constructors ### constructor **new Command**(`program`, `args?`, `options?`) Creates a new `Command` instance. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `program` | `string` | `undefined` | The program name to execute. It must be configured on `tauri.conf.json > tauri > allowlist > shell > scope`. | | `args` | `string` \| `string`[] | `[]` | Program arguments. | | `options?` | [`SpawnOptions`](../interfaces/shell.SpawnOptions.md) | `undefined` | Spawn options. | #### Overrides [EventEmitter](shell.EventEmitter.md).[constructor](shell.EventEmitter.md#constructor) ## Properties ### stderr `Readonly` **stderr**: [`EventEmitter`](shell.EventEmitter.md)<``"data"``\> Event emitter for the `stderr`. Emits the `data` event. #### Defined in [shell.ts:258](https://github.com/tauri-apps/tauri/blob/b1d5342/tooling/api/src/shell.ts#L258) ___ ### stdout `Readonly` **stdout**: [`EventEmitter`](shell.EventEmitter.md)<``"data"``\> Event emitter for the `stdout`. Emits the `data` event. #### Defined in [shell.ts:256](https://github.com/tauri-apps/tauri/blob/b1d5342/tooling/api/src/shell.ts#L256) ## Methods ### execute **execute**(): `Promise`<[`ChildProcess`](../interfaces/shell.ChildProcess.md)\> Executes the command as a child process, waiting for it to finish and collecting all of its output. **`Example`** ```typescript import { Command } from '@tauri-apps/api/shell'; const output = await new Command('echo', 'message').execute(); assert(output.code === 0); assert(output.signal === null); assert(output.stdout === 'message'); assert(output.stderr === ''); ``` #### Returns `Promise`<[`ChildProcess`](../interfaces/shell.ChildProcess.md)\> A promise resolving to the child process output. ___ ### on **on**(`event`, `handler`): [`EventEmitter`](shell.EventEmitter.md)<``"error"`` \| ``"close"``\> Listen to an event from the child process. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `event` | ``"error"`` \| ``"close"`` | The event name. | | `handler` | (`arg`: `any`) => `void` | The event handler. | #### Returns [`EventEmitter`](shell.EventEmitter.md)<``"error"`` \| ``"close"``\> The `this` instance for chained calls. #### Inherited from [EventEmitter](shell.EventEmitter.md).[on](shell.EventEmitter.md#on) ___ ### spawn **spawn**(): `Promise`<[`Child`](shell.Child.md)\> Executes the command as a child process, returning a handle to it. #### Returns `Promise`<[`Child`](shell.Child.md)\> A promise resolving to the child process handle. ___ ### sidecar `Static` **sidecar**(`program`, `args?`, `options?`): [`Command`](shell.Command.md) Creates a command to execute the given sidecar program. **`Example`** ```typescript import { Command } from '@tauri-apps/api/shell'; const command = Command.sidecar('my-sidecar'); const output = await command.execute(); ``` #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `program` | `string` | `undefined` | The program to execute. It must be configured on `tauri.conf.json > tauri > allowlist > shell > scope`. | | `args` | `string` \| `string`[] | `[]` | Program arguments. | | `options?` | [`SpawnOptions`](../interfaces/shell.SpawnOptions.md) | `undefined` | Spawn options. | #### Returns [`Command`](shell.Command.md)