> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowdeck.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Pose

> Get or set an iPhone Duo simulator pose.

`flowdeck simulator pose` has explicit `get` and `set` operations for an iPhone Duo simulator running through Xcode 27.1 or later.

## Set the pose

Pass a named state or any finite angle from 0° through 180°:

```bash theme={null}
flowdeck simulator pose set closed --simulator "iPhone Duo"
flowdeck simulator pose set partially-folded --simulator "iPhone Duo"
flowdeck simulator pose set open --simulator "iPhone Duo"
flowdeck simulator pose set angle 90 --simulator "iPhone Duo"

# Preview a mutation without changing the simulator
flowdeck simulator pose set angle 45 --dry-run

# Emit the pose_set JSON result
flowdeck simulator pose set angle 130 --json
```

| Value | Hinge angle |
| - | -: |
| `closed` | 0° |
| `partially-folded` | 130° |
| `open` | 180° |
| `angle <0...180>` | Exact numeric angle |

## Get the pose

Read one normalized physical sample, or add `--stream` to keep receiving samples until you press Control-C:

```bash theme={null}
flowdeck simulator pose get --simulator "iPhone Duo"
flowdeck simulator pose get -S "iPhone Duo" --stream --interval 0.25 --change-threshold 2
flowdeck simulator pose get --stream --json
```

`--json` emits one `simulator_duo_pose` NDJSON object per normalized sample. The monitor reports CoreDevice's independent physical hinge feed; it does not acknowledge pose mutations. FlowDeck waits for the owned CoreDevice stream to shut down before the command exits.

## Options

| Option | Short | Applies to | Description |
| - | - | - | - |
| `--simulator <name-or-udid>` | `-S` | All values | Target simulator name or UDID |
| `--json` | `-j` | `get`, `set` | Emit JSON for one result or NDJSON with `get --stream` |
| `--dry-run` | | `set` | Preview the operation without changing the simulator |
| `--stream` | | `get` | Continue emitting samples until interrupted |
| `--interval <seconds>` | | `get --stream` | Set the positive sampling interval; default `0.1` |
| `--change-threshold <degrees>` | | `get --stream` | Emit changes meeting this non-negative threshold |
| `--examples` | `-e` | `get`, `set` | Show usage examples |

## Requirements and errors

The selected target must use the exact iPhone Duo device identifier. A regular simulator fails before transport with `The selected simulator is not an iPhone Duo.` The selected Xcode must be 27.1 or later.

No legacy command aliases are provided. Use `flowdeck simulator pose` for every pose operation. Existing [`flowdeck simulator orientation`](/cli/commands/simulator/orientation) commands remain the rotation control.

The Xcode 27.1 monitor parser accepts only its pinned labeled hinge record. It rejects malformed, duplicate, unknown, overflowing, or non-finite fields and never writes raw Apple output to stdout. Schema drift ends the monitor instead of restarting an incompatible process indefinitely.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.