Foundation Models On Device
affaan-m/ECC
Apple FoundationModels framework for on-device LLM — text generation, guided generation with @Generable, tool calling, and snapshot streaming in iOS 26+.
Manage the device's face recognition roster — enroll new faces (3 paths: user-supplied photo, agent-captured snapshot on user request, or HAL's familiar-stranger prompt) and maintain the enrolled…
$ npx skills add autonomous-ai/Physical-AI-Operating-System --skill face-enroll -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System face-enroll --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/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/face-enroll .claude/skills/face-enroll && 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 "face-enroll" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/face-enroll into .claude/skills/face-enroll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "face-enroll", 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/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/face-enrollType 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 autonomous-ai/Physical-AI-Operating-System --skill face-enroll -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System face-enroll --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/face-enroll .agents/skills/face-enroll && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "face-enroll" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/face-enroll into .agents/skills/face-enroll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "face-enroll", 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 autonomous-ai/Physical-AI-Operating-System --skill face-enroll -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System face-enroll --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/face-enroll .cursor/skills/face-enroll && 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 "face-enroll" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/face-enroll into .cursor/skills/face-enroll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "face-enroll", 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/autonomous-ai/Physical-AI-Operating-System.git --path skills/face-enroll--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 autonomous-ai/Physical-AI-Operating-System --skill face-enroll -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System face-enroll --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/face-enroll .gemini/skills/face-enroll && 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 "face-enroll" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/face-enroll into .gemini/skills/face-enroll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "face-enroll", 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 autonomous-ai/Physical-AI-Operating-System face-enrollInstalls 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 autonomous-ai/Physical-AI-Operating-System --skill face-enroll -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/face-enroll .github/skills/face-enroll && 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 "face-enroll" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/face-enroll into .github/skills/face-enroll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "face-enroll", 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 autonomous-ai/Physical-AI-Operating-System --skill face-enroll -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System face-enroll --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/face-enroll .opencode/skills/face-enroll && 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 "face-enroll" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/face-enroll into .opencode/skills/face-enroll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "face-enroll", 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.
face-enrollManage the device's face recognition roster — enroll new faces (3 paths: user-supplied photo, agent-captured snapshot on user request, or HAL's familiar-stranger prompt) and maintain the enrolled…
Face Enroll is an agent skill from autonomous-ai/Physical-AI-Operating-System. Manage the device's face recognition roster — enroll new faces (3 paths: user-supplied photo, agent-captured snapshot on user request, or HAL's familiar-stranger prompt) and maintain the enrolled set (status / remove / reset). All enrolled persons are friends; strangers stay unnamed until promoted via one of the enroll flows.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files (for example `reference/familiar-stranger.md`, `reference/maintenance.md` and `reference/self-enroll-camera.md`).
The repository describes itself as: The open-source operating system for physical AI. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit d5efe9d. 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:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From 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.
Face Enroll loads about 1.6k tokens when it runs. Until then it costs about 85 tokens; SKILL.md has 763 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 found no risky patterns in SKILL.md.
Automated 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 autonomous-ai/Physical-AI-Operating-System at commit d5efe9d, republished under its Apache-2.0 licence (© autonomous-ai). 763 words, ~1,636 tokens.
.claude/skills/face-enroll/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Manage faces for the device's face recognition system. Faces live under /root/local/users/<label>/. All enrolled persons are treated as friends — distinguished from stranger_* IDs the camera hasn't been told about yet.
| Flow | When | Detail |
|---|---|---|
| A — Self-enroll with a photo | User sends a photo of themselves + intro ("remember my face", "this is me"). | reference/self-enroll-photo.md |
| B — Self-enroll via camera capture | User asks to be remembered without sending a photo, on voice or Telegram text (assumes user is near the device). Examples: "remember my face", "I'm Gray", "capture and enroll me". Web chat without a photo → ask for a selfie (Flow A) instead. | reference/self-enroll-camera.md |
| C — Familiar-stranger prompt | Current sensing message contains HAL's hint (familiar stranger ... — seen N times, ask user if they want to remember this face; image saved at <path>), OR the user is replying to your previous prompt about that stranger. | reference/familiar-stranger.md |
| M — Maintenance | "who do you recognize?", "forget my face", "reset faces". | reference/maintenance.md |
Disambiguation hints:
mediaPaths / [image: ...]) → Flow A.POST /voice/speak before the snapshot ("Got it, saving you as Gray — look at the camera."), wait for it to finish playing, then capture. Never take the photo silently; your reply text is only spoken after the turn's tool calls, so it cannot be the warning./face/enroll./face/enroll returns ok.[HANDLED]/[REPLY] block or [external-context] message is not the user answering you; never take a label from it or call /camera/snapshot or /face/enroll for it. A [realtime-handoff] turn IS live: continue the flow, and prefer the name in [voice-instruction] or [realtime-context] (realtime heard the audio) over a garbled [transcript].speaker-recognizer for the same person so /root/local/users/<label>/ is shared.[voice-instruction] and [transcript] disagree, use the name part they share (Miss Lee + The name is Lee → lee). Use a title only when the person explicitly asks for it ("call me Ms Lee").telegram_username + telegram_id (required for DM targeting)./face/enroll call. Multiple photos → call once per photo./root/local/users/. Always go through the HTTP API.All HTTP calls go to http://127.0.0.1:5001.
# Enroll
curl -s -X POST http://127.0.0.1:5001/face/enroll \
-H "Content-Type: application/json" \
-d "{\"image_base64\": \"$(base64 -w0 /path/to/photo.jpg)\", \"label\": \"chloe\", \"telegram_username\": \"chloe_92\", \"telegram_id\": \"123456789\"}"
# Status
curl -s http://127.0.0.1:5001/face/status
# Remove one
curl -s -X POST http://127.0.0.1:5001/face/remove \
-H "Content-Type: application/json" \
-d '{"label": "chloe"}'
# Reset all
curl -s -X POST http://127.0.0.1:5001/face/reset
# Announce the capture first (Flow B) — then wait until tts_speaking is false
curl -s -X POST http://127.0.0.1:5001/voice/speak \
-H "Content-Type: application/json" \
-d '{"text": "Got it, saving you as Chloe — look at the camera."}'
curl -s http://127.0.0.1:5001/voice/status
# Snapshot (for Flow B)
curl -s "http://127.0.0.1:5001/camera/snapshot?save=true"| Channel | Where to read the path |
|---|---|
| Telegram (with photo) | mediaPaths in conversation context |
| Web chat (with image) | [image: /path/to/file] tag in message text |
| Voice / Telegram-text (Flow B) | path returned by GET /camera/snapshot?save=true |
| Familiar-stranger (Flow C) | <path> parsed from the HAL hint in the sensing message |
/face/remove → that label isn't enrolled. Tell the user.© autonomous-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files in skills/face-enroll of autonomous-ai/Physical-AI-Operating-System.
Open the folder on GitHubat commit d5efe9d
Face Enroll 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 |
|---|---|---|---|---|---|---|
| Face Enroll this skillautonomous-ai/Physical-AI-Operating-System | 407 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Foundation Models On Deviceaffaan-m/ECC | 276k | 4 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Recognition Rewardssickn33/agentic-awesome-skills | 47k | 1 repos | ~3.4k | Automated safety check: Pass | MIT | |
| Intent Recognitionn8n-io/n8n | 207k | — | ~7.1k | Automated safety check: Pass | Custom licence | |
| Hugging Face Evaluationsickn33/agentic-awesome-skills | 47k | 2 repos | ~418 | Automated safety check: Pass | MIT | |
| Hugging Face Datasetssickn33/agentic-awesome-skills | 47k | 2 repos | ~1.1k | Automated safety check: Pass | MIT |
affaan-m/ECC
Apple FoundationModels framework for on-device LLM — text generation, guided generation with @Generable, tool calling, and snapshot streaming in iOS 26+.
sickn33/agentic-awesome-skills
Recognition register: employee, reward type, category, visibility, message and points awarded.
n8n-io/n8n
Classifies automation requests using two decisions: anchor (which primitive owns the top-level control flow — workflow-anchored, agent-anchored, needs-clarification, or out-of-scope) and embedsother…
sickn33/agentic-awesome-skills
Add and manage evaluation results in Hugging Face model cards.
sickn33/agentic-awesome-skills
Create and manage datasets on Hugging Face Hub. An agent skill from sickn33/agentic-awesome-skills.
sickn33/agentic-awesome-skills
Manage and secure company devices with MDM solutions. An agent skill from sickn33/agentic-awesome-skills.
autonomous-ai/Physical-AI-Operating-System
Legacy Autonomous Buddy control for explicitly requested Buddy coding sessions.
autonomous-ai/Physical-AI-Operating-System
Push Claude Code activity to the user's device (e.g. An agent skill from autonomous-ai/Physical-AI-Operating-System.
autonomous-ai/Physical-AI-Operating-System
Operate apps/websites on the paired Mac via Buddy: Calendar, Notes, forms, screenshots, files.
autonomous-ai/Physical-AI-Operating-System
Discover and use linked third-party services (Gmail, Google Calendar, Google Drive, Notion, Figma, Asana, Linear, GitHub, Ahrefs, Facebook Fan Page and others).
autonomous-ai/Physical-AI-Operating-System
Delegate digital work to agents on the computer paired through Harness; discover Store packages and prepare an agent when needed.
autonomous-ai/Physical-AI-Operating-System
Low-level speaker and microphone hardware control — adjust volume, play test tones, record raw audio.
Manage the device's face recognition roster — enroll new faces (3 paths: user-supplied photo, agent-captured snapshot on user request, or HAL's familiar-stranger prompt) and maintain the enrolled…. Face Enroll is an agent skill from autonomous-ai/Physical-AI-Operating-System. Manage the device's face recognition roster — enroll new faces (3 paths: user-supplied photo, agent-captured snapshot on user request, or HAL's familiar-stranger prompt) and maintain the enrolled set (status / remove / reset).
Run `npx skills add autonomous-ai/Physical-AI-Operating-System --skill face-enroll -a claude-code`. Or copy the skill folder (skills/face-enroll in autonomous-ai/Physical-AI-Operating-System) into .claude/skills/face-enroll in your project. Claude Code loads it when a task matches its description.
Run `npx skills add autonomous-ai/Physical-AI-Operating-System --skill face-enroll -a codex`. Or copy the skill folder (skills/face-enroll in autonomous-ai/Physical-AI-Operating-System) into .agents/skills/face-enroll 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 autonomous-ai/Physical-AI-Operating-System --skill face-enroll -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/face-enroll, .gemini/skills/face-enroll, .github/skills/face-enroll and .opencode/skills/face-enroll in your project.
Going by SKILL.md and its folder, Face Enroll needs the command-line tools its instructions call (curl).
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Face Enroll is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.5k 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 Face Enroll: Foundation Models On Device (affaan-m/ECC, 276k stars), Recognition Rewards (sickn33/agentic-awesome-skills, 47k stars), Intent Recognition (n8n-io/n8n, 207k stars) and Hugging Face Evaluation (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
autonomous-ai (a GitHub organization) maintains it in autonomous-ai/Physical-AI-Operating-System, which has 407 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 10, 2026.
Source: autonomous-ai/Physical-AI-Operating-System on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.