# No Op

Do nothing: a placeholder or a note.

## Do things in No Op

Add a **No Op** step. Choose the row to see all its fields.

- [No Op](https://docs.gorunner.io/apps/no-op#fields-f-no-op): Does nothing and changes nothing.

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, No Op is `pieceId: "no-op"` with `actionId: "no_op"`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It computes from its inputs only (`pure`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### No Op › No Op

Does nothing and changes nothing. Useful as a visible marker (for example where a Branch's arms come back together) or as a deliberate "do nothing" arm. Steps after it still reference the earlier step they need. To annotate the canvas, use a sticky note instead.

- **Note · Optional**: Optional short label for this marker (no effect on execution). Readable downstream as {{steps.\<step>.note}}. For longer commentary, a sticky note on the canvas holds more and never runs.

Source: https://docs.gorunner.io/apps/no-op
