> ISPO SDK documentation. [HTML](https://ispo.ai/docs/types/core.ProjectCommand.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Type Alias ProjectCommand<Input, Result>

```typescript
ProjectCommand: Readonly<ProjectCommandCatalogEntry> & {
    run(
        input: Input,
        options?: ProjectCommandLocalRunOptions,
    ): Promise<Result>;
}
```

Types: [ProjectCommandCatalogEntry](core.ProjectCommandCatalogEntry.md), [Input](#input), [ProjectCommandLocalRunOptions](../interfaces/core.ProjectCommandLocalRunOptions.md), [Result](#result)

Public command object: immutable callable metadata plus local `.run()`. The handler closure is deliberately not exposed.

#### Type Parameters

*   <a id="input"></a>Input = unknown
*   <a id="result"></a>Result extends [CapabilityResultEnvelope](core.CapabilityResultEnvelope.md) = [CapabilityResultEnvelope](core.CapabilityResultEnvelope.md)
