Humanizer
Azure-Samples/interview-coach-agent-framework
Remove signs of AI-generated writing from text. An agent skill from Azure-Samples/interview-coach-agent-framework.
Push Claude Code activity to the user's device (e.g. An agent skill from autonomous-ai/Physical-AI-Operating-System.
$ npx skills add autonomous-ai/Physical-AI-Operating-System --skill claude-code-buddy -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System claude-code-buddy --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/integrations/companions/claude-desktop-buddy/claude-code-buddy .claude/skills/claude-code-buddy && 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 "claude-code-buddy" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/integrations/companions/claude-desktop-buddy/claude-code-buddy into .claude/skills/claude-code-buddy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-code-buddy", 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/integrations/companions/claude-desktop-buddy/claude-code-buddyType 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 claude-code-buddy -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System claude-code-buddy --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/integrations/companions/claude-desktop-buddy/claude-code-buddy .agents/skills/claude-code-buddy && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "claude-code-buddy" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/integrations/companions/claude-desktop-buddy/claude-code-buddy into .agents/skills/claude-code-buddy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-code-buddy", 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 claude-code-buddy -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System claude-code-buddy --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/integrations/companions/claude-desktop-buddy/claude-code-buddy .cursor/skills/claude-code-buddy && 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 "claude-code-buddy" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/integrations/companions/claude-desktop-buddy/claude-code-buddy into .cursor/skills/claude-code-buddy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-code-buddy", 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 integrations/companions/claude-desktop-buddy/claude-code-buddy--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 claude-code-buddy -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System claude-code-buddy --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/integrations/companions/claude-desktop-buddy/claude-code-buddy .gemini/skills/claude-code-buddy && 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 "claude-code-buddy" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/integrations/companions/claude-desktop-buddy/claude-code-buddy into .gemini/skills/claude-code-buddy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-code-buddy", 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 claude-code-buddyInstalls 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 claude-code-buddy -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/integrations/companions/claude-desktop-buddy/claude-code-buddy .github/skills/claude-code-buddy && 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 "claude-code-buddy" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/integrations/companions/claude-desktop-buddy/claude-code-buddy into .github/skills/claude-code-buddy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-code-buddy", 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 claude-code-buddy -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 claude-code-buddy --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/integrations/companions/claude-desktop-buddy/claude-code-buddy .opencode/skills/claude-code-buddy && 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 "claude-code-buddy" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/integrations/companions/claude-desktop-buddy/claude-code-buddy into .opencode/skills/claude-code-buddy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-code-buddy", 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.
claude-code-buddyPush Claude Code activity to the user's device (e.g. An agent skill from autonomous-ai/Physical-AI-Operating-System.
Claude Code Buddy is an agent skill from autonomous-ai/Physical-AI-Operating-System. Push Claude Code activity to the user's device (e.g. a lamp) over the LAN. The plugin POSTs semantic events to a companion daemon on the device (HTTP, port 5002); the device turns them into its own feedback (LED / round display / voice). Supports connecting a device, pushing usage, sending notifications, and tuning how/when the user is alerted. Triggers: "connect my device", "push my usage to my device", "notify my device", "send to my device", "mute my device", "warn me earlier", "set warning threshold to N"…
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including scripts (for example `.claude-plugin/marketplace.json`, `GUIDE.md` and `README.md`).
It sits in Writing & Content. The repository describes itself as: The open-source operating system for physical AI. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 92b6219. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(*)From allowed-tools in the SKILL.md frontmatter.
Ships 5 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3claudeFrom 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:
api.anthropic.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.
Claude Code Buddy loads about 2.4k tokens when it runs. Until then it costs about 142 tokens; SKILL.md has 977 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.
allowed-tools: Bash(*)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); the scripts in this folder are not scanned.
The full file from autonomous-ai/Physical-AI-Operating-System at commit 92b6219, republished under its Apache-2.0 licence (© autonomous-ai). 977 words, ~2,354 tokens.
.claude/skills/claude-code-buddy/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.Connect to a device on the local network and push Claude Code events to it. After connecting, the Stop and Notification hooks fire automatically — this skill covers the on-demand actions (connect, notify, usage) and the plain-language config tuning.
The plugin only speaks the HTTP contract below. The device decides the actual LED / display / voice feedback; the plugin never draws anything itself.
Path: ~/.config/claude-code-buddy.json (file permission 0600).
{
"devices": [
{ "label": "My Device", "host": "lamp-a1b2.local", "last_known_ip": "192.168.1.50", "password": "the-web-admin-password" }
],
"default_host": "lamp-a1b2.local",
"usage_threshold": 80,
"sounds_enabled": true,
"task_done_enabled": true,
"notify_enabled": true
}host is the device's mDNS hostname (like lamp-a1b2.local); last_known_ip
is the cached address used to avoid re-resolving every time.password is the device's admin password — the same one used to log into
the device's web UI. The daemon gates its LAN endpoints (notify / usage /
approval) with it, sent as an Authorization: Bearer header; without it those
calls return HTTP 401. Discovery (/health) stays open, so the device is
still findable before a password is set. Stored only in this 0600 file.scripts/buddy_client.py (config load/save, discovery,
send(), usage fetch). Prefer them over re-implementing.Find the device on the LAN and save it to config.
When to use: "connect my device", "set up my device", or when a POST fails with a connection error/timeout (the cached IP is stale).
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/discover.pyHow it works (automatic): cache check (cached IP → /health) → mDNS browse
for _autonomous._tcp → /24 subnet /health sweep. Returns the found
device(s) as JSON, e.g.:
[{ "host": "lamp-a1b2.local", "ip": "192.168.1.50" }]On success: ask the user for the device's admin password (the same one
they use to log into the device's web UI) — the daemon requires it to accept
activity/approval pushes. Then write the device into devices[] (append new,
update existing by host) including the password field, set default_host if
it's the first device, and write the file with permission 0600.
If a later push returns HTTP 401, the stored password is missing or wrong
(or was changed in the web UI) — ask the user for the current admin password and
update the device entry.
On failure: exits non-zero with {"error": "not_found"} on stderr. Suggest:
device powered on? Same WiFi as the computer?
POST a notification to the device. Most common on-demand action.
When to use: "notify my device", "send to my device", "ping my device when done". Also reasonable proactively at the end of a long task.
Use default_host (and its last_known_ip) from config. If no config or no
devices → tell the user to connect a device first (section 1).
{
"title": "Build passed",
"subtitle": "3m 12s, 0 failures",
"level": "done",
"sound": true
}title (string, required) — short headline, plain text.subtitle (string) — one line of detail.level — "done" | "attention" | "info". Use attention when the user
needs to act, done for completions, info otherwise.sound (boolean) — whether the event carries a sound cue. The device picks the
actual cue; do not send sound indices. Respect sounds_enabled from config.import json, urllib.request
payload = json.dumps({
"title": "Build passed",
"subtitle": "3m 12s",
"level": "done",
"sound": True,
}).encode()
req = urllib.request.Request(
"http://<ip>:5002/claude-code/notify",
data=payload,
headers={"Content-Type": "application/json"},
method="POST",
)
with urllib.request.urlopen(req, timeout=3) as resp:
print(resp.status) # expect 200, body {"ok": true}Replace <ip> with the device's last_known_ip (or resolve host).
Fetch the user's OAuth usage and POST it to /claude-code/usage.
When to use: "push my usage to my device", "/claude-code-buddy:usage".
Read the OAuth token (~/.claude/.credentials.json, or the macOS keychain item
Claude Code-credentials; the token starts with sk-ant-oat), then:
import json, urllib.request
req = urllib.request.Request(
"https://api.anthropic.com/api/oauth/usage",
headers={
"Authorization": f"Bearer {token}",
"anthropic-beta": "oauth-2025-04-20",
},
)
with urllib.request.urlopen(req, timeout=15) as resp:
usage = json.loads(resp.read())
from buddy_client import time_left
five_hour = int(usage["five_hour"]["utilization"])
seven_day = int(usage["seven_day"]["utilization"])
reset_5h = time_left(usage["five_hour"]["resets_at"]) # -> "1h 56m"
reset_7d = time_left(usage["seven_day"]["resets_at"]) # -> "1d 11h"scripts/buddy_client.py already wraps token lookup + fetch — use it.
{
"five_hour": 41,
"seven_day": 48,
"reset_5h": "1h 56m",
"reset_7d": "1d 11h",
"sound": true
}reset_5h / reset_7d are display-ready strings (humanize the resets_at
ISO timestamp with buddy_client.time_left()), not raw ISO — the device shows
them as-is.
POST to http://<ip>:5002/claude-code/usage exactly like section 2.3 (expect 200,
{"ok": true}). The usage API rate-limits hard — do not poll faster than once
per minute.
These run via Claude Code hooks; no skill action needed.
scripts/on-stop-done.py) — fires after each response. POSTs
/claude-code/notify with level: "done". If 5-hour or 7-day usage is >=
usage_threshold, it also POSTs /claude-code/usage. Skipped when
task_done_enabled is false.scripts/on-notify.py) — fires when Claude needs
approval or input has gone idle. POSTs /claude-code/notify with
level: "attention".
Skipped when notify_enabled is false.Both honor sounds_enabled for the sound field and fail silently if no device
is connected.
Let the user retune behavior in plain language — read config, change only the
relevant key(s), preserve everything else, write back with permission 0600,
then confirm in plain language. If the config is missing → tell them to connect a
device first.
When to use: "warn me earlier", "set warning threshold to 60", "only warn me near the limit", "I want pushes at 90%".
usage_threshold.All default true and live at the top level of the config.
| Key | Controls |
|---|---|
sounds_enabled | Whether events carry a sound cue. false = silent feedback. |
task_done_enabled | The Task Done push after each response. |
notify_enabled | The "Claude needs you" ping (approval / idle). |
Mapping requests:
sounds_enabled = falsesounds_enabled = truetask_done_enabled = falsenotify_enabled = falsetask_done_enabled = false and notify_enabled = falsetrueThe hooks read these flags on every run, so changes take effect immediately — no restart.
| Status | Meaning / Action |
|---|---|
| 200 | Success, body {"ok": true}. Update last_known_ip in config if it changed. |
| 400 | Bad JSON / malformed payload. Fix the payload and retry. |
| Connection error / timeout | Cached IP is stale or device offline. Re-run discovery (section 1) and retry once. |
sound a boolean; the device decides the actual cue.0600./claude-code/notify and /claude-code/usage receivers exist and
log the payload, but may not yet render device feedback on every device (the HAL
bridge is the remaining work); /health and /status exist for
liveness/discovery.© 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 12 other files (scripts) in integrations/companions/claude-desktop-buddy/claude-code-buddy of autonomous-ai/Physical-AI-Operating-System.
Open the folder on GitHubat commit 92b6219
Claude Code Buddy 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 |
|---|---|---|---|---|---|---|
| Claude Code Buddy this skillautonomous-ai/Physical-AI-Operating-System | 381 | — | ~2.4k | Automated safety check: Notes | Apache-2.0 | |
| HumanizerAzure-Samples/interview-coach-agent-framework | 172 | 37 repos | ~5.8k | Automated safety check: Pass | MIT | |
| Avoid AI Writingconorbronsdon/avoid-ai-writing | 4.9k | 3 repos | ~8.1k | Automated safety check: Pass | MIT | |
| JavaScript Concept Fact Checkerleonardomso/33-js-concepts | 67k | 1 repos | ~5k | Automated safety check: Pass | MIT | |
| User-Facing Text Cleanupguillaumemeyer/watermarks-remover | 23k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Install Anti Sloptrycompai/crm | 11k | 1 repos | ~881 | Automated safety check: Pass | MIT |
Azure-Samples/interview-coach-agent-framework
Remove signs of AI-generated writing from text. An agent skill from Azure-Samples/interview-coach-agent-framework.
conorbronsdon/avoid-ai-writing
Audit and rewrite content to remove AI writing patterns ("AI-isms").
leonardomso/33-js-concepts
Verifies the technical accuracy of JavaScript concept pages by checking code examples, MDN and ECMAScript claims and external links through a five-phase method.
guillaumemeyer/watermarks-remover
Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact.
trycompai/crm
Install and configure the anti-slop Oxlint plugin in a local TypeScript or JavaScript repository.
freekmurze/dotfiles
When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms.
autonomous-ai/Physical-AI-Operating-System
Legacy Autonomous Buddy control for explicitly requested Buddy coding sessions.
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
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.
autonomous-ai/Physical-AI-Operating-System
Camera control — snapshot, stream, and privacy toggle. An agent skill from autonomous-ai/Physical-AI-Operating-System.
autonomous-ai/Physical-AI-Operating-System
A skill your agent uses when the user asks to change eye expression directly, show info text on the display (time, weather, timer), or manually control the round LCD — NOT needed for normal…
Categories
Push Claude Code activity to the user's device (e.g. An agent skill from autonomous-ai/Physical-AI-Operating-System. Claude Code Buddy is an agent skill from autonomous-ai/Physical-AI-Operating-System.g.
Claude Code Buddy fits situations like: writing & Content work in your project.
Run `npx skills add autonomous-ai/Physical-AI-Operating-System --skill claude-code-buddy -a claude-code`. Or copy the skill folder (integrations/companions/claude-desktop-buddy/claude-code-buddy in autonomous-ai/Physical-AI-Operating-System) into .claude/skills/claude-code-buddy in your project. Claude Code loads it when a task matches its description.
Run `npx skills add autonomous-ai/Physical-AI-Operating-System --skill claude-code-buddy -a codex`. Or copy the skill folder (integrations/companions/claude-desktop-buddy/claude-code-buddy in autonomous-ai/Physical-AI-Operating-System) into .agents/skills/claude-code-buddy 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 claude-code-buddy -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/claude-code-buddy, .gemini/skills/claude-code-buddy, .github/skills/claude-code-buddy and .opencode/skills/claude-code-buddy in your project.
Going by SKILL.md and its folder, Claude Code Buddy needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and claude). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash(*).
SKILL.md names 1 domain. In commands or code: api.anthropic.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 (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Claude Code Buddy 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 2.4k tokens (SKILL.md is roughly 9.4k 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 Claude Code Buddy: Humanizer (Azure-Samples/interview-coach-agent-framework, 172 stars), Avoid AI Writing (conorbronsdon/avoid-ai-writing, 4.9k stars), JavaScript Concept Fact Checker (leonardomso/33-js-concepts, 67k stars) and User-Facing Text Cleanup (guillaumemeyer/watermarks-remover, 23k 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 381 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 7, 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.