agentleFS
autonomous-aiautonomous-ai/lampOS/skills/claude-buddy/SKILL.md

claude-buddy

Skill535 starsChanged 7 months agoApache-2.0View on GitHub

Coordinate with the Claude Buddy companion (Claude Desktop + Claude Code on the user's Mac) — voice-approve tool permission prompts and stay aware of Claude activity.

  • Sends data out

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 7 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the approval details from the event message

    line 19
  2. Distinctive:

    Ask the user naturally: mention the tool name and what it affects

    line 20
  3. Distinctive:

    Wait for the user's verbal response

    line 21
  4. Distinctive:

    Read the approval details from the event message (tool name + what it affects)

    line 44
  5. Distinctive:

    Ask the user naturally: mention the tool and what it will do

    line 45
  6. Distinctive:

    If you don't answer in time the Mac falls back to its own on-screen dialog — no harm done, but answering promptly is what makes the voice …

    line 62
  7. Very specific:

    When state is attention: do NOT start ambient behaviors or proactive conversations — the user is being prompted for approval

    line 86
  8. Very specific:

    When state is busy: the user is actively using Claude — reduce proactive interruptions (no wellbeing reminders, no music suggestions)

    line 87
  9. Very specific:

    When state is idle or sleep: operate normally

    line 88
  10. Distinctive:

    NEVER mention "buddy-plugin", "BLE", "Bluetooth", "HTTP", or technical internals to the user — just say "Claude Desktop" or "Claude Code" …

    line 89

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Claude Buddy

The user runs Claude on their Mac (Claude Desktop and/or Claude Code). A companion daemon on this device bridges them: it surfaces Claude's state and asks you to approve tool permission prompts out loud, so the user can say "yes" instead of clicking. The daemon listens on 127.0.0.1:5002.

When you receive a [sensing:buddy_approval] event

Claude Desktop is waiting for the user to approve or deny a tool call.

Workflow:

  1. Express emotion: curious (intensity 0.8)
  2. Read the approval details from the event message
  3. Ask the user naturally: mention the tool name and what it affects
  4. Wait for the user's verbal response

If user says approve/yes/ok/go ahead:

curl -s -X POST http://127.0.0.1:5002/claude-desktop/approve \
  -H "Content-Type: application/json" \
  -d '{"id": "<prompt_id from event>"}'

If user says deny/no/skip/cancel:

curl -s -X POST http://127.0.0.1:5002/claude-desktop/deny \
  -H "Content-Type: application/json" \
  -d '{"id": "<prompt_id from event>"}'

When you receive a [sensing:claude_code_approval] event

Claude Code (the CLI on the user's Mac) is waiting for the user to approve or deny a tool call. The Mac is blocked on your answer, so respond promptly.

Workflow:

  1. Express emotion: curious (intensity 0.8)
  2. Read the approval details from the event message (tool name + what it affects)
  3. Ask the user naturally: mention the tool and what it will do
  4. Wait for the user's verbal response

If user says approve/yes/ok/go ahead:

curl -s -X POST http://127.0.0.1:5002/claude-code/approve \
  -H "Content-Type: application/json" \
  -d '{"id": "<prompt_id from event>"}'

If user says deny/no/skip/cancel:

curl -s -X POST http://127.0.0.1:5002/claude-code/deny \
  -H "Content-Type: application/json" \
  -d '{"id": "<prompt_id from event>"}'

If you don't answer in time the Mac falls back to its own on-screen dialog — no harm done, but answering promptly is what makes the voice flow feel instant. Say "Claude Code" naturally; never mention prompt ids, HTTP, or these internals.

Activity awareness

You can check what Claude is doing:

curl -s http://127.0.0.1:5002/status

Response:

{
  "state": "busy",
  "connected": true,
  "sessions_running": 2,
  "tokens_today": 8200,
  "pending_prompt": null
}

Rules

  • When state is attention: do NOT start ambient behaviors or proactive conversations — the user is being prompted for approval
  • When state is busy: the user is actively using Claude — reduce proactive interruptions (no wellbeing reminders, no music suggestions)
  • When state is idle or sleep: operate normally
  • NEVER mention "buddy-plugin", "BLE", "Bluetooth", "HTTP", or technical internals to the user — just say "Claude Desktop" or "Claude Code" naturally

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.