agentvibes 2.4.3 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bmad-core/agent-teams/team-all.yaml +15 -0
- package/.bmad-core/agent-teams/team-fullstack.yaml +19 -0
- package/.bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
- package/.bmad-core/agent-teams/team-no-ui.yaml +14 -0
- package/.bmad-core/agents/analyst.md +84 -0
- package/.bmad-core/agents/architect.md +85 -0
- package/.bmad-core/agents/bmad-master.md +110 -0
- package/.bmad-core/agents/bmad-orchestrator.md +147 -0
- package/.bmad-core/agents/dev.md +81 -0
- package/.bmad-core/agents/pm.md +84 -0
- package/.bmad-core/agents/po.md +79 -0
- package/.bmad-core/agents/qa.md +87 -0
- package/.bmad-core/agents/sm.md +65 -0
- package/.bmad-core/agents/ux-expert.md +69 -0
- package/.bmad-core/checklists/architect-checklist.md +440 -0
- package/.bmad-core/checklists/change-checklist.md +184 -0
- package/.bmad-core/checklists/pm-checklist.md +372 -0
- package/.bmad-core/checklists/po-master-checklist.md +434 -0
- package/.bmad-core/checklists/story-dod-checklist.md +96 -0
- package/.bmad-core/checklists/story-draft-checklist.md +155 -0
- package/.bmad-core/core-config.yaml +22 -0
- package/.bmad-core/data/bmad-kb.md +809 -0
- package/.bmad-core/data/brainstorming-techniques.md +38 -0
- package/.bmad-core/data/elicitation-methods.md +156 -0
- package/.bmad-core/data/technical-preferences.md +5 -0
- package/.bmad-core/data/test-levels-framework.md +148 -0
- package/.bmad-core/data/test-priorities-matrix.md +174 -0
- package/.bmad-core/enhanced-ide-development-workflow.md +248 -0
- package/.bmad-core/install-manifest.yaml +230 -0
- package/.bmad-core/tasks/advanced-elicitation.md +119 -0
- package/.bmad-core/tasks/apply-qa-fixes.md +150 -0
- package/.bmad-core/tasks/brownfield-create-epic.md +162 -0
- package/.bmad-core/tasks/brownfield-create-story.md +149 -0
- package/.bmad-core/tasks/correct-course.md +72 -0
- package/.bmad-core/tasks/create-brownfield-story.md +314 -0
- package/.bmad-core/tasks/create-deep-research-prompt.md +280 -0
- package/.bmad-core/tasks/create-doc.md +103 -0
- package/.bmad-core/tasks/create-next-story.md +114 -0
- package/.bmad-core/tasks/document-project.md +345 -0
- package/.bmad-core/tasks/execute-checklist.md +88 -0
- package/.bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
- package/.bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
- package/.bmad-core/tasks/index-docs.md +175 -0
- package/.bmad-core/tasks/kb-mode-interaction.md +77 -0
- package/.bmad-core/tasks/nfr-assess.md +345 -0
- package/.bmad-core/tasks/qa-gate.md +163 -0
- package/.bmad-core/tasks/review-story.md +316 -0
- package/.bmad-core/tasks/risk-profile.md +355 -0
- package/.bmad-core/tasks/shard-doc.md +187 -0
- package/.bmad-core/tasks/test-design.md +176 -0
- package/.bmad-core/tasks/trace-requirements.md +266 -0
- package/.bmad-core/tasks/validate-next-story.md +136 -0
- package/.bmad-core/templates/architecture-tmpl.yaml +651 -0
- package/.bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
- package/.bmad-core/templates/brownfield-architecture-tmpl.yaml +477 -0
- package/.bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
- package/.bmad-core/templates/competitor-analysis-tmpl.yaml +307 -0
- package/.bmad-core/templates/front-end-architecture-tmpl.yaml +219 -0
- package/.bmad-core/templates/front-end-spec-tmpl.yaml +350 -0
- package/.bmad-core/templates/fullstack-architecture-tmpl.yaml +824 -0
- package/.bmad-core/templates/market-research-tmpl.yaml +253 -0
- package/.bmad-core/templates/prd-tmpl.yaml +203 -0
- package/.bmad-core/templates/project-brief-tmpl.yaml +222 -0
- package/.bmad-core/templates/qa-gate-tmpl.yaml +103 -0
- package/.bmad-core/templates/story-tmpl.yaml +138 -0
- package/.bmad-core/user-guide.md +577 -0
- package/.bmad-core/utils/bmad-doc-template.md +327 -0
- package/.bmad-core/utils/workflow-management.md +71 -0
- package/.bmad-core/workflows/brownfield-fullstack.yaml +298 -0
- package/.bmad-core/workflows/brownfield-service.yaml +188 -0
- package/.bmad-core/workflows/brownfield-ui.yaml +198 -0
- package/.bmad-core/workflows/greenfield-fullstack.yaml +241 -0
- package/.bmad-core/workflows/greenfield-service.yaml +207 -0
- package/.bmad-core/workflows/greenfield-ui.yaml +236 -0
- package/.bmad-core/working-in-the-brownfield.md +606 -0
- package/.claude/commands/BMad/analyst.md +88 -0
- package/.claude/commands/BMad/architect.md +89 -0
- package/.claude/commands/BMad/bmad-master.md +114 -0
- package/.claude/commands/BMad/bmad-orchestrator.md +151 -0
- package/.claude/commands/BMad/dev.md +85 -0
- package/.claude/commands/BMad/pm.md +88 -0
- package/.claude/commands/BMad/po.md +83 -0
- package/.claude/commands/BMad/qa.md +91 -0
- package/.claude/commands/BMad/sm.md +69 -0
- package/.claude/commands/BMad/tasks/advanced-elicitation.md +123 -0
- package/.claude/commands/BMad/tasks/apply-qa-fixes.md +154 -0
- package/.claude/commands/BMad/tasks/brownfield-create-epic.md +166 -0
- package/.claude/commands/BMad/tasks/brownfield-create-story.md +153 -0
- package/.claude/commands/BMad/tasks/correct-course.md +76 -0
- package/.claude/commands/BMad/tasks/create-brownfield-story.md +318 -0
- package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +284 -0
- package/.claude/commands/BMad/tasks/create-doc.md +107 -0
- package/.claude/commands/BMad/tasks/create-next-story.md +118 -0
- package/.claude/commands/BMad/tasks/document-project.md +349 -0
- package/.claude/commands/BMad/tasks/execute-checklist.md +92 -0
- package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +142 -0
- package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +57 -0
- package/.claude/commands/BMad/tasks/index-docs.md +179 -0
- package/.claude/commands/BMad/tasks/kb-mode-interaction.md +81 -0
- package/.claude/commands/BMad/tasks/nfr-assess.md +349 -0
- package/.claude/commands/BMad/tasks/qa-gate.md +167 -0
- package/.claude/commands/BMad/tasks/review-story.md +320 -0
- package/.claude/commands/BMad/tasks/risk-profile.md +359 -0
- package/.claude/commands/BMad/tasks/shard-doc.md +191 -0
- package/.claude/commands/BMad/tasks/test-design.md +180 -0
- package/.claude/commands/BMad/tasks/trace-requirements.md +270 -0
- package/.claude/commands/BMad/tasks/validate-next-story.md +140 -0
- package/.claude/commands/BMad/ux-expert.md +73 -0
- package/.claude/commands/agent-vibes/verbosity.md +89 -0
- package/.claude/github-star-reminder.txt +1 -0
- package/.claude/hooks/session-start-tts.sh +68 -1
- package/.claude/hooks/user-prompt-output.sh +111 -0
- package/.claude/hooks/verbosity-manager.sh +172 -0
- package/.claude/piper-voices-dir.txt +1 -0
- package/.claude/plugins/bmad-voices-enabled.flag +0 -0
- package/.mcp.json +88 -0
- package/README.md +55 -7
- package/RELEASE_NOTES_v2.4.0_DRAFT.md +116 -0
- package/RELEASE_NOTES_v2.4.1_DRAFT.md +61 -0
- package/RELEASE_NOTES_v2.5.0.md +233 -0
- package/docs/2025-11-15_15-14-33.snagx +0 -0
- package/docs/Screenshot 2025-11-15 151325.png +0 -0
- package/docs/Screenshot 2025-11-15 151432.png +0 -0
- package/docs/macos-piper-issue.md +172 -0
- package/docs/stargazer-cms-prd.md +1918 -0
- package/docs/whatsapp-plugin-github-issue.md +393 -0
- package/docs/whatsapp-tts-plugin-feasibility.md +418 -0
- package/docs/whatsapp-tts-standalone-plugin.md +628 -0
- package/github-profile-draft.md +57 -0
- package/linkedin/vibe-coding-and-pulseaudio.md +121 -0
- package/mcp-server/agentvibes.db +0 -0
- package/mcp-server/server.py +70 -0
- package/package.json +1 -1
- package/scripts/audio-tunnel.config +17 -0
- package/src/installer.js +19 -14
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Get or set AgentVibes verbosity level (low/medium/high)
|
|
3
|
+
tags: [user]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Get or set the AgentVibes verbosity level to control how much Claude speaks while working.
|
|
7
|
+
|
|
8
|
+
## Usage
|
|
9
|
+
|
|
10
|
+
- `/agent-vibes:verbosity` - Show current verbosity level
|
|
11
|
+
- `/agent-vibes:verbosity low` - Set to LOW (minimal)
|
|
12
|
+
- `/agent-vibes:verbosity medium` - Set to MEDIUM (balanced)
|
|
13
|
+
- `/agent-vibes:verbosity high` - Set to HIGH (maximum transparency)
|
|
14
|
+
|
|
15
|
+
## Verbosity Levels
|
|
16
|
+
|
|
17
|
+
### LOW (Minimal)
|
|
18
|
+
- ✅ Acknowledgments only (start of task)
|
|
19
|
+
- ✅ Completions only (end of task)
|
|
20
|
+
- 🔇 No reasoning spoken during work
|
|
21
|
+
- Perfect for: Quiet work sessions, minimal distraction
|
|
22
|
+
|
|
23
|
+
### MEDIUM (Balanced)
|
|
24
|
+
- ✅ Acknowledgments
|
|
25
|
+
- 🤔 Major decisions ("I'll use grep to search")
|
|
26
|
+
- ✓ Key findings ("Found 12 instances")
|
|
27
|
+
- ✅ Completions
|
|
28
|
+
- Perfect for: Understanding major decisions without full narration
|
|
29
|
+
|
|
30
|
+
### HIGH (Maximum Transparency)
|
|
31
|
+
- ✅ Acknowledgments
|
|
32
|
+
- 💭 All reasoning ("Let me search for all instances")
|
|
33
|
+
- 🤔 All decisions ("I'll use grep for this")
|
|
34
|
+
- ✓ All findings ("Found it at line 1323")
|
|
35
|
+
- ✅ Completions
|
|
36
|
+
- Perfect for: Full transparency, learning mode, debugging complex tasks
|
|
37
|
+
|
|
38
|
+
## How It Works
|
|
39
|
+
|
|
40
|
+
Claude uses **emoji markers** in its reasoning text:
|
|
41
|
+
- 💭 = Reasoning/thinking
|
|
42
|
+
- 🤔 = Decisions
|
|
43
|
+
- ✓ = Findings/results
|
|
44
|
+
|
|
45
|
+
Based on your verbosity level, AgentVibes automatically detects these markers and speaks them aloud.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
|
|
49
|
+
### LOW Verbosity
|
|
50
|
+
```
|
|
51
|
+
User: "Find all TODO comments"
|
|
52
|
+
[TTS: "I'll search for those"]
|
|
53
|
+
[Work happens silently...]
|
|
54
|
+
[TTS: "Found 12 TODO comments"]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### MEDIUM Verbosity
|
|
58
|
+
```
|
|
59
|
+
User: "Find all TODO comments"
|
|
60
|
+
[TTS: "I'll search for those"]
|
|
61
|
+
🤔 I'll use grep to search all files
|
|
62
|
+
[Work happens...]
|
|
63
|
+
✓ Found 12 TODO comments across 5 files
|
|
64
|
+
[TTS: "Found 12 TODO comments"]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### HIGH Verbosity
|
|
68
|
+
```
|
|
69
|
+
User: "Find all TODO comments"
|
|
70
|
+
[TTS: "I'll search for those"]
|
|
71
|
+
💭 Let me search through the codebase for TODO comments
|
|
72
|
+
🤔 I'll use the Grep tool with pattern "TODO"
|
|
73
|
+
[Grep runs...]
|
|
74
|
+
✓ Found 12 TODO comments across 5 files
|
|
75
|
+
💭 Let me organize these by file
|
|
76
|
+
[TTS: "Found 12 TODO comments in 5 files"]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Notes
|
|
80
|
+
|
|
81
|
+
- Changes take effect on next Claude Code session restart
|
|
82
|
+
- Verbosity is saved per-project (if `.claude/` exists) or globally
|
|
83
|
+
- You can also control verbosity via MCP: `mcp__agentvibes__set_verbosity(level="high")`
|
|
84
|
+
|
|
85
|
+
## Related Commands
|
|
86
|
+
|
|
87
|
+
- `/agent-vibes:personality` - Set voice personality style
|
|
88
|
+
- `/agent-vibes:switch` - Change voice
|
|
89
|
+
- `/agent-vibes:provider` - Switch TTS provider
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
20251116
|
|
@@ -33,6 +33,9 @@ else
|
|
|
33
33
|
STYLE_NAME="$PERSONALITY"
|
|
34
34
|
fi
|
|
35
35
|
|
|
36
|
+
# Get verbosity level (Issue #32)
|
|
37
|
+
VERBOSITY=$(cat .claude/tts-verbosity.txt 2>/dev/null || cat ~/.claude/tts-verbosity.txt 2>/dev/null || echo "low")
|
|
38
|
+
|
|
36
39
|
# Output TTS protocol instructions to stdout
|
|
37
40
|
# Claude Code will add this to the conversation context
|
|
38
41
|
cat <<'EOF'
|
|
@@ -69,6 +72,70 @@ User: "check git status"
|
|
|
69
72
|
|
|
70
73
|
EOF
|
|
71
74
|
|
|
72
|
-
# Add
|
|
75
|
+
# Add verbosity-specific protocol (Issue #32)
|
|
76
|
+
case "$VERBOSITY" in
|
|
77
|
+
low)
|
|
78
|
+
cat <<'EOF'
|
|
79
|
+
## Verbosity: LOW (Minimal)
|
|
80
|
+
- Speak only at acknowledgment (start) and completion (end)
|
|
81
|
+
- Do NOT speak reasoning, decisions, or findings during work
|
|
82
|
+
- Keep it quiet and focused
|
|
83
|
+
|
|
84
|
+
EOF
|
|
85
|
+
;;
|
|
86
|
+
|
|
87
|
+
medium)
|
|
88
|
+
cat <<'EOF'
|
|
89
|
+
## Verbosity: MEDIUM (Balanced)
|
|
90
|
+
- Speak at acknowledgment and completion (always)
|
|
91
|
+
- Also speak major decisions and key findings during work
|
|
92
|
+
- Use emoji markers for automatic TTS:
|
|
93
|
+
🤔 [decision text] - Major decisions (e.g., "🤔 I'll use grep to search all files")
|
|
94
|
+
✓ [finding text] - Key findings (e.g., "✓ Found 12 instances at line 1323")
|
|
95
|
+
|
|
96
|
+
Example:
|
|
97
|
+
```
|
|
98
|
+
User: "Find all TODO comments"
|
|
99
|
+
[TTS: Acknowledgment]
|
|
100
|
+
🤔 I'll use grep to search for TODO comments
|
|
101
|
+
[Work happens...]
|
|
102
|
+
✓ Found 12 TODO comments across 5 files
|
|
103
|
+
[TTS: Completion]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
EOF
|
|
107
|
+
;;
|
|
108
|
+
|
|
109
|
+
high)
|
|
110
|
+
cat <<'EOF'
|
|
111
|
+
## Verbosity: HIGH (Maximum Transparency)
|
|
112
|
+
- Speak acknowledgment and completion (always)
|
|
113
|
+
- Speak ALL reasoning, decisions, and findings as you work
|
|
114
|
+
- Use emoji markers for automatic TTS:
|
|
115
|
+
💭 [reasoning text] - Thought process (e.g., "💭 Let me search for all instances")
|
|
116
|
+
🤔 [decision text] - Decisions (e.g., "🤔 I'll use grep for this")
|
|
117
|
+
✓ [finding text] - Findings (e.g., "✓ Found it at line 1323")
|
|
118
|
+
|
|
119
|
+
Example:
|
|
120
|
+
```
|
|
121
|
+
User: "Find all TODO comments"
|
|
122
|
+
[TTS: Acknowledgment]
|
|
123
|
+
💭 Let me search through the codebase for TODO comments
|
|
124
|
+
🤔 I'll use the Grep tool with pattern "TODO"
|
|
125
|
+
[Grep runs...]
|
|
126
|
+
✓ Found 12 TODO comments across 5 files
|
|
127
|
+
💭 Let me organize these results by file
|
|
128
|
+
[Processing...]
|
|
129
|
+
[TTS: Completion]
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
IMPORTANT: Use emoji markers naturally in your reasoning text. They trigger automatic TTS.
|
|
133
|
+
|
|
134
|
+
EOF
|
|
135
|
+
;;
|
|
136
|
+
esac
|
|
137
|
+
|
|
138
|
+
# Add current style and verbosity info
|
|
73
139
|
echo "Current Style: ${STYLE_NAME} (${STYLE_MODE})"
|
|
140
|
+
echo "Current Verbosity: ${VERBOSITY}"
|
|
74
141
|
echo ""
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/user-prompt-output.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied, including but not limited to the warranties of
|
|
26
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
27
|
+
# In no event shall the authors or copyright holders be liable for any claim,
|
|
28
|
+
# damages or other liability, whether in an action of contract, tort or
|
|
29
|
+
# otherwise, arising from, out of or in connection with the software or the
|
|
30
|
+
# use or other dealings in the software.
|
|
31
|
+
#
|
|
32
|
+
# ---
|
|
33
|
+
#
|
|
34
|
+
# @fileoverview Auto-detects emoji markers in Claude's output and triggers TTS
|
|
35
|
+
# @context Implements verbosity system by detecting 💭 🤔 ✓ markers and speaking them
|
|
36
|
+
# @architecture Stdin reader, regex matcher, async TTS trigger
|
|
37
|
+
# @dependencies play-tts.sh, tts-verbosity.txt
|
|
38
|
+
# @entrypoints Called by Claude Code after each assistant response (user-prompt-output hook)
|
|
39
|
+
# @patterns Text stream processing, background job execution, marker-based triggers
|
|
40
|
+
# @related session-start-tts.sh, verbosity-manager.sh, Issue #32
|
|
41
|
+
# @aiNotes This hook enables natural emoji-based TTS without Claude needing manual Bash calls
|
|
42
|
+
|
|
43
|
+
# Fix locale warnings
|
|
44
|
+
export LC_ALL=C
|
|
45
|
+
|
|
46
|
+
# Get script directory
|
|
47
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
48
|
+
PLAY_TTS="$SCRIPT_DIR/play-tts.sh"
|
|
49
|
+
|
|
50
|
+
# Get verbosity level
|
|
51
|
+
VERBOSITY=$(cat .claude/tts-verbosity.txt 2>/dev/null || cat ~/.claude/tts-verbosity.txt 2>/dev/null || echo "low")
|
|
52
|
+
|
|
53
|
+
# Read stdin (Claude's output) - preserve it for display
|
|
54
|
+
OUTPUT=$(cat)
|
|
55
|
+
|
|
56
|
+
# Always output the original text first (so user sees it)
|
|
57
|
+
echo "$OUTPUT"
|
|
58
|
+
|
|
59
|
+
# Exit early if play-tts.sh doesn't exist (AgentVibes not installed)
|
|
60
|
+
[[ ! -f "$PLAY_TTS" ]] && exit 0
|
|
61
|
+
|
|
62
|
+
#
|
|
63
|
+
# @function extract_and_speak
|
|
64
|
+
# @context Extracts text after emoji markers and triggers TTS asynchronously
|
|
65
|
+
# @architecture Uses grep to find markers, extracts text, launches TTS in background
|
|
66
|
+
# @dependencies play-tts.sh
|
|
67
|
+
# @entrypoints Called based on verbosity level
|
|
68
|
+
# @aiNotes Background execution (&) prevents blocking Claude's output
|
|
69
|
+
#
|
|
70
|
+
extract_and_speak() {
|
|
71
|
+
local pattern="$1"
|
|
72
|
+
|
|
73
|
+
# Extract lines matching the pattern
|
|
74
|
+
# Pattern format: "emoji text" or "emoji [text]"
|
|
75
|
+
while IFS= read -r line; do
|
|
76
|
+
# Try to extract text after emoji
|
|
77
|
+
# Handles formats: "💭 text", "💭 [text]", "💭text"
|
|
78
|
+
if echo "$line" | grep -qE "$pattern"; then
|
|
79
|
+
# Extract everything after the emoji (and optional space/bracket)
|
|
80
|
+
text=$(echo "$line" | sed -E "s/^.*($pattern)[[:space:]]*\[?[[:space:]]*//" | sed 's/\]$//')
|
|
81
|
+
|
|
82
|
+
# Skip if text is empty or too short
|
|
83
|
+
[[ -z "$text" || ${#text} -lt 3 ]] && continue
|
|
84
|
+
|
|
85
|
+
# Speak it in background (don't block)
|
|
86
|
+
bash "$PLAY_TTS" "$text" >/dev/null 2>&1 &
|
|
87
|
+
fi
|
|
88
|
+
done <<< "$OUTPUT"
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
# Process based on verbosity level
|
|
92
|
+
case "$VERBOSITY" in
|
|
93
|
+
high)
|
|
94
|
+
# HIGH: Speak ALL markers (💭 🤔 ✓)
|
|
95
|
+
# Don't speak ✅ here - that's handled by manual TTS completion call
|
|
96
|
+
extract_and_speak "💭|🤔|✓"
|
|
97
|
+
;;
|
|
98
|
+
|
|
99
|
+
medium)
|
|
100
|
+
# MEDIUM: Speak decisions and findings (🤔 ✓)
|
|
101
|
+
extract_and_speak "🤔|✓"
|
|
102
|
+
;;
|
|
103
|
+
|
|
104
|
+
low)
|
|
105
|
+
# LOW: No automatic extraction (only manual ACK/COMPLETE TTS calls)
|
|
106
|
+
# Don't process any markers
|
|
107
|
+
;;
|
|
108
|
+
esac
|
|
109
|
+
|
|
110
|
+
# Exit successfully
|
|
111
|
+
exit 0
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/verbosity-manager.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied, including but not limited to the warranties of
|
|
26
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
27
|
+
# In no event shall the authors or copyright holders be liable for any claim,
|
|
28
|
+
# damages or other liability, whether in an action of contract, tort or
|
|
29
|
+
# otherwise, arising from, out of or in connection with the software or the
|
|
30
|
+
# use or other dealings in the software.
|
|
31
|
+
#
|
|
32
|
+
# ---
|
|
33
|
+
#
|
|
34
|
+
# @fileoverview Manages AgentVibes verbosity level (low/medium/high)
|
|
35
|
+
# @context Controls how much Claude speaks while working - acknowledgments only vs full reasoning
|
|
36
|
+
# @architecture Simple config file reader/writer with project-local and global fallback
|
|
37
|
+
# @dependencies tts-verbosity.txt config file
|
|
38
|
+
# @entrypoints Called by slash commands, MCP tools, and session-start hook
|
|
39
|
+
# @patterns Config file management, validation, graceful defaults
|
|
40
|
+
# @related .claude/hooks/session-start-tts.sh, mcp-server/server.py, Issue #32
|
|
41
|
+
|
|
42
|
+
# Fix locale warnings
|
|
43
|
+
export LC_ALL=C
|
|
44
|
+
|
|
45
|
+
# Get script directory for accessing other scripts
|
|
46
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
47
|
+
CLAUDE_DIR="$(dirname "$SCRIPT_DIR")"
|
|
48
|
+
|
|
49
|
+
# Config file locations
|
|
50
|
+
VERBOSITY_FILE="$CLAUDE_DIR/tts-verbosity.txt"
|
|
51
|
+
GLOBAL_VERBOSITY_FILE="$HOME/.claude/tts-verbosity.txt"
|
|
52
|
+
|
|
53
|
+
#
|
|
54
|
+
# @function get_verbosity
|
|
55
|
+
# @context Returns the current verbosity level (low/medium/high)
|
|
56
|
+
# @architecture Checks project-local first, then global, then defaults to "low"
|
|
57
|
+
# @dependencies tts-verbosity.txt config file
|
|
58
|
+
# @entrypoints Called by session-start hook, MCP tools, slash commands
|
|
59
|
+
# @aiNotes Default to "low" for backward compatibility with existing installations
|
|
60
|
+
#
|
|
61
|
+
get_verbosity() {
|
|
62
|
+
if [[ -f "$VERBOSITY_FILE" ]]; then
|
|
63
|
+
cat "$VERBOSITY_FILE"
|
|
64
|
+
elif [[ -f "$GLOBAL_VERBOSITY_FILE" ]]; then
|
|
65
|
+
cat "$GLOBAL_VERBOSITY_FILE"
|
|
66
|
+
else
|
|
67
|
+
echo "low"
|
|
68
|
+
fi
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
#
|
|
72
|
+
# @function set_verbosity
|
|
73
|
+
# @context Sets the verbosity level to low/medium/high
|
|
74
|
+
# @architecture Validates input, saves to project-local if .claude exists, otherwise global
|
|
75
|
+
# @dependencies None
|
|
76
|
+
# @entrypoints Called by MCP tools and slash commands
|
|
77
|
+
# @aiNotes Saves to project-local (.claude/) when available for per-project settings
|
|
78
|
+
#
|
|
79
|
+
set_verbosity() {
|
|
80
|
+
local level="$1"
|
|
81
|
+
|
|
82
|
+
# Validate input
|
|
83
|
+
if [[ ! "$level" =~ ^(low|medium|high)$ ]]; then
|
|
84
|
+
echo "❌ Invalid verbosity level: $level"
|
|
85
|
+
echo "Valid options: low, medium, high"
|
|
86
|
+
return 1
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
# Save to project-local or global
|
|
90
|
+
if [[ -d "$CLAUDE_DIR" ]]; then
|
|
91
|
+
echo "$level" > "$VERBOSITY_FILE"
|
|
92
|
+
echo "✅ Verbosity set to: $level (project-local)"
|
|
93
|
+
else
|
|
94
|
+
mkdir -p "$(dirname "$GLOBAL_VERBOSITY_FILE")"
|
|
95
|
+
echo "$level" > "$GLOBAL_VERBOSITY_FILE"
|
|
96
|
+
echo "✅ Verbosity set to: $level (global)"
|
|
97
|
+
fi
|
|
98
|
+
|
|
99
|
+
echo ""
|
|
100
|
+
echo "💡 Verbosity levels:"
|
|
101
|
+
echo " • LOW: Acknowledgments + Completions only"
|
|
102
|
+
echo " • MEDIUM: + Major decisions and findings"
|
|
103
|
+
echo " • HIGH: All reasoning (maximum transparency)"
|
|
104
|
+
echo ""
|
|
105
|
+
echo "⚠️ Restart Claude Code for changes to take effect"
|
|
106
|
+
|
|
107
|
+
return 0
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
#
|
|
111
|
+
# @function show_info
|
|
112
|
+
# @context Displays current verbosity level with detailed explanation
|
|
113
|
+
# @architecture Reads current level and provides contextual help
|
|
114
|
+
# @dependencies get_verbosity()
|
|
115
|
+
# @entrypoints Called when no arguments provided
|
|
116
|
+
# @aiNotes Helps users understand what each verbosity level does
|
|
117
|
+
#
|
|
118
|
+
show_info() {
|
|
119
|
+
local current_level
|
|
120
|
+
current_level=$(get_verbosity)
|
|
121
|
+
|
|
122
|
+
echo "🎙️ AgentVibes Verbosity Control"
|
|
123
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
124
|
+
echo "Current level: $current_level"
|
|
125
|
+
echo ""
|
|
126
|
+
echo "Available levels:"
|
|
127
|
+
echo ""
|
|
128
|
+
echo "LOW (Minimal)"
|
|
129
|
+
echo " ✅ Acknowledgments only"
|
|
130
|
+
echo " ✅ Completions only"
|
|
131
|
+
echo " 🔇 No reasoning spoken"
|
|
132
|
+
echo ""
|
|
133
|
+
echo "MEDIUM (Balanced)"
|
|
134
|
+
echo " ✅ Acknowledgments"
|
|
135
|
+
echo " 🤔 Major decisions"
|
|
136
|
+
echo " ✓ Key findings"
|
|
137
|
+
echo " ✅ Completions"
|
|
138
|
+
echo ""
|
|
139
|
+
echo "HIGH (Maximum Transparency)"
|
|
140
|
+
echo " ✅ Acknowledgments"
|
|
141
|
+
echo " 💭 All reasoning"
|
|
142
|
+
echo " 🤔 All decisions"
|
|
143
|
+
echo " ✓ All findings"
|
|
144
|
+
echo " ✅ Completions"
|
|
145
|
+
echo ""
|
|
146
|
+
echo "Usage:"
|
|
147
|
+
echo " $0 get # Show current level"
|
|
148
|
+
echo " $0 set low|medium|high # Change level"
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
# Main execution
|
|
152
|
+
case "$1" in
|
|
153
|
+
get)
|
|
154
|
+
get_verbosity
|
|
155
|
+
;;
|
|
156
|
+
set)
|
|
157
|
+
if [[ -z "$2" ]]; then
|
|
158
|
+
echo "❌ Error: Missing verbosity level"
|
|
159
|
+
echo "Usage: $0 set low|medium|high"
|
|
160
|
+
exit 1
|
|
161
|
+
fi
|
|
162
|
+
set_verbosity "$2"
|
|
163
|
+
;;
|
|
164
|
+
info|"")
|
|
165
|
+
show_info
|
|
166
|
+
;;
|
|
167
|
+
*)
|
|
168
|
+
echo "❌ Unknown command: $1"
|
|
169
|
+
echo "Usage: $0 {get|set|info} [level]"
|
|
170
|
+
exit 1
|
|
171
|
+
;;
|
|
172
|
+
esac
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/home/fire/.claude/piper-voices
|
|
File without changes
|
package/.mcp.json
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"sentry": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": [
|
|
6
|
+
"@sentry/mcp-server@latest",
|
|
7
|
+
"--host=sentry.io"
|
|
8
|
+
],
|
|
9
|
+
"env": {
|
|
10
|
+
"SENTRY_ACCESS_TOKEN": "${SENTRY_ACCESS_TOKEN}",
|
|
11
|
+
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"whatsapp": {
|
|
15
|
+
"command": "/home/fire/.local/bin/uv",
|
|
16
|
+
"args": [
|
|
17
|
+
"--directory",
|
|
18
|
+
"/home/fire/claude/whatsapp-mcp/whatsapp-mcp-server",
|
|
19
|
+
"run",
|
|
20
|
+
"main.py"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"chrome-devtools": {
|
|
24
|
+
"command": "/home/fire/.nvm/versions/node/v22.20.0/bin/npx",
|
|
25
|
+
"args": [
|
|
26
|
+
"chrome-devtools-mcp@latest",
|
|
27
|
+
"--browserUrl=http://localhost:9222"
|
|
28
|
+
],
|
|
29
|
+
"env": {
|
|
30
|
+
"PATH": "/home/fire/.nvm/versions/node/v22.20.0/bin:${PATH}",
|
|
31
|
+
"NODE_PATH": "/home/fire/.nvm/versions/node/v22.20.0/lib/node_modules"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"obsidian": {
|
|
35
|
+
"command": "/home/fire/.local/bin/uv",
|
|
36
|
+
"args": [
|
|
37
|
+
"--directory",
|
|
38
|
+
"/home/fire/claude/mcp_obsidian",
|
|
39
|
+
"run",
|
|
40
|
+
"mcp-obsidian"
|
|
41
|
+
],
|
|
42
|
+
"env": {
|
|
43
|
+
"OBSIDIAN_API_KEY": "${MAIN_VAULT_OBSIDIAN_KEY}",
|
|
44
|
+
"OBSIDIAN_HOST": "${OBSIDIAN_HOST:-127.0.0.1}",
|
|
45
|
+
"OBSIDIAN_PORT": "27124",
|
|
46
|
+
"OBSIDIAN_HTTPS": "true",
|
|
47
|
+
"OBSIDIAN_VERIFY_SSL": "false"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"elevenlabs": {
|
|
51
|
+
"command": "npx",
|
|
52
|
+
"args": ["@microagents/mcp-server-elevenlabs"],
|
|
53
|
+
"env": {
|
|
54
|
+
"ELEVENLABS_API_KEY": "${ELEVENLABS_API_KEY}",
|
|
55
|
+
"ELEVENLABS_MCP_BASE_PATH": "/home/fire/claude/SoraSage/teams/team-10/dev__globify__production/.claude/audio"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"spaceship": {
|
|
59
|
+
"command": "node",
|
|
60
|
+
"args": [
|
|
61
|
+
"/home/fire/claude/spaceship-mcp/dist/index.js"
|
|
62
|
+
],
|
|
63
|
+
"env": {
|
|
64
|
+
"SPACESHIP_API_KEY": "${SPACESHIP_API_KEY}",
|
|
65
|
+
"SPACESHIP_API_SECRET": "${SPACESHIP_API_SECRET}"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"sonarqube": {
|
|
69
|
+
"command": "docker",
|
|
70
|
+
"args": [
|
|
71
|
+
"run",
|
|
72
|
+
"-i",
|
|
73
|
+
"--name",
|
|
74
|
+
"sonarqube-mcp-server-agentvibes",
|
|
75
|
+
"--rm",
|
|
76
|
+
"-e",
|
|
77
|
+
"SONARQUBE_TOKEN",
|
|
78
|
+
"-e",
|
|
79
|
+
"SONARQUBE_ORG",
|
|
80
|
+
"mcp/sonarqube"
|
|
81
|
+
],
|
|
82
|
+
"env": {
|
|
83
|
+
"SONARQUBE_TOKEN": "${AGENTVIBES_SONARQUBE_TOKEN}",
|
|
84
|
+
"SONARQUBE_ORG": "${AGENTVIBES_SONARQUBE_ORG}"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml)
|
|
12
12
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
13
13
|
|
|
14
|
-
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v2.
|
|
14
|
+
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v2.5.0
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -36,6 +36,7 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or using Warp
|
|
|
36
36
|
|
|
37
37
|
### 🎯 Key Features
|
|
38
38
|
|
|
39
|
+
- 🎙️ **Verbosity Control** - **NEW!** Control how much Claude speaks (LOW: minimal, MEDIUM: balanced, HIGH: full transparency)
|
|
39
40
|
- 🎙️ **AgentVibes MCP** - **NEW!** Natural language control for Claude Code, Claude Desktop & Warp (no slash commands!)
|
|
40
41
|
- 📚 **Language Learning Mode** - **NEW!** Learn a second language while you program (e.g., Learn Spanish as you code!)
|
|
41
42
|
- 🔊 **SSH Audio Optimization** - **NEW!** Auto-detects remote sessions and eliminates static (VS Code Remote SSH, cloud dev)
|
|
@@ -68,6 +69,7 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or using Warp
|
|
|
68
69
|
|
|
69
70
|
### Core Features
|
|
70
71
|
- [🎤 Commands Reference](#-commands-reference) - All available commands
|
|
72
|
+
- [🎙️ Verbosity Control](#%EF%B8%8F-verbosity-control) - **NEW!** Control how much Claude speaks (low/medium/high)
|
|
71
73
|
- [📚 Language Learning Mode](#-language-learning-mode) - **NEW!** Learn Spanish while you program
|
|
72
74
|
- [🎭 Personalities vs Sentiments](#-personalities-vs-sentiments) - Two systems explained
|
|
73
75
|
- [🗣️ Voice Library](#%EF%B8%8F-voice-library) - 27+ professional voices
|
|
@@ -92,15 +94,16 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or using Warp
|
|
|
92
94
|
|
|
93
95
|
## 📰 Latest Release
|
|
94
96
|
|
|
95
|
-
**[v2.
|
|
97
|
+
**[v2.5.0 - Verbosity Control System](https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.5.0)** 🎉
|
|
96
98
|
|
|
97
|
-
This
|
|
99
|
+
This minor release introduces intelligent verbosity control - giving you precise control over how much Claude speaks while working.
|
|
98
100
|
|
|
99
101
|
**Key highlights:**
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
102
|
+
- 🎙️ **Verbosity Control** - Three levels: LOW (minimal), MEDIUM (balanced), HIGH (full transparency)
|
|
103
|
+
- 💭 **Emoji Markers** - Uses 💭 🤔 ✓ for automatic TTS detection
|
|
104
|
+
- ⚙️ **Slash Command** - `/agent-vibes:verbosity [low|medium|high]`
|
|
105
|
+
- 🔌 **MCP Integration** - Control via natural language
|
|
106
|
+
- 🎯 **Smart Detection** - No manual Bash calls needed
|
|
104
107
|
|
|
105
108
|
[→ View All Releases](https://github.com/paulpreibisch/AgentVibes/releases)
|
|
106
109
|
|
|
@@ -190,6 +193,51 @@ AgentVibes provides **50+ slash commands** and **natural language MCP equivalent
|
|
|
190
193
|
|
|
191
194
|
---
|
|
192
195
|
|
|
196
|
+
## 🎙️ Verbosity Control
|
|
197
|
+
|
|
198
|
+
**Control how much Claude speaks while working!** 🔊
|
|
199
|
+
|
|
200
|
+
Choose from three verbosity levels:
|
|
201
|
+
|
|
202
|
+
### LOW (Minimal) 🔇
|
|
203
|
+
- Acknowledgments only (start of task)
|
|
204
|
+
- Completions only (end of task)
|
|
205
|
+
- Perfect for quiet work sessions
|
|
206
|
+
|
|
207
|
+
### MEDIUM (Balanced) 🤔
|
|
208
|
+
- Acknowledgments + completions
|
|
209
|
+
- Major decisions ("I'll use grep to search")
|
|
210
|
+
- Key findings ("Found 12 instances")
|
|
211
|
+
- Perfect for understanding decisions without full narration
|
|
212
|
+
|
|
213
|
+
### HIGH (Maximum Transparency) 💭
|
|
214
|
+
- All reasoning ("Let me search for all instances")
|
|
215
|
+
- All decisions ("I'll use grep for this")
|
|
216
|
+
- All findings ("Found it at line 1323")
|
|
217
|
+
- Perfect for learning mode, debugging complex tasks
|
|
218
|
+
|
|
219
|
+
**Quick Commands:**
|
|
220
|
+
```bash
|
|
221
|
+
/agent-vibes:verbosity # Show current level
|
|
222
|
+
/agent-vibes:verbosity high # Maximum transparency
|
|
223
|
+
/agent-vibes:verbosity medium # Balanced
|
|
224
|
+
/agent-vibes:verbosity low # Minimal (default)
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**MCP Equivalent:**
|
|
228
|
+
```
|
|
229
|
+
"Set verbosity to high"
|
|
230
|
+
"What's my current verbosity level?"
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
💡 **How it works:** Claude uses emoji markers (💭 🤔 ✓) in its text, and AgentVibes automatically detects and speaks them based on your verbosity level. No manual TTS calls needed!
|
|
234
|
+
|
|
235
|
+
⚠️ **Note:** Changes take effect on next Claude Code session restart.
|
|
236
|
+
|
|
237
|
+
[↑ Back to top](#-table-of-contents)
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
193
241
|
## 📚 Language Learning Mode
|
|
194
242
|
|
|
195
243
|
**🎯 Learn Spanish (or 30+ languages) while you program!** 🌍
|