Individual skill

hinge

Control the hinge (fold) angle of a foldable iPhone Simulator such as iPhone Duo. Use when you need to fold, unfold, half-open, or animate the fold of a running simulator, read its current hinge angle, or test how an app reacts to hinge and display changes.

skills/hinge/SKILL.md

Read pinned source

Source commit afb8f0bd277cb12187f0844a79542cbac35e7385

What was checked

Matches the observed repository HEAD
Yes
Scanner rules are current
Yes
Repository scan complete
Yes
Skill scan complete
Yes
Observed behavior
Local scripts
Last checked
Nov 5, 2026

These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.

Install this skill

Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.

Claude Code

Destination .claude/skills/hinge

( set -euo pipefail destination='./.claude/skills/hinge' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/artemnovichkov/hinge.git' "$work/repo" git -C "$work/repo" checkout --detach afb8f0bd277cb12187f0844a79542cbac35e7385 git -C "$work/repo" archive --format=tar 'afb8f0bd277cb12187f0844a79542cbac35e7385:skills/hinge' > "$work/skill.tar" mkdir -p -- './.claude/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Codex

Destination .agents/skills/hinge

( set -euo pipefail destination='./.agents/skills/hinge' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/artemnovichkov/hinge.git' "$work/repo" git -C "$work/repo" checkout --detach afb8f0bd277cb12187f0844a79542cbac35e7385 git -C "$work/repo" archive --format=tar 'afb8f0bd277cb12187f0844a79542cbac35e7385:skills/hinge' > "$work/skill.tar" mkdir -p -- './.agents/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Cursor

Destination .cursor/skills/hinge

( set -euo pipefail destination='./.cursor/skills/hinge' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/artemnovichkov/hinge.git' "$work/repo" git -C "$work/repo" checkout --detach afb8f0bd277cb12187f0844a79542cbac35e7385 git -C "$work/repo" archive --format=tar 'afb8f0bd277cb12187f0844a79542cbac35e7385:skills/hinge' > "$work/skill.tar" mkdir -p -- './.cursor/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Gemini CLI

Destination .gemini/skills/hinge

( set -euo pipefail destination='./.gemini/skills/hinge' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/artemnovichkov/hinge.git' "$work/repo" git -C "$work/repo" checkout --detach afb8f0bd277cb12187f0844a79542cbac35e7385 git -C "$work/repo" archive --format=tar 'afb8f0bd277cb12187f0844a79542cbac35e7385:skills/hinge' > "$work/skill.tar" mkdir -p -- './.gemini/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
GitHub Copilot

Destination .github/skills/hinge

( set -euo pipefail destination='./.github/skills/hinge' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/artemnovichkov/hinge.git' "$work/repo" git -C "$work/repo" checkout --detach afb8f0bd277cb12187f0844a79542cbac35e7385 git -C "$work/repo" archive --format=tar 'afb8f0bd277cb12187f0844a79542cbac35e7385:skills/hinge' > "$work/skill.tar" mkdir -p -- './.github/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
OpenCode

Destination .opencode/skills/hinge

( set -euo pipefail destination='./.opencode/skills/hinge' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/artemnovichkov/hinge.git' "$work/repo" git -C "$work/repo" checkout --detach afb8f0bd277cb12187f0844a79542cbac35e7385 git -C "$work/repo" archive --format=tar 'afb8f0bd277cb12187f0844a79542cbac35e7385:skills/hinge' > "$work/skill.tar" mkdir -p -- './.opencode/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )

Repository context

Repository stars (not skill ratings)
42
Repository last updated
Nov 4, 2026
License
MIT

Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.

Files and excerpt

File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.

Browse files
Read excerpt

# hinge

Set and read the hinge angle of a booted foldable iPhone Simulator from the command line. It posts the same HID event as the hidden hinge slider in Xcode's Device Hub (hold Option).

Run the bundled script at `scripts/hinge`, relative to this skill's directory. A `hinge` on `PATH` works too when `hinge -v` prints the same version as `scripts/hinge -v`; an older install lacks `screenshot` and `--json`.

## Commands

```bash
scripts/hinge 120                # set angle: 0 = closed, 180 = flat
scripts/hinge open               # 180°
scripts/hinge close              # 0°
scripts/hinge half               # 90°
scripts/hinge sweep 180 0 2      # animate from 180° to 0° over 2 seconds