codex/skills/fm/SKILL.md
Invokes Apple's macOS 27 fm command-line tool from a local Mac to use the on-device system model or Private Cloud Compute, including instructions, image prompts, schema-constrained JSON, and noninteractive automation. Use when the user asks to run Apple Foundation Models through fm, compare system versus pcc, generate structured output, or automate fm without Swift or an app.
npx skillsauth add tkersey/dotfiles fmInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
fmUse Apple's installed fm command-line tool directly. Do not create an Xcode project, Swift package, Mac app, daemon, MCP server, or network service for this workflow.
Run commands only in a shell that is local to the user's Mac.
Before the first invocation in a thread, run:
scripts/fmctl.sh check
If the check reports a non-macOS environment or a missing /usr/bin/fm, stop and state the exact prerequisite. Never substitute another model while claiming its output came from fm.
Use scripts/fmctl.sh respond for agent-driven, noninteractive requests. Do not launch fm chat from an unattended shell.
The wrapper creates a sized pseudo-terminal for compatibility with Private Cloud Compute, while passing user content as argument values rather than interpolating it into shell code.
system by default. It is the on-device model and is the preferred choice for local or sensitive content.pcc only when the user explicitly asks for Private Cloud Compute, PCC, Apple's cloud model, or otherwise clearly requests remote model processing.pcc unless the user explicitly directs that exact disclosure.Pass short prompts with --prompt:
scripts/fmctl.sh respond \
--model system \
--prompt 'Summarize the following text in three sentences.'
For long, multiline, or untrusted prompt content, write it to a temporary file and use --prompt-file:
prompt_file="$(mktemp)"
trap 'rm -f "$prompt_file"' EXIT
cat >"$prompt_file" <<'PROMPT'
<complete prompt here>
PROMPT
scripts/fmctl.sh respond --model system --prompt-file "$prompt_file"
Never concatenate user text into a shell command string and never use eval.
Add session-style instructions with --instructions or --instructions-file:
scripts/fmctl.sh respond \
--model pcc \
--instructions 'Return a direct, technically precise answer.' \
--prompt 'Explain this design tradeoff.'
Image paths may be repeated:
scripts/fmctl.sh respond \
--model pcc \
--image '/absolute/path/screenshot.png' \
--prompt 'Identify the application shown and explain the evidence.'
For structured output, create or provide a schema and pass it with --schema:
schema_file="$(mktemp)"
trap 'rm -f "$schema_file"' EXIT
scripts/fmctl.sh schema object \
--name Result \
--string summary \
--string risks --array >"$schema_file"
scripts/fmctl.sh respond \
--model system \
--schema "$schema_file" \
--prompt 'Analyze the proposed change.'
Validate model-generated JSON before using it to rename, move, overwrite, or delete files. Treat paths and commands returned by the model as untrusted data.
--greedy requests greedy sampling.--transcript FILE passes an existing fm transcript to --load-transcript. Do not invent the transcript format.scripts/fmctl.sh raw ... exposes noninteractive fm subcommands and future options. Use it only with argument arrays and quoted values.scripts/fmctl.sh raw respond --help.Read references/implementation.md when diagnosing CLI compatibility, PTY behavior, or option changes.
fm output with a brief label identifying system or pcc.fm CLI itself performed tool calling. Keep any external actions in the parent agent and validate model output before acting.development
Compile historical Codex sessions into governed counterfactual evidence, evaluate an existing owner-applied candidate through blinded paired HCTP trials, and fold observable evidence into RUN, OBSERVE, or STOP. Use for `$hylo`, CRF extraction, counterfactual replay, source-governed direct or historical trials, sealed evidence, paired baseline/candidate evaluation, causal frontiers, or evidence-governed improvement.
testing
Ensure a `ledger` command is available on PATH; materialize, validate, record, replay, and project requested Actuating artifacts without taking semantic or execution authority; coordinate the shared Learnings/Synesthesia/Negative Ledger lifecycle checkpoint and repo-local source-memory reconciliation; address Universalist plans and receipts; and perform pure artifact validation.
testing
Classify and quotient review findings, failing tests, incidents, bug reports, migration failures, and other witnessed falsifiers against accepted intent and the current Construction. Author counterexample-set/v1 without selecting repairs, counting review credit, or granting mutation.
development
Render a concise human proof from Actuating's current complete closure receipt. Use after implementation or review closeout to bind the Goal, Construction, subject, Evidence Ledger head, Counterexample disposition, proof, retirements, applicable review convergence, publication, residual risk, and human review focus without deciding closure or publishing.