一键导入
speak
Toggle TTS mode to speak responses through any device on Tailscale. DEFAULT ON for build agent. Speaks every thought, action, and progress update.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Toggle TTS mode to speak responses through any device on Tailscale. DEFAULT ON for build agent. Speaks every thought, action, and progress update.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | speak |
| description | Toggle TTS mode to speak responses through any device on Tailscale. DEFAULT ON for build agent. Speaks every thought, action, and progress update. |
I speak my thoughts. Continuous narration of all agent activity.
When speak mode is ON, you MUST speak at these points:
speak "Got it. [what you're doing]" --if-on
speak "Analyzing [thing]..." --if-on
speak "Found [something]..." --if-on
speak "Deciding to [action]..." --if-on
speak "Reading [file]..." --if-on
speak "Editing [file]..." --if-on
speak "Running [command]..." --if-on
speak "Still working on [task]. [status]" --if-on
speak "Making progress. [update]" --if-on
speak "Done! [summary of what was done]" --if-on
speak "[your response text]" --if-on
IF YOU ARE NOT SPEAKING, YOU ARE NOT FOLLOWING INSTRUCTIONS.
Aggressive TTS that narrates EVERYTHING:
Speaking forces structured reasoning. Before every action, you must:
This mirrors how Senter (the model) uses <speak> tags - brief announcements before work, summaries after.
Pattern:
Speaking isn't just output - it's a thinking tool that forces planning before doing.
speak --status # Check mode status
speak --on # Enable speak mode
speak --off # Disable speak mode
speak --toggle # Toggle on/off
speak --devices # List available devices
speak --async "text" # Speak in background (non-blocking)
# Speak if mode is on (use in agents)
speak "Starting task" --if-on
# Thinking narration (for thought process)
speak "Analyzing the codebase structure..." --thinking --if-on
# Specify device (s10, duo, local)
speak "Hello" --device duo --if-on
speak "Test" --device local --if-on
# Run in background (non-blocking)
speak --async "This won't block my work"
Minimum interval: 2 seconds (was 5)
Speak on every:
# At task start - MANDATORY
speak "Got it. Starting to analyze the issue." --if-on
# During work (every significant action) - MANDATORY
speak "Reading the main config file." --thinking --if-on
speak "Found the issue in the authentication module." --thinking --if-on
speak "Applying the fix now." --if-on
# On completion - MANDATORY
speak "All done. The bug is fixed and tests pass." --if-on
# Final response to user - MANDATORY
speak "[your complete response text]" --if-on
| Device | Name | IP | SSH Port | Owner |
|---|---|---|---|---|
duo | Surface Duo 2 | 100.79.15.54 | 8022 | User (DEFAULT) |
s10 | Senter S10 | 100.93.96.90 | 8022 | Senter's phone |
local | Local Speakers | localhost | - | This computer |
DEFAULT DEVICE: duo (Surface Duo 2) - Always use duo unless user specifies otherwise
When using speak, ALWAYS use --device duo:
speak "text" --device duo --if-on
The duo device at 100.79.15.54 is the primary TTS output for this agent.
Devices are auto-detected on Tailscale by checking which device (IP ending in .54 = Duo, .90 = S10) was most recently online. Default falls back to duo if no device detected.
Always default to duo (Surface Duo 2 at 100.79.15.54) unless:
nohup python3 -m uvicorn soprano.server:app --host 0.0.0.0 --port 8102 > /tmp/soprano.log 2>&1 &
/home/sovthpaw/Senter/skills/speak/speak.pyduo (Surface Duo 2 at 100.79.15.54) - auto-detected from Tailscalessh -i ~/.ssh/phone_access -p 8022 droid@100.79.15.54 "echo ok"s10 (100.93.96.90), then local--async for non-blocking speech--device local for computer speakers