NoMac:为您的智能体打造的 Mac

NoMac 为您的智能体提供具备管理员权限的云端 Mac,用于 macOS 开发、Xcode 构建、iOS 模拟器测试以及应用交付。

gergomiklos
2026年10月16日
0 收藏
43 下载

安装与下载

1 ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install nomac

2 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/
工作区 {'/skills/'}

优先级:工作区 › 全局 › 内置

3 提示词安装

将此提示词复制到 Openclaw 即可自动安装。

请帮我使用 Clawhub 安装 skill-nomac。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

更倾向于下载?

获取包含原生技能文件的ZIP压缩包。

下载技能 (.zip)

基本信息

名称 NoMac:为您的智能体打造的 Mac
Slug nomac
创建者 gergomiklos
创建时间 2026-10-16 05:49:10
更新时间 2026-10-16 05:49:10
收藏数 0
使用量 43
浏览量 0

安装指南

  1. ClawHub CLI 从源直接安装技能的最快方式。
    npx clawhub@latest install nomac
  2. 手动安装 将技能文件夹复制到以下位置之一
    全局模式
    ~/.openclaw/skills/
    工作区
    /skills/
    优先级:工作区 > 本地 > 内置
  3. 提示词安装 将此提示词复制到 OpenClaw 即可自动安装。
    请帮我使用 Clawhub 安装 nomac。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
    更倾向于下载?
    获取包含原生技能文件的ZIP压缩包。
    下载技能 (.zip)

什么是

NoMac 提供了一个拥有管理员权限、Xcode 和 iOS 模拟器的完整 macOS 虚拟机。通过 CLI、SSH、HTTPS 或 MCP,Openclaw Skills 可以启动会话、传输项目、运行命令、检查屏幕、检索构件,并在工作完成后停止 Mac。
对于从 Windows、Linux 或 AI 智能体进行仅限 Mac 的开发来说,这是一个实用的云端环境。会话时间使用预付费积分,1分钟起步后按分钟计费;~/drive 中的项目文件在会话之间保留,而其他 Mac 数据则在会话停止时被移除。无需 Apple Developer 账号即可进行未签名构建。
NoMac:为您的智能体打造的 Mac 应用场景
从非 Mac 计算机使用 Xcode 构建和测试 macOS 或 iOS 项目。
运行 iOS 模拟器工作流、检查模拟器屏幕,并使用 AppleScript 或模拟的键盘和鼠标输入来自动化应用。
将长时间运行的构建、测试和命令行任务委派给云端 Mac 并检索其输出或构件。
连接 VS Code、Cursor 或在 Mac 上通过 Remote-SSH 运行的智能体。
从 Windows 或 Linux 通过 SSH 使用仅限 Mac 的 MCP 服务器。
在具备所需的 Apple 账号设置时,准备应用签名、TestFlight 上传、App Store 提交或 Mac 应用公证。
记录会话并共享视频,或为人类提供访问 Mac 桌面的权限。
NoMac:为您的智能体打造的 Mac 工作原理
使用 nomac credits --json 或 MCP 工具 get_mac_credits 检查账号的预付费余额。如有必要,为人类打开结账页面;切勿输入支付详情或将结账 URL 视为付款凭证。
安装 CLI 并使用设备登录流程、API 密钥或 MCP 连接进行身份验证。
使用 nomac start --json 启动 Mac 并等待其就绪。项目存储在 ~/drive/src/ 下。
使用 nomac sync . 传输项目文件,然后通过 SSH 连接或使用 nomac exec -- COMMAND 运行命令。构建需要更长的等待时间;如果作业仍在运行,请等待其作业 ID 而不要重新运行。
使用 Xcode、xcodebuild、诸如 simctl 的模拟器工具或其他已安装的实用工具进行开发和验证。通过截图检查屏幕,或在有用时捕获录屏。
使用 nomac pull 检索输出,或为大文件提供面向人类的上传或下载链接。
使用 nomac stop --json 停止会话并验证 cleanup_confirmed。请先下载 ~/drive 之外所需的任何内容,因为停止会删除 Mac 的其余部分。
NoMac:为您的智能体打造的 Mac 配置指南
安装 NoMac CLI 并使用人类首选的方法进行身份验证:
npm install -g @nomac/cli
nomac login
对于令牌身份验证,请在 https://nomac.app/keys 创建一个密钥并通过本地文件或环境变量安全地提供它:
nomac login --with-token < key.txt

