---
title: CommandInput
description: "A command's input: one string per argv slot, and with `pin` the approved commit (`{ sha }`); none when there is neither."
---

# `CommandInput`

Type, in `@jr2/orchestrator/src/effect.ts`. The signature of an export, or a type that it names, names this type. The [Authoring surface](../authoring-surface.md) page lists each export. This type is not an export of `@jr2/orchestrator`, so a workflow module does not import it by name.

```ts
type CommandInput<A extends readonly unknown[], P = false> = [
  ArgNames<A> | ([P] extends [true] ? "sha" : never),
] extends [never]
  ? void
  : { [K in ArgNames<A> | ([P] extends [true] ? "sha" : never)]: string };
```

A command's input: one string per argv slot, and with `pin` the approved commit (`{ sha }`);
none when there is neither.
