cmux-dev-workflowlisted
Install: claude install-skill manaflow-ai/cmux
# cmux Dev Workflow
## Initial setup
`./scripts/setup.sh` initializes submodules, builds GhosttyKit, and installs the pbxproj normalization pre-commit hook.
## Tagged local dev
Build the Debug app after every code change:
```bash
./scripts/reload.sh --tag <short-tag>
```
It builds without launching; pass `--launch` only when you need the app open. Never run bare `xcodebuild` or open an untagged `cmux DEV.app`: untagged builds share the default debug socket and bundle ID with other agents, causing conflicts and stealing focus.
For CLI or socket dogfood against a tagged Debug app:
```bash
CMUX_TAG=<tag> scripts/cmux-debug-cli.sh list-workspaces
```
Do not use `/tmp/cmux-cli` for tagged dogfood; that symlink points at the most recently reloaded build. See [references/tagged-builds.md](references/tagged-builds.md).
## Xcode toolchain
The team is pinned to Xcode 26.x. `.xcode-version` is the single source of truth for the major; `cmux.xcodeproj/project.pbxproj` carries `objectVersion = 60`, what Xcode 26 writes by default. (`objectVersion = 77` is reserved for synchronized folder groups, which cmux does not use.)
Intel Macs on macOS 14 with Xcode 16.2 (Swift 6.0.3) can still build the macOS app and run tagged `reload.sh` dev builds as a best-effort pathway. Keep app-linked Swift within Swift 6.0 syntax: no trailing commas in parameter or argument lists (SE-0439), no `nonisolated` on type declarations (SE-0449), and the `#if compiler(>=6.2)` / `#else @Sendable` split fo