Initial commit
This commit is contained in:
12
.claude-plugin/plugin.json
Normal file
12
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "mcp-voice-hooks-plugin",
|
||||
"description": "Real-time voice interaction for Claude Code. Speak naturally while Claude works - interrupt, redirect, or provide continuous feedback without stopping.",
|
||||
"version": "1.0.40",
|
||||
"author": {
|
||||
"name": "John Matthew Tennant",
|
||||
"url": "https://github.com/johnmatthewtennant"
|
||||
},
|
||||
"hooks": [
|
||||
"./hooks"
|
||||
]
|
||||
}
|
||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# mcp-voice-hooks-plugin
|
||||
|
||||
Real-time voice interaction for Claude Code. Speak naturally while Claude works - interrupt, redirect, or provide continuous feedback without stopping.
|
||||
37
hooks/hooks.json
Normal file
37
hooks/hooks.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"hooks": {
|
||||
"Stop": [
|
||||
{
|
||||
"matcher": "",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "curl -s -X POST \"http://localhost:${MCP_VOICE_HOOKS_PORT:-5111}/api/hooks/stop\" || echo '{}'"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"PreToolUse": [
|
||||
{
|
||||
"matcher": "_voice-hooks__speak$",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "curl -s -X POST \"http://localhost:${MCP_VOICE_HOOKS_PORT:-5111}/api/hooks/pre-speak\" || echo '{}'"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"PostToolUse": [
|
||||
{
|
||||
"matcher": "^(?!.*_voice-hooks__)",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "curl -s -X POST \"http://localhost:${MCP_VOICE_HOOKS_PORT:-5111}/api/hooks/post-tool\" || echo '{}'"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
45
plugin.lock.json
Normal file
45
plugin.lock.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||
"pluginId": "gh:johnmatthewtennant/mcp-voice-hooks:plugin",
|
||||
"normalized": {
|
||||
"repo": null,
|
||||
"ref": "refs/tags/v20251128.0",
|
||||
"commit": "440fc2efefa74b5fa5509e735020f9a0e2e975be",
|
||||
"treeHash": "7e755719d0274a495c01994048bb5e400d6e678a2dba0d3c1e052d0655a3b5a4",
|
||||
"generatedAt": "2025-11-28T10:19:18.299532Z",
|
||||
"toolVersion": "publish_plugins.py@0.2.0"
|
||||
},
|
||||
"origin": {
|
||||
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||
"branch": "master",
|
||||
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||
},
|
||||
"manifest": {
|
||||
"name": "mcp-voice-hooks-plugin",
|
||||
"description": "Real-time voice interaction for Claude Code. Speak naturally while Claude works - interrupt, redirect, or provide continuous feedback without stopping.",
|
||||
"version": "1.0.40"
|
||||
},
|
||||
"content": {
|
||||
"files": [
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "f6cf6637f41bc4de7ad340adf11c53aa65add49f93fbebf001b7bce11d9d5ca7"
|
||||
},
|
||||
{
|
||||
"path": "hooks/hooks.json",
|
||||
"sha256": "7f091bfe25f7e4c6a1730ada218a025e53bc8860ee0e2e30de760551373159f5"
|
||||
},
|
||||
{
|
||||
"path": ".claude-plugin/plugin.json",
|
||||
"sha256": "84dc34c96a7b4e76090408a4de129e250575af116fca2934c70d1d62253487f2"
|
||||
}
|
||||
],
|
||||
"dirSha256": "7e755719d0274a495c01994048bb5e400d6e678a2dba0d3c1e052d0655a3b5a4"
|
||||
},
|
||||
"security": {
|
||||
"scannedAt": null,
|
||||
"scannerVersion": null,
|
||||
"flags": []
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user