> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kugelaudio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent skill

> Install the KugelAudio skill so your coding agent gets the integration rules without you re-explaining them.

The Python and JavaScript SDKs ship an **agent skill**: a `SKILL.md` that
teaches coding agents (Claude Code, Cursor, Codex) how to build a correct,
low-latency KugelAudio integration: when to flush a streaming session, which
latency levers actually matter, and how to write text that sounds right.

Agents load skills from a skills directory such as `.claude/skills/`; they do
not look inside installed packages. So installing the SDK is not enough: one
command copies the skill where the agent will find it.

## Install

<CodeGroup>
  ```bash npm theme={null}
  npm install kugelaudio
  npx kugelaudio-skills install
  ```

  ```bash uv theme={null}
  uv add kugelaudio
  uv run kugelaudio-skills install
  ```

  ```bash pip theme={null}
  pip install kugelaudio
  kugelaudio-skills install
  ```

  ```bash Java / other theme={null}
  # Maven has no install hook, so pull the skill from the npm package
  npx -p kugelaudio kugelaudio-skills install
  ```
</CodeGroup>

This writes `./.claude/skills/kugelaudio-tts/`. Claude Code picks up a skill
added to a skills directory it already watches without a restart. If the install
created that directory in the first place and the skill doesn't show up, restart
once so it starts watching it.

| Flag | Effect |
| - | - |
| `--global` | Install into `~/.claude/skills/` instead of the current directory |
| `--dest <dir>` | Install into another directory (for agents that read a different path) |
| `--force` | Overwrite an existing copy; without it, your edits are preserved |

Run `npx kugelaudio-skills list` (npm), `uv run kugelaudio-skills list` (uv), or
`kugelaudio-skills list` (pip) to see what a package version bundles.

## What the skill covers

* The four mistakes behind most bad integrations: per-sentence flushing, a new
  session per sentence, no pre-connect, unset `language`.
* The [latency](/latency) levers in priority order, and the
  [chunk-size ordering](/streaming/chunking-and-latency).
* Writing text for speech: no markdown or emoji, `!` and ALL-CAPS as prosody
  cues, [`<break>`](/prompting/breaks) snapping to the trained pause lengths,
  [`<spell>`](/prompting/spell), and a drop-in LLM system-prompt block.
* Which API surface fits which situation.
* Choosing between the hosted API and an
  [on-premise deployment](/guides/self-hosted): a Helm chart your team installs
  and operates with KugelAudio support, which needs outbound HTTPS to the
  hosted API.

The skill is mostly *behavioral* guidance. It names the current model ID and
the main SDK methods, so re-install it after upgrading the SDK; for parameter
details it links to these docs.

## Commit it or not

Committing `.claude/skills/kugelaudio-tts/` pins the guidance for everyone on
the team and for cloud agent sessions, which do not read your machine's
`~/.claude/skills/`. Re-run the install command after upgrading the SDK to pick
up a newer version of the skill.

## Next steps

<CardGroup cols={2}>
  <Card title="Latency" icon="gauge-high" href="/latency">
    The levers the skill teaches, with measurement guidance
  </Card>

  <Card title="Voice Agent Prompting" icon="wand-magic-sparkles" href="/guides/voice-prompting">
    Prompt patterns for LLM-driven voice agents
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.