---
title: OpenCommandInput
description: "The input of a `command(open)`: a string for each `arg()` of the argv that the Instance binds, and with `pin`, the commit (`{ sha }`)."
---

# `OpenCommandInput`

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 OpenCommandInput<P = false> = Readonly<Record<string, string>> &
  ([P] extends [true] ? { sha: string } : unknown);
```

The input of a `command(open)`: a string for each `arg()` of the argv that the Instance binds,
and with `pin`, the commit (`{ sha }`). The compiler cannot check the names. When the input has
no string for an `arg()`, the Effect fails when it starts.
