{
  "markdown": "# agent-speech-antigravity\n\n[![Version](https://img.shields.io/github/v/release/welico/agent-speech-antigravity?label=version)](https://github.com/welico/agent-speech-antigravity/releases)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org/)\n[![Platform](https://img.shields.io/badge/platform-macOS-lightgrey.svg)](#prerequisites)\n[![Antigravity CLI](https://img.shields.io/badge/Antigravity%20CLI-Extension-4285F4.svg)](https://antigravity.google)\n[![MCP](https://img.shields.io/badge/MCP-Server-orange.svg)](https://modelcontextprotocol.io/)\n\n> Text-to-speech extension for Antigravity CLI using macOS native `say` command.\n\n---\n\n## Installation\n\n```bash\nagy plugin install https://github.com/welico/agent-speech-antigravity\n```\n\nThat's it. The extension is self-contained — no `npm install` or build step needed.\n\n### Verify\n\nIn Antigravity CLI, ask:\n\n```\nSay \"Hello World\"\n```\n\nAntigravity will use the `speak_text` tool to read the response aloud.\n\n### Slash Command\n\nAfter install/update, you can run Agent Speech with a slash command:\n\n```text\n/agent-speech status\n/agent-speech speak 안녕하세요, 음성 테스트입니다.\n/agent-speech enable\n/agent-speech set-language ko\n/agent-speech set-voice Samantha\n```\n\nThese slash commands call MCP tools directly and do not require shell-execution approval prompts.\n\nAntigravity assistant responses are also spoken automatically after each completed turn.\nAutomatic playback uses a concise summary. Use `/agent-speech speak <text>` when you want full text read verbatim.\n\n### Uninstall\n\n```bash\nagy plugin uninstall agent-speech\n```\n\n---\n\n## Features\n\n- **macOS Native TTS** — Uses built-in `say` command, zero external dependencies\n- **Non-Blocking** — Async speech, never blocks CLI interaction\n- **Configurable** — Voice, rate (50–400 WPM), volume (0–100)\n- **Auto Translation** — Translates responses to configured language before speech (Google free translate endpoint)\n- **Privacy-Conscious** — Optional sensitive content filtering\n- **Self-Contained** — All dependencies bundled, installs from git in one command\n- **Auto Read Responses** — AfterAgent hook reads completed Antigravity responses aloud\n- **Summary Playback** — Automatic response speech reads a concise summary instead of full raw output\n\n---\n\n## Prerequisites\n\n| Requirement | Version |\n|---|---|\n| macOS | 10.15+ (Catalina or later) |\n| Node.js | 18+ |\n| [Antigravity CLI](https://antigravity.google) | Latest |\n\n---\n\n## Configuration\n\nConfig file: `~/.agent-speech/config.json`\n\n```json\n{\n  \"enabled\": true,\n  \"language\": \"en\",\n  \"voice\": \"Samantha\",\n  \"rate\": 200,\n  \"volume\": 50,\n  \"minLength\": 10,\n  \"filterSensitive\": false\n}\n```\n\n### Environment Variables\n\n| Variable | Purpose | Default |\n|---|---|---|\n| `DEBUG` | Enable debug logging to stderr | `false` |\n| `LOG_FILE` | Path to debug log file | `/tmp/agent-speech-debug.log` |\n| `LOG_LEVEL` | Minimum log level (`debug` / `info` / `warn` / `error`) | `debug` |\n\n---\n\n## CLI Commands\n\n```bash\nagent-speech init              # Initialize configuration\nagent-speech enable            # Enable TTS\nagent-speech disable           # Disable TTS\nagent-speech toggle            # Quick toggle on/off\nagent-speech status            # Show current settings\nagent-speech reset             # Reset to defaults\nagent-speech set-voice <name>  # Set voice (e.g., Samantha, Alex, Victoria)\nagent-speech set-language <code> # Set target translation language (ko, en, ja, zh-CN, es, fr, de, it)\nagent-speech set-rate <wpm>    # Set speech rate (50-400)\nagent-speech set-volume <0-100> # Set volume\nagent-speech list-voices       # List available macOS voices\nagent-speech language          # Show/set language\nagent-speech mute [on|off]     # Mute/unmute speech\nagent-speech help              # Show help\n```\n\n---\n\n## MCP Tool Reference\n\n### `speak_text`\n\nConvert text to speech using macOS TTS.\n\n| Parameter | Type | Required | Description |\n|---|---|---|---|\n| `text` | string | Yes | Text to speak |\n| `voice` | string | No | Voice name (e.g., Samantha, Alex, Victoria) |\n| `rate` | number | No | Speech rate in words per minute (50–400) |\n| `volume` | number | No | Volume level (0–100) |\n\n**Example:**\n\n```json\n{\n  \"text\": \"Hello, this is a test\",\n  \"voice\": \"Samantha\",\n  \"rate\": 200,\n  \"volume\": 50\n}\n```\n\n---\n\n## Alternative Installation\n\n### Manual (MCP server config)\n\n```bash\ngit clone https://github.com/welico/agent-speech-antigravity.git\ncd agent-speech-antigravity\nnpm install\nnpm run build\n```\n\nAdd to your Antigravity CLI settings (`~/.gemini/antigravity-cli/settings.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"agent-speech\": {\n      \"command\": \"node\",\n      \"args\": [\"/ABSOLUTE/PATH/TO/agent-speech-antigravity/dist/mcp-server.js\"]\n    }\n  }\n}\n```\n\n---\n\n## Development\n\n```bash\nnpm install          # Install dependencies\nnpm run build        # Bundle with esbuild (self-contained dist/)\nnpm run build:types  # Generate .d.ts declarations\nnpm run typecheck    # Type check without emitting\nnpm run dev          # Watch mode (tsc)\n```\n\n### Project Structure\n\n```\nagent-speech-antigravity/\n├── src/\n│   ├── core/              # Core TTS logic\n│   │   ├── tts.ts         # Text-to-speech engine\n│   │   ├── config.ts      # Configuration management\n│   │   └── filter.ts      # Content filtering\n│   ├── infrastructure/    # External integrations\n│   │   ├── mcp-server.ts  # MCP server implementation\n│   │   ├── say.ts         # macOS say command wrapper\n│   │   └── fs.ts          # File system operations\n│   ├── commands/          # CLI commands\n│   ├── utils/             # Utilities (logger, schemas, formatting)\n│   ├── types/             # TypeScript type definitions\n│   ├── antigravity.ts     # Antigravity CLI integration class\n│   ├── mcp-server.ts      # MCP server entry point\n│   ├── cli.ts             # CLI entry point\n│   └── index.ts           # Package exports\n├── commands/\n│   └── agent-speech.toml  # Slash command: /agent-speech <args>\n├── esbuild.config.mjs     # Build config (bundles all deps)\n├── gemini-extension.json   # Gemini CLI extension manifest\n├── ANTIGRAVITY.md          # Extension context file\n└── dist/                   # Bundled output (committed)\n```\n\n---\n\n## Troubleshooting\n\n### Extension not loading\n\n1. Verify the extension is installed: `agy plugin list`\n2. Reinstall: `agy plugin uninstall agent-speech && agy plugin install https://github.com/welico/agent-speech-antigravity`\n3. Restart Antigravity CLI after installation\n\n### MCP approval prompt appears\n\nAntigravity CLI does not allow extensions to auto-set `trust: true` in extension-managed MCP server config.\n\nFor user-level always-allow behavior, configure Antigravity policy/settings locally:\n\n```json\n{\n  \"security\": {\n    \"enablePermanentToolApproval\": true\n  }\n}\n```\n\nThen add a policy file in `~/.gemini/antigravity-cli/policies/agent-speech.toml`:\n\n```toml\n[[rule]]\nmcpName = \"agent-speech\"\ntoolName = \"*\"\ndecision = \"allow\"\npriority = 900\n```\n\n### No speech output\n\n1. Check macOS volume is not muted\n2. Verify the voice exists: `say -v Samantha \"test\"`\n3. Check if TTS is enabled: `agent-speech status`\n\n### Voice not found\n\n```bash\nagent-speech list-voices          # List available voices\nagent-speech set-voice Samantha   # Use exact name from list\n```\n\n---\n\n## License\n\nMIT\n",
  "bytes": 7374,
  "sha": "ffab3843ec8853ac1afa5f6bf9ec60d21d416b11bb5b3889877fefacbf48c785",
  "repo_slug": "welico/agent-speech-antigravity",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_welico_agent_speech_antigravity_6ed89637/readme"
}