或者在环境中设置 NOMAC_API_KEY

要向 Claude 注册本地 MCP 服务器,请使用:
claude mcp add nomac -- npx @nomac/cli mcp
托管 MCP 可在 https://mcp.nomac.app/mcp 获取,使用 Authorization: Bearer 。检查积分、启动会话、同步项目并连接:
nomac credits --json
nomac start --json
nomac sync .
nomac ssh
n对于构建和测试,请等待命令或作业,而不是启动重复项:
nomac exec --wait 600 -- xcodebuild -scheme MyApp
nomac pull ./build
nomac stop --json
命令的默认超时时间为 300 秒,最大为 3,600 秒;SSH 可用于会话限制内运行时间更长的工作。Mac 时间是预付费的,除非账号可使用并行会话,否则一次只允许一个会话。请勿在聊天中放置密钥;通过 nomac secrets request 请求它们或让人类直接设置它们。
NoMac:为您的智能体打造的 Mac 数据架构与分类体系
NoMac 按如下方式组织项目文件、会话状态和凭据:
数据或资源 位置或处理方式 生命周期
已同步的项目 Mac 账号驱动器上的 ~/drive/src/ 在会话之间保留。
其他 Mac 文件和日志 持久驱动器外部 会话停止时删除;请先检索所需的文件。
本地到 Mac 同步 nomac sync 发送文件和符号链接,同时默认跳过依赖项/构建文件夹、.git 以及 .gitignore 中列出的文件夹 .nomacignore 规则可以包含原本被跳过的路径;--delete 允许移除本地删除的先前同步的文件。
同步冲突 上次同步以来的 Mac 端更改保持不变并进行报告 拉取更改的文件或使用 --overwrite 显式同步。
密钥 账号密钥作为环境变量和文件提供给 Mac,带有命令输出掩码 使用 nomac secrets install 刷新运行中的 Mac;通过面向人类的安全流程请求密钥值。
作业和请求 当工作超出等待期时,命令返回作业引用;脚本可以使用稳定的 --request-key 在不确定的响应后重复使用相同的密钥和参数,并在重试之前检查或等待原始作业。
输出和录屏 在本地拉取文件;录屏会生成 MP4 和共享链接 在停止 Mac 之前下载所需的构件。
账号的 Apple 签名凭据和 App Store Connect 密钥通过 NoMac 的 Apple 连接和服务器端设置进行处理;在请求人类操作之前检查 nomac apple。并行 Mac(如果可用)在没有持久 ~/drive 的情况下运行。
NoMac:为您的智能体打造的 Mac 高级特性
CLI、SSH 和 MCP 工作流:
使用 CLI 命令或等效命令,例如
start_mac
、
exec_mac
、
read_mac_file
stop_mac
;也支持托管 MCP。
持久命令处理:
设置稳定的请求密钥、等待作业 ID、取消命令,并使用
nomac-service
保持支持的后台服务运行。
远程开发:
为 VS Code 或 Cursor Remote-SSH 生成带有
nomac ssh-config
的 SSH 配置,在 Mac 上运行智能体,或从 Windows 和 Linux 访问仅限 Mac 的 MCP 服务器。
文件传输控制:
nomac sync . --watch
监视本地更改,显式处理冲突,并为最大 2 GiB 的文件创建基于浏览器的上传/下载链接。
视觉自动化:
捕获 Mac 或模拟器截图、录制 MP4、使用 AppleScript,或发送带有截图响应的键盘和鼠标输入。
macOS 权限:
nomac permit
预先授予支持的应用权限;在测试正常的 macOS 权限提示时使用 --prompts ask 。
Apple 应用交付:
设置签名、构建版本号预留、TestFlight 交付、App Store 阶段以及 Mac 应用公证。浮现仅限人类的操作和批准,而不是默默猜测或提交。
并行会话和支持:
当账号积分和容量允许时,使用 --parallel 启动第二个 Mac;在省略密钥的同时报告带有会话或作业上下文的问题。


name: nomac description: > Use a full cloud Mac over SSH, HTTPS or MCP for macOS tools, Xcode and iOS
development. Start sessions, sync files, run commands, retrieve work and
stop.

