Skip to content
Back to skills

Macbox

ASecurity

Build, test, run, and tap through native iOS apps on a real remote Mac. Use for iOS build, test, and simulator work when this machine can't run Xcode, or when CLAUDE.md or AGENTS.md says to use macbox.

  • 1,531 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentsgoswiftbashnodetestinggitapi

Works with

  • api

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add hashgraph-online/awesome-codex-plugins --skill macbox --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Macbox?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Macbox
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hashgraph-online-macbox/badge)](https://www.skillsdirectory.com/skills/hashgraph-online-macbox)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: macbox
description: Build, test, run, and tap through native iOS apps on a real remote Mac. Use for iOS build, test, and simulator work when this machine can't run Xcode, or when CLAUDE.md or AGENTS.md says to use macbox.
---

# macbox

`macbox` sends this folder to a real Mac, runs Xcode there, and streams the result back.
Each command is one-shot: no TTY, no prompts. The exit code is the answer.
If `macbox` is not installed or not logged in, follow https://api.macbox.build/guide/ first.

## Commands

```
macbox build                  # build for the iOS simulator
macbox test                   # build, then run tests on a fresh simulator
macbox screenshot shot.png    # launch the last build, wait 3 s, save a picture
macbox status                 # minutes left, your Mac, your last job
macbox logs [job]             # follow a job again after a dropped connection
macbox cancel [job]           # stop a job
macbox run                    # build, launch, keep it running; prints a live link
macbox ui describe            # elements on screen, with ids and frames (points)
macbox ui tap --id X          # or --label X, or x y
macbox ui type <text> | swipe x1 y1 x2 y2 | button home | screen out.png
macbox stop                   # end the running app
```

To check a flow works, `run`, then `ui describe` and act on what it shows; repeat.
Give the user the live link: they can watch and tap too.

Flags: `--scheme`, `--workspace`, `--project`, `--device "iPhone 17 Pro"`,
`--only-testing Target/Class/test`, `--wait 5`, `--build <id>`, `--include path`,
`--json`, `--dry-run`. See `macbox help`.

## Exit codes

- `0` it worked.
- `1` the build or tests failed. Read the errors, fix the code, run again.
- `2` bad usage, or a problem on this machine.
- `3` macbox's side or the account (no credit, Mac offline). Don't retry in a loop; tell the user.

## Rules

- The key may already be set (`MACBOX_API_KEY` or `~/.macbox/config`): run `macbox status` before asking. Never ask for secrets in chat.
- Not logged in? Run `macbox login`: it prints a link for the user to sign in with GitHub, then exits. After they say they're done, run `macbox login` again to finish.
- `macbox test` prints `PASS name` / `FAIL name` per test, plus failing log lines.
- `macbox screenshot` launches the last build (builds first if none); `--wait 6` for slow apps.
- Use `--json` for NDJSON ending in a `{"t":"result",...}` line.

## What gets sent

- Files git tracks (submodules too), new files git doesn't ignore, and `.xcconfig` files.
- Not sent: `.git`, `Pods`, `.build`, `DerivedData`, `node_modules`, `.env`. Use `--include path` for those.
- Pods, Swift packages, and XcodeGen projects are resolved on the Mac.
- No git history or tags on the Mac. `--dry-run` lists what is sent.

## Setup scripts

A step Xcode needs first (download frameworks, copy a template config) goes in
`.macbox/setup` (bash, repo root). It runs on the Mac before builds, again only when
it changes; its output stays there. Fetch big binaries here, don't `--include` them.

## Limits

Native iOS, simulator only. No signing, no TestFlight.
Mac apps: `build` and `test` work (unsigned, for macOS); `screenshot` does not.
Private packages needing SSH keys or `~/.netrc` don't work yet.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.