Release
vaayne/mori
Release workflow for Mori macOS workspace terminal and MoriRemote iOS app.
Build AFM from scratch — submodules, patches, webui, and Swift build.
$ npx skills add scouzi1966/maclocal-api --skill build-afm -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scouzi1966/maclocal-api build-afm --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/scouzi1966/maclocal-api.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/build-afm .claude/skills/build-afm && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "build-afm" agent skill from https://github.com/scouzi1966/maclocal-api/tree/main/.claude/skills/build-afm into .claude/skills/build-afm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-afm", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/scouzi1966/maclocal-api/tree/main/.claude/skills/build-afmType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add scouzi1966/maclocal-api --skill build-afm -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scouzi1966/maclocal-api build-afm --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scouzi1966/maclocal-api.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/build-afm .agents/skills/build-afm && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "build-afm" agent skill from https://github.com/scouzi1966/maclocal-api/tree/main/.claude/skills/build-afm into .agents/skills/build-afm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-afm", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scouzi1966/maclocal-api --skill build-afm -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scouzi1966/maclocal-api build-afm --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scouzi1966/maclocal-api.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/build-afm .cursor/skills/build-afm && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "build-afm" agent skill from https://github.com/scouzi1966/maclocal-api/tree/main/.claude/skills/build-afm into .cursor/skills/build-afm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-afm", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/scouzi1966/maclocal-api.git --path .claude/skills/build-afm--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add scouzi1966/maclocal-api --skill build-afm -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scouzi1966/maclocal-api build-afm --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scouzi1966/maclocal-api.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/build-afm .gemini/skills/build-afm && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "build-afm" agent skill from https://github.com/scouzi1966/maclocal-api/tree/main/.claude/skills/build-afm into .gemini/skills/build-afm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-afm", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install scouzi1966/maclocal-api build-afmInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add scouzi1966/maclocal-api --skill build-afm -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/scouzi1966/maclocal-api.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/build-afm .github/skills/build-afm && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "build-afm" agent skill from https://github.com/scouzi1966/maclocal-api/tree/main/.claude/skills/build-afm into .github/skills/build-afm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-afm", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scouzi1966/maclocal-api --skill build-afm -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install scouzi1966/maclocal-api build-afm --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scouzi1966/maclocal-api.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/build-afm .opencode/skills/build-afm && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "build-afm" agent skill from https://github.com/scouzi1966/maclocal-api/tree/main/.claude/skills/build-afm into .opencode/skills/build-afm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-afm", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
build-afmBuild AFM from scratch — submodules, patches, webui, and Swift build.
Build Afm is an agent skill from scouzi1966/maclocal-api. Build AFM from scratch — submodules, patches, webui, and Swift build. Use when user types /build-afm, asks to build afm, or needs a fresh build from a clean clone.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Mobile, covering iOS development. It works with Xcode, macOS, Homebrew and Git. The repository describes itself as: 'afm' command cli: macOS server and single prompt mode that exposes Apple's Foundation and MLX Models and other APIs running on your Mac through a single aggregated…. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 138ca5d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
brewswiftnpmgitnodebashcurlxcodebuildnvmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
raw.githubusercontent.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Build Afm loads about 1.8k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 757 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
ger — Git, Node.js depend on it | `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/inper/CommandLineTools`, switch to Xcode: `sudo xcode-select -s /Applications/Xcode.app/Contents/Developer`r installing Xcode, accept the license: `sudo xcodebuild -license accept`+ npm** (via nvm instead of Homebrew): `curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from scouzi1966/maclocal-api at commit 138ca5d, republished under its MIT licence (© scouzi1966). 757 words, ~1,824 tokens.
.claude/skills/build-afm/SKILL.md (or your agent's skills folder).Build the afm binary from scratch, suitable for a fresh clone or a full rebuild.
/build-afm — release build (default)/build-afm debug — debug build/build-afm release — explicit release buildBefore building, check that all required tools and environment are present. Run these checks and collect results:
# 1. Apple Silicon check (MLX requires arm64)
uname -m # must be "arm64"
# 2. macOS version (Package.swift requires macOS 26+)
sw_vers -productVersion # must be 26.0 or higher
# 3. Homebrew (must come before brew-installed tools)
brew --version
# 4. Xcode (full install — mlx-swift uses Metal framework SDK, not available in standalone CLI Tools)
xcode-select -p # must point to Xcode.app, NOT /Library/Developer/CommandLineTools
swift --version # needs Swift 5.9+ (swift-tools-version: 5.9)
# 5. Git (for submodule operations — installed via brew or Xcode)
git --version
# 6. Node.js + npm (for llama.cpp webui build — Svelte/Vite frontend)
node --version # Node 18+ recommended
npm --versionPresent results as a checklist to the user in dependency order (install top-to-bottom). For each item, show pass/fail, reason, and install command (even on pass, for copy-paste on other machines):
| # | Prerequisite | Check | Status | Reason | Install |
|---|---|---|---|---|---|
| 1 | Apple Silicon | uname -m = arm64 | pass/fail | MLX framework requires ARM64 GPU | N/A (hardware requirement) |
| 2 | macOS 26+ (Tahoe) | sw_vers >= 26.0 | pass/fail | Foundation Models backend + SDK APIs | System Settings > Software Update |
| 3 | Homebrew | brew --version | pass/fail | Package manager — Git, Node.js depend on it | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
| 4 | Xcode (full) | xcode-select -p points to Xcode.app | pass/fail | mlx-swift uses Metal SDK (not in standalone CLI Tools) | Install from App Store → search "Xcode" |
| 5 | Swift 5.9+ | swift --version | pass/fail | swift-tools-version: 5.9 in Package.swift | Included with Xcode |
| 6 | Git | git --version | pass/fail | Submodule init (mlx-swift-lm, llama.cpp) | brew install git |
| 7 | Node.js 18+ | node --version | pass/fail | llama.cpp webui build (Svelte/Vite) | brew install node |
| 8 | npm | npm --version | pass/fail | npm install + npm run build for webui | Included with Node.js |
Important Xcode notes:
xcode-select --install) are NOT sufficient — mlx-swift imports the Metal framework which requires the full Xcode SDKxcode-select -p returns /Library/Developer/CommandLineTools, switch to Xcode: sudo xcode-select -s /Applications/Xcode.app/Contents/Developersudo xcodebuild -license acceptIf anything is missing, present the failing items with install commands and ask the user to confirm when ready. Alternative Node.js install:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash && nvm install 22Do NOT proceed with the build until all prerequisites pass.
Parse the argument: if the user passes debug, use --debug. Otherwise default to release.
Run the full build script with NO skip flags:
./Scripts/build-from-scratch.sh # release (default)
./Scripts/build-from-scratch.sh --debug # debugAll direct SwiftPM builds must go through Scripts/swiftpm-reliable.sh rather
than invoking swift build or swift test directly. Xcode 27 can corrupt its
explicit-module scanner cache and report missing CAsyncHTTPClient, CSystem,
CNIO*, or _NumericsShims modules. On Xcode 27 Beta 3 the wrapper selects the
native driver immediately; on other versions it switches only after recognizing
that failure. It preserves checkouts, patches, and normal .build artifact
paths. If native incremental module state is also stale, it cleans products and
retries native once. Logs live in .build-reliable-logs/; persistent driver
identity lives in .build-reliable-state/ outside SwiftPM's cleanable tree. Set
AFM_SWIFTPM_DRIVER=swiftbuild only for default-driver diagnosis.
The wrapper fingerprints vendor/mlx-swift-lm before every invocation. When a
Swift or custom-Metal kernel patch changes that local package, it invalidates
compiled products so Xcode 27 Beta 3 cannot silently reuse a stale binary.
The manifest compiles this vendor directly when initialized; a submodule-free
consumer falls back to the pinned pre-patched URL fork.
Run Scripts/check-mlx-source-selection.sh after dependency changes.
For test, the wrapper permanently stages the canonical committed
Sources/AFMKitMLX/Resources/default.metallib as mlx.metallib beside every
XCTest executable before each build/run attempt. It also exports
MACAFM_MLX_METALLIB for AFMKit's own locator. Do not add one-off metallib
copies or paths to test commands; fix the wrapper if a new test layout ever
needs support.
Scripts/swiftpm-reliable.sh build -c release --product afm
Scripts/swiftpm-reliable.sh test -c releaseIMPORTANT: Never add --skip-submodules, --skip-patches, or --skip-webui. The point of this skill is a complete from-scratch build.
The script already handles:
git submodule update --init --recursiveScripts/apply-mlx-patches.sh (apply + verify)BuildInfo.swift (then restores it after build)__TEXT,__info_plist section is missing or doesn't contain NSSpeechRecognitionUsageDescription. Required by Sources/MacLocalAPI/Info.plist + Package.swift linker flags (-Xlinker -sectcreate -Xlinker __TEXT -Xlinker __info_plist -Xlinker …). Without this, macOS 26 SIGABRTs any Speech Recognition / microphone / camera call.After the build succeeds, report to the user:
afm binary (from the script output)<binary-path>/afm --versionDo NOT add example run commands, CLI options, or environment variables. Just report the binary path and version — the user knows how to run it.
If the build fails, show the error output and suggest checking:
xcode-select -p)Scripts/swiftpm-reliable.sh; logs are in .build-reliable-logs/© scouzi1966, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/build-afm of scouzi1966/maclocal-api.
Open the folder on GitHubat commit 138ca5d
Build Afm next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Build Afm this skillscouzi1966/maclocal-api | 346 | — | ~1.8k | Automated safety check: Notes | MIT | |
| Releasevaayne/mori | 303 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Build Run Debugrobinebers/openusage | 4.3k | — | ~1.8k | Automated safety check: Pass | MIT | |
| macOS Build Run Debugrobinebers/openusage | 4.3k | — | ~1.8k | Automated safety check: Pass | MIT | |
| macOS Spm App PackagingDimillian/Skills | 4k | 5 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Orca iOS Simulator Controlstablyai/orca | 89k | 1 repos | ~584 | Automated safety check: Pass | Apache-2.0 |
vaayne/mori
Release workflow for Mori macOS workspace terminal and MoriRemote iOS app.
robinebers/openusage
Build, run, and debug local macOS apps and desktop executables using shell-first Xcode and Swift workflows.
robinebers/openusage
Build, run, and debug macOS apps with shell-first Xcode and Swift workflows.
Dimillian/Skills
Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project.
stablyai/orca
iOS Simulator control from inside Orca, with the live device view in Orca's emulator pane. Use when driving a booted Apple Simulator on macOS: taps, gestures…
dotnet/skills
Resolves .NET runtime frames in Apple .ips crash logs to function names, source files and line numbers using dSYM symbols, atos and the Microsoft symbol server.
scouzi1966/maclocal-api
Maintain and extend AFM (maclocal-api), a Swift OpenAI-compatible local LLM server and CLI for Apple Foundation Models, MLX models, API gateway proxying, and Vision OCR.
scouzi1966/maclocal-api
Run and review the Promptfoo-based AFM agentic evaluation suite.
scouzi1966/maclocal-api
Test a pre-built afm binary at any path — runs pre-flight safety checks, then any combination of unit tests, assertions, smart analysis, promptfoo evals, batch validation, OpenAI compat, GPU…
scouzi1966/maclocal-api
A skill your agent uses when user wants to build a PyPI wheel from an existing compiled afm binary and publish to PyPI.
scouzi1966/maclocal-api
Run the maclocal-api (AFM/MLX) test suite — automated assertions and smart analysis.
scouzi1966/maclocal-api
A skill your agent uses when testing tool call reliability between OpenCode and afm — captures streaming XML tool call errors, classifies them as afm translation bugs vs model generation errors, and…
Categories
Build AFM from scratch — submodules, patches, webui, and Swift build. Build Afm is an agent skill from scouzi1966/maclocal-api. Build AFM from scratch — submodules, patches, webui, and Swift build.
Build Afm fits situations like: user types /build-afm; asks to build afm; needs a fresh build from a clean clone.
Run `npx skills add scouzi1966/maclocal-api --skill build-afm -a claude-code`. Or copy the skill folder (.claude/skills/build-afm in scouzi1966/maclocal-api) into .claude/skills/build-afm in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scouzi1966/maclocal-api --skill build-afm -a codex`. Or copy the skill folder (.claude/skills/build-afm in scouzi1966/maclocal-api) into .agents/skills/build-afm in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scouzi1966/maclocal-api --skill build-afm -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/build-afm, .gemini/skills/build-afm, .github/skills/build-afm and .opencode/skills/build-afm in your project.
Going by SKILL.md and its folder, Build Afm needs the command-line tools its instructions call (brew, swift, npm, git, node and bash). Our summary lists: Node.js.
SKILL.md names 1 domain. In commands or code: raw.githubusercontent.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pipes a well-known installer script into a shell; runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Build Afm is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Build Afm: Release (vaayne/mori, 303 stars), Build Run Debug (robinebers/openusage, 4.3k stars), macOS Build Run Debug (robinebers/openusage, 4.3k stars) and macOS Spm App Packaging (Dimillian/Skills, 4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
scouzi1966 (a GitHub user) maintains it in scouzi1966/maclocal-api, which has 346 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 10, 2026.
Source: scouzi1966/maclocal-api on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.