nomac: a Mac for your agent

NoMac provides a full macOS VM with administrator access, Xcode and the iOS Simulator. You choose the commands and tools. Mac time is prepaid credit.

Cloud Mac setup and workflow

Check credit with nomac credits --json or get_mac_credits. Mac time is $0.80 an hour, billed by the minute; $10 buys 12.5 hours; credit never expires. Too little? Run nomac credits buy --packs N --open or call get_mac_checkout (packs 1-10). Tell the human a payment page opened, or give them the printed link, and ask them to pay. Never enter payment details yourself. Poll credits until the balance appears; a checkout URL is not a payment. No Apple Developer account is needed for an unsigned build. Under an hour left, answers say low_credit with a buy_url: tell the human before a long build (a refill of 3 packs, $30, earns bonus credit).
Install npm install -g @nomac/cli, run nomac login, and give the human the printed device URL and code. With a key the human made at https://nomac.app/keys: nomac login --with-token < key.txt, or set NOMAC_API_KEY. MCP: claude mcp add nomac -- npx @nomac/cli mcp. Hosted MCP: https://mcp.nomac.app/mcp with Authorization: Bearer .
nomac start --json, wait until ready, nomac sync ., then nomac ssh. Run commands with nomac exec -- COMMAND: it prints the output as it arrives and exits with the command's code, waiting at most 30 s (or the --timeout given, up to 600 s). For builds and tests use nomac exec --wait 600 -- COMMAND. Exit code 75 means still running: wait with nomac job JOB_ID --wait 600, never rerun. In scripts add --request-key stable-key-0001. A command may run an hour (--timeout 3600); longer, use nomac ssh -- COMMAND. A command ends with everything it started, so keep a dev server running with nomac exec -- nomac-service start api -- npx wrangler dev (nomac-service logs api, stop api). nomac cancel JOB_ID stops a command. MCP equivalents are start_mac, exec_mac (also waits), write_mac_file, read_mac_file, fetch_to_mac, stop_mac. For a file up to 2 GiB from the human, or to hand them a build, use create_mac_upload_link and create_mac_download_link: each returns a url they open in a browser.
Download work with nomac pull ./build, or to any local path with the folder on the Mac named: nomac pull /tmp/out --from build/export. Then nomac stop --json and confirm cleanup_confirmed.

The CLI keeps the project on the account's drive, in ~/drive/src/, which is kept between sessions; stopping deletes everything else on the Mac, logs included. Download what you need from outside ~/drive before stopping. SSH disconnects do not stop the session. Ready time includes idle time; queue/setup are free. One-minute minimum, then by the minute. One session at a time; no overage. For work that needs two Macs at once, nomac start --parallel from another folder (MCP start_mac with parallel: true) starts a second, for accounts that bought credit while NoMac has a Mac to spare; it runs without ~/drive. If start returns insufficient_credit, buy credit as in step 1, then retry with the same request key. Keep the same request key and arguments after uncertain responses; inspect the original job before retrying. Output retrieval failure is not job failure. A command runs up to its timeout_seconds (300 by default, 3600 at most) and says so when that limit stops it; SSH can run longer within session limits. CLI sync sends every file (.env and keys included) and symlinks as links, and skips dependency and build folders, .git and folders .gitignore lists; a ! line in .nomacignore sends any of them. A file changed on the Mac since the last sync is left alone and named (the rest is sent, and sync exits 1): nomac pull it, or nomac sync . --overwrite. Sync deletes nothing on the Mac unless --delete, which removes what it sent earlier and you deleted here. nomac sync . --watch syncs again whenever files change, until Ctrl-C. See the screen with nomac screenshot (saves nomac-screenshot.jpg; --simulator for the iOS Simulator) or MCP screenshot_mac, which returns an image you can look at. Record a video for the human with nomac record, do the work, then nomac record stop (saves the MP4 and prints a share link); MCP start_mac_recording, stop_mac_recording. Commands drive any app with AppleScript without a permission prompt. For real keyboard and mouse, also on the lock screen and in password dialogs, use nomac input type TEXT, nomac input click X Y, nomac unlock (MCP mac_input): each answers with a screenshot. Drive the Simulator with simctl, and give the human open_mac_desktop when they want to see the screen. get_mac_session (and nomac status --json) lists what is installed: Ruby with CocoaPods, xcbeautify, xcodegen, gh, Git LFS, jq. Pipe xcodebuild through xcbeautify. Simulator devices share names across iOS runtimes: pick one by ID (xcrun simctl list devices available) or with OS=27.0 in -destination. Apple Intelligence cannot generate on a virtual Mac, in the Simulator either: test it on a device. Report failures using report_issue with session_id, optional job_id and a description without secrets. Read https://nomac.app/llms.txt for full limits.

