Easy, Local TTS for macOS | Custom Voices & Text Processing. Codex Plugin via Socket Marketplace. LAN w/ Bonjour.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 8c8bf17 · analyzer v28 · 1d ago
skills & prompt files 7
- agent-rules gaelic-ghost-SpeakSwiftlyServer-8c8bf17/AGENTS.md
- skill gaelic-ghost-SpeakSwiftlyServer-8c8bf17/skills/speak-swiftly-codex-hooks/SKILL.md
- skill gaelic-ghost-SpeakSwiftlyServer-8c8bf17/skills/speak-swiftly-launchagent-setup/SKILL.md
- skill gaelic-ghost-SpeakSwiftlyServer-8c8bf17/skills/speak-swiftly-mcp/SKILL.md
- skill gaelic-ghost-SpeakSwiftlyServer-8c8bf17/skills/speak-swiftly-runtime-operator/SKILL.md
- skill gaelic-ghost-SpeakSwiftlyServer-8c8bf17/skills/speak-swiftly-text-profiles/SKILL.md
- skill gaelic-ghost-SpeakSwiftlyServer-8c8bf17/skills/speak-swiftly-voice-workflows/SKILL.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 203
filesystem 3
- fs gaelic-ghost-SpeakSwiftlyServer-8c8bf17/.codex/hooks/notify-dump.mjs :3
import { mkdir, appendFile } from "node:fs/promises"; - fs gaelic-ghost-SpeakSwiftlyServer-8c8bf17/hooks/stop-log.mjs :3
import { appendFile, mkdir } from "node:fs/promises"; - fs gaelic-ghost-SpeakSwiftlyServer-8c8bf17/hooks/stop-tts.mjs :3
import { mkdir, readFile, writeFile, appendFile, rm } from "node:fs/promises";
shell / exec 1
- shell gaelic-ghost-SpeakSwiftlyServer-8c8bf17/hooks/stop-tts.mjs :173
new RegExp(`^\\s{0,3}#{1,6}\\s+(${escapedNames})\\s*#*\\s*$`, "i"),
network 2
- net gaelic-ghost-SpeakSwiftlyServer-8c8bf17/WebUI/src/lib/api.ts :281
const response = await fetch(path, { - net gaelic-ghost-SpeakSwiftlyServer-8c8bf17/hooks/stop-tts.mjs :565
response = await fetch(liveSpeechEndpoint, {
declared dependencies 34
- github.com/modelcontextprotocol/swift-sdk@0.12.0
- @fontsource-variable/geist@^5.2.9
- @tailwindcss/vite@^4.3.1
- class-variance-authority@^0.7.1
- clsx@^2.1.1
- lucide-react@^1.21.0
- next-themes@^0.4.6
- radix-ui@^1.6.0
- react@^19.2.7
- react-dom@^19.2.7
- shadcn@^4.11.0
- sonner@^2.0.7
- tailwind-merge@^3.6.0
- tailwindcss@^4.3.1
- tw-animate-css@^1.4.0
- @playwright/test@^1.61.1
- @testing-library/react@^16.3.2
- @testing-library/user-event@^14.6.1
- @types/node@^24.13.2
- @types/react@^19.2.17
- @types/react-dom@^19.2.3
- @vitejs/plugin-react@^6.0.2
- jsdom@^29.1.1
- oxlint@^1.69.0
- typescript@~6.0.2
- vite@^8.1.0
- vitest@^4.1.9
- github.com/hummingbird-project/hummingbird@2.25.0
- github.com/swiftlang/swift-docc-plugin@1.1.0
- github.com/apple/swift-nio@2.83.0
- github.com/gaelic-ghost/SpeakSwiftly@12.0.0
- github.com/ml-explore/mlx-swift-lm@3.31.3
- github.com/apple/swift-async-algorithms@1.1.3
- github.com/apple/swift-configuration@1.2.0