{"id":"8dbf8964-8ae1-408a-b977-177a0dabc527","slug":"deviceterm","kind":"skill","name":"deviceterm","summary":"Run live iOS Simulators and mirrored devices in your terminal","owner":"sethdeckard","repoUrl":"https://github.com/sethdeckard/deviceterm","license":"GPL-3.0","licenseTier":"strong-copyleft","trust":"community","stars":2,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-08-10T01:05:56.000Z","addedAt":"2026-10-22T01:40:08.814Z","logoUrl":"https://avatars.githubusercontent.com/u/59431?u=66bdaebdbd3f6f258c0b467c6e51742de5f7c387&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["writing"],"tags":["cli","developer-tools","ios","ios-simulator","macos","swift","terminal","terminal-emulator"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-22T03:22:28.804Z","sample":false,"url":"https://conduits.dev/tools/deviceterm","language":"Swift","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# DeviceTerm\n\n> A macOS-native terminal that runs live Apple device panes beside your shell.\n\nDeviceTerm keeps Apple-platform development in one workspace. Boot an iOS\nSimulator with the normal `xcrun simctl` command from a DeviceTerm tab and a\nlive, Metal-rendered pane appears beside the shell. Click, drag, and type in the\npane directly. DeviceTerm passes Apple's command through unchanged and observes\nthe successful boot so there is no separate attach step.\n\nThe same pane model supports iPadOS, watchOS, and tvOS Simulators, plus connected\niPhones and iPads. Advanced integrations can use the `deviceterm` CLI for input,\naccessibility, pane management, structured JSON, and operations that Apple's\ntools do not expose.\n\n<video src=\"https://github.com/user-attachments/assets/e9b6d789-a629-4237-80f3-1fe20074f445\" controls muted></video>\n\n*A one-minute demo. More at [deviceterm.com](https://deviceterm.com).*\n\n## Install\n\nInstall the signed and notarized app with Homebrew:\n\n```sh\nbrew install --cask sethdeckard/tap/deviceterm\n```\n\nOr download `deviceterm-0.14.0.dmg` from the\n[latest release](https://github.com/sethdeckard/deviceterm/releases/latest) and\ndrag `DeviceTerm.app` to `/Applications`.\n\n## Requirements\n\n- Apple Silicon Mac running macOS 14 or later.\n- Xcode installed and selected as the active developer directory for Simulator\n  and `xcrun` workflows.\n\nSimulator-service and physical-device compatibility are runtime concerns; see\nthe [compatibility section in `USAGE.md`](docs/USAGE.md#runtime-compatibility).\nFor source builds, DeviceTerm has been verified with Xcode 26.6 and Xcode 27\nbeta 6. Xcode 27 builds starting with beta 4.\n[`BUILDING.md`](docs/BUILDING.md) has the toolchain and build details.\n\n## Quick Start\n\nOpen DeviceTerm and run the Apple command you already use:\n\n```sh\nxcrun simctl boot \"iPhone 17 Pro\"\n```\n\nThe Simulator appears in the current tab. Use the mouse and host keyboard to\ninteract with it:\n\n- click or drag for touch and swipe;\n- hold Option while dragging for a two-finger pinch or rotation;\n- type into the focused device pane; and\n- scroll or drag the watch crown to turn the Digital Crown.\n\nCommands that DeviceTerm does not observe continue to behave exactly as Apple's\ntools define them. A Simulator booted from Xcode, Simulator.app, Device Hub, or\nanother terminal remains independent until explicitly attached.\n\n## Advanced CLI and JSON\n\nThe lowercase `deviceterm` command is for scripts, agents, and advanced device\ncontrol:\n\n```sh\ndeviceterm tap 0.5 0.5\ndeviceterm text \"hello\"\ndeviceterm swipe 0.5 0.8 0.5 0.2\ndeviceterm ax tree\ndeviceterm pane list --json\ndeviceterm tab show --json\ndeviceterm pane split --direction right\n```\n\nCoordinates are normalized from `(0,0)` at the top left to `(1,1)` at the\nbottom right. Workspace commands follow the UI hierarchy: a window contains\ntab workspaces, and a tab contains terminal, Simulator, and physical-device\npanes. The public roots are singular: `window`, `tab`, and `pane`.\nRun `deviceterm help`, `deviceterm help <command>`, or\n`deviceterm agents` inside a tab for the command reference. The public CLI and\nJSON contract follows SemVer; [`INTEGRATION.md`](docs/INTEGRATION.md) documents\nthe compatibility policy and parseable shapes, and\n[`AUTOMATION.md`](docs/AUTOMATION.md) covers controlling DeviceTerm itself:\nworkspace commands, automation, and events.\n\n## Agent Skills\n\nSkills that teach a coding agent to work inside a DeviceTerm tab live in\n[`deviceterm-skills`](https://github.com/sethdeckard/deviceterm-skills), a\nseparate repository: orientation, app verification, App Store screenshots,\naccessibility audits, bug reproduction, and tab titles. They target Claude Code\nand Codex.\n\n## Features\n\n- Live Simulator panes for iOS, iPadOS, watchOS, and tvOS.\n- Physical iPhone and iPad mirroring over the CoreDevice tunnel.\n- Direct mouse, keyboard, multi-touch, edge-swipe, and Digital Crown input.\n- Automatic pane attachment for supported `xcrun simctl` and\n  `xcrun devicectl` workflows inside a DeviceTerm tab.\n- Tabs, terminal splits, device panes, windows, and keyboard-driven navigation.\n- An advanced CLI for touch, keys, text, buttons, rotation, accessibility,\n  workspace control, event streams, and structured JSON.\n- Optional, hand-editable configuration with Ghostty settings for terminal\n  appearance.\n\nWhen a tab closes, DeviceTerm can detach its Simulators and leave them running or\nshut them down. Simulators booted elsewhere are borrowed and are never claimed\nwithout an explicit attach.\n\n## Building\n\n```sh\ngit clone https://github.com/sethdeckard/deviceterm.git\ncd deviceterm\nmake hooks\nmake run\n```\n\nA fully launchable local bundle needs a Developer ID Application certificate\nbecause the embedded daemon registers as a login item. A free Apple Account does\nnot provide that certificate. See [`BUILDING.md`](docs/BUILDING.md) for build,\ntest, signing, and release instructions.\n\n## Documentation\n\n- [`USAGE.md`](docs/USAGE.md): day-to-day tabs, panes, devices, input, and\n  configuration.\n- [`AUTOMATION.md`](docs/AUTOMATION.md): controlling DeviceTerm itself from\n  the CLI; workspace commands, automation, and events.\n- [`INTEGRATION.md`](docs/INTEGRATION.md): public CLI and JSON contracts for\n  advanced integrations.\n- [`PHILOSOPHY.md`](docs/PHILOSOPHY.md): product principles.\n- [`ARCHITECTURE.md`](docs/ARCHITECTURE.md): processes, RPC schema, trust model,\n  and data flow.\n- [`AGENTS.md`](AGENTS.md): contributor conventions and verification policy.\n- [`RELEASING.md`](docs/RELEASING.md): signing, notarization, and publishing\n  checklist.\n- [`deviceterm-skills`](https://github.com/sethdeckard/deviceterm-skills): agent\n  skills for Claude Code and Codex, in a separate repository.\n\n## Distribution and License\n\nPrivate CoreSimulator APIs make live Simulator panes possible, so DeviceTerm is\ndistributed directly rather than through the App Store. Release builds are\nDeveloper ID-signed and notarized.\n\nDeviceTerm is free software under the\n[GNU General Public License, version 3 or later](LICENSE). Third-party components\nremain under their own licenses; see\n[`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).\n"}