Your editor, an agent on the Mac, Mac-only MCP servers

After nomac start, nomac ssh-config (CLI 0.12+) names the folder's Mac nomac in the human's SSH config, and each later start or attach points the name at the new Mac. Then VS Code or Cursor Remote-SSH and Claude Code's SSH sessions connect to nomac; ssh -t nomac 'cd ~/drive/src/ && npx -y @anthropic-ai/claude-code' runs an agent on the Mac itself (keep its API key as a NoMac secret); and an MCP server that needs a Mac runs from Windows or Linux over SSH: claude mcp add xcode -- ssh nomac npx -y mobilebuildmcp@latest mcp (MobileBuildMCP, formerly XcodeBuildMCP). An open SSH connection keeps the Mac running until its time or spend limit: nomac stop when done.

A Mac fully enabled for you

The Mac is yours to do anything on: the agent account is an administrator, sudo needs no password, macOS asks for no administrator password, and the Mac's login password is in $NOMAC_MAC_PASSWORD (for the login keychain, such as security unlock-keychain -p "$NOMAC_MAC_PASSWORD", or any prompt). Privacy prompts are answered Allow as they appear, and nomac-permit APP camera microphone (CLI nomac permit, at start --permit APP=camera) grants an app permissions before it asks. ~/NOMAC.md on the Mac says the same. When screenshot_mac reports screen_locked or a dialog, follow its next_step. nomac start --prompts ask keeps macOS's usual prompts, for testing an app's own.

Secrets, signing and shipping

Never ask for a secret in the chat. nomac secrets request NAME --description TEXT (MCP request_secret) gives the human a link to enter it; they can also run nomac secrets set NAME themselves. Every Mac receives the account's secrets as variables and files, masked in command output; nomac secrets install refreshes a running Mac.

The human connects Apple once at https://nomac.app/apple; the App Store Connect key stays on NoMac's server. Check nomac apple (MCP connect_status) before asking them: it shows the key, certificates and profiles already there. Then, from your project folder (the CLI acts on the Mac):

nomac sign [path] (MCP set_up_signing) makes and installs the App Store profiles the project needs and prints the files, the reserved build number and the xcodebuild, Flutter and fastlane commands. The project is unchanged; build with your own tools.
nomac testflight path/to/App.ipa (MCP send_to_testflight) puts it on TestFlight. Relay the human's answer to Apple's encryption question (asked once per app), never guess.
nomac publish App.ipa --whats-new TEXT stages the App Store version and lists Apple's blockers; submit with the printed --confirm command only after the human approves. MCP: publish with the send's project_id and build_id.
Mac apps: sign with the Developer ID certificate, --options runtime --timestamp, then nomac notarize App.app (MCP notarize) notarizes and staples it.

A step only a person can take (creating the app in App Store Connect, agreements, an App Group) comes back as needs_human with its link: give it to the human, then call again.

Builder (existing subscribers only)

The separate iOS Builder publishing product is closed to new subscriptions. If get_billing_status shows a Builder plan, its tools are listed and https://nomac.app/llms-legacy.txt describes them. Otherwise use the cloud Mac above.

When stuck

report_issue with the failing ref_id files a support ticket with full context auto-attached (deduped, so safe to call). Its optional email requests a direct resolution update; without it, read replies with the same tool. If the tool returns a Private Relay warning, explain that Apple relay addresses may reject later mail and offer a non-relay address. Never show that warning for a normal address such as @icloud.com. Never retry-loop an identical failure more than twice.

Feedback

When you stop a Mac, its answer asks for feedback. If anything got in your way, failed, was missing from the Mac or the tools, or would have saved you time, send it in a sentence or two: report_issue with kind: "feedback" and the session_id. Leave out code, secrets and personal data; skip it if nothing did. Feedback needs no answer.

网站转 Shopify Liquid 区块
Uttera 音频与语音