lg-epitech

Yapd — Development skill for Claude Code

Development community

I'm tired of having to read my agents' output.

How to install Yapd

This entry records only its repository, not the path inside it, so there is no exact command to give. Open lg-epitech/yapd and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Yapd does

I'm tired of having to read my agents' output. So I made one talk to me instead!

Alternatives in Development

  • Codexbar — Show usage stats for OpenAI Codex and Claude Code, without having to login 8.8k ★
  • Connect — Fancy stream processing made operationally mundane 8608 114 1 8.6k ★
  • X Mentor Skill — X导师.skill — 女娲的第一个「非人类」作品 1.2k ★

README

yapd

I'm tired of reading my agent outputs. So I have another agent yap instead!

When a Claude Code or Codex session finishes, yapd sums up the reply in a sentence or two and says it. If several finish together you hear them one at a time, and whatever needs you goes first. Talk over it to [cut it short, ask about it, or tell the agent what to do next](#interrupting).

Needs macOS, [Bun](https://bun.sh), Xcode's command line tools (`xcode-select --install`) and any of the [available providers](#providers). The agents can also run [on other machines](#agents-on-another-machine), Linux included.

The voice is [Kokoro](https://huggingface.co/hexgrad/Kokoro-82M), which runs locally and downloads on first start.

With [ffmpeg](https://ffmpeg.org) installed it sounds a bit like Jarvis.

Setup

bun install
bun src/main.ts install

This runs yapd in the background with launchd, starts it at login and restarts it if it stops. Logs go to `~/Library/Logs/yapd.log`. It keeps the `PATH` of the shell you install from, so run it again after changing `.env` or moving a CLI. `bun src/main.ts uninstall` removes it. To run it in the foreground instead, uninstall it and use `bun start`.

Then add the hook to `~/.claude/settings.json`:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bun /path/to/yapd/src/main.ts hook claude --wait",
            "async": true,
            "asyncRewake": true
          }
        ]
      }
    ],
    "UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "bun /path/to/yapd/src/main.ts hook claude" }] }]
  }
}

The Stop hook runs in the background and waits while yapd reads the update, so it can hand the session [your reply](#where-follow-ups-go).

For Codex, put both hooks in `~/.codex/hooks.json` as plain commands with `hook codex`, without `--wait` or the two async settings. You will be prompted to accept the hooks on your next session.

On