verbalcoding 0.2.6 → 0.2.8

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.
Files changed (44) hide show
  1. package/README.md +12 -22
  2. package/app-node/cli_install.test.mjs +15 -0
  3. package/docs/FRESH_INSTALL.md +8 -2
  4. package/docs/assets/figures/verbalcoding-flow.svg +45 -30
  5. package/docs/i18n/CONFIGURATION.es.md +239 -0
  6. package/docs/i18n/CONFIGURATION.fr.md +239 -0
  7. package/docs/i18n/CONFIGURATION.ja.md +239 -0
  8. package/docs/i18n/CONFIGURATION.ko.md +66 -74
  9. package/docs/i18n/CONFIGURATION.ru.md +239 -0
  10. package/docs/i18n/CONFIGURATION.zh.md +239 -0
  11. package/docs/i18n/FRESH_INSTALL.es.md +207 -0
  12. package/docs/i18n/FRESH_INSTALL.fr.md +207 -0
  13. package/docs/i18n/FRESH_INSTALL.ja.md +207 -0
  14. package/docs/i18n/FRESH_INSTALL.ko.md +60 -54
  15. package/docs/i18n/FRESH_INSTALL.ru.md +207 -0
  16. package/docs/i18n/FRESH_INSTALL.zh.md +207 -0
  17. package/docs/i18n/MULTI_INSTANCE.es.md +180 -0
  18. package/docs/i18n/MULTI_INSTANCE.fr.md +180 -0
  19. package/docs/i18n/MULTI_INSTANCE.ja.md +179 -0
  20. package/docs/i18n/MULTI_INSTANCE.ko.md +46 -46
  21. package/docs/i18n/MULTI_INSTANCE.ru.md +179 -0
  22. package/docs/i18n/MULTI_INSTANCE.zh.md +179 -0
  23. package/docs/i18n/README.es.md +83 -55
  24. package/docs/i18n/README.fr.md +85 -57
  25. package/docs/i18n/README.ja.md +83 -55
  26. package/docs/i18n/README.ko.md +47 -56
  27. package/docs/i18n/README.ru.md +86 -58
  28. package/docs/i18n/README.zh.md +83 -56
  29. package/docs/i18n/RELEASE.es.md +74 -0
  30. package/docs/i18n/RELEASE.fr.md +74 -0
  31. package/docs/i18n/RELEASE.ja.md +74 -0
  32. package/docs/i18n/RELEASE.ko.md +38 -36
  33. package/docs/i18n/RELEASE.ru.md +74 -0
  34. package/docs/i18n/RELEASE.zh.md +74 -0
  35. package/docs/i18n/USAGE.es.md +161 -0
  36. package/docs/i18n/USAGE.fr.md +161 -0
  37. package/docs/i18n/USAGE.ja.md +161 -0
  38. package/docs/i18n/USAGE.ko.md +61 -72
  39. package/docs/i18n/USAGE.ru.md +161 -0
  40. package/docs/i18n/USAGE.zh.md +161 -0
  41. package/package.json +1 -1
  42. package/scripts/bootstrap_prereqs.sh +15 -3
  43. package/scripts/cli.mjs +1 -1
  44. package/scripts/doctor.mjs +114 -8
@@ -0,0 +1,179 @@
1
+ # 多实例 VerbalCoding
2
+
3
+ VerbalCoding 可以运行多个相互独立的 Discord 语音桥接进程。每个进程仍然是现有的单实例 Node 桥接,但会加载不同的 `instances/<name>.env` 文件,并使用不同的 Discord 机器人令牌。
4
+
5
+ 当每个项目都应长期占用自己的 Discord 语音频道,并写入自己的转写频道/thread 时,请使用此模式。
6
+
7
+ ## 为什么需要多个机器人令牌
8
+
9
+ Discord 语音驻留实际上是每个机器人账号在每个 guild 中只能有一个活动语音连接。如果一个机器人令牌加入同一 guild 中的另一个语音频道,它就无法同时永久保持连接到先前的频道。若要同时使用多个项目房间,请为每个项目创建一个 Discord 应用/机器人。
10
+
11
+ ## 文件布局
12
+
13
+ ```text
14
+ instances/
15
+ README.md
16
+ example.env
17
+ llm-wiki.env # 仅本地,git 忽略
18
+ verbalcoding.env # 仅本地,git 忽略
19
+ .run/instances/
20
+ llm-wiki.pid # 仅运行时,git 忽略
21
+ ```
22
+
23
+ 真实的 `instances/*.env` 文件会被忽略,因为它们可能包含 Discord 令牌。`instances/example.env` 是已提交的模板。
24
+
25
+ ## 实例设置向导
26
+
27
+ 正常使用时,用户不应复制并手动编辑 env 文件。请运行向导:
28
+
29
+ ```bash
30
+ vc instance setup llm-wiki
31
+ # 或通过项目设置脚本:
32
+ ./scripts/install.sh --instance llm-wiki
33
+ ```
34
+
35
+ 向导会提示输入机器人令牌、Discord Application/Client ID、语音频道、转写目标、workdir、项目上下文和隔离的运行时路径。它会以 `0600` 模式写入 `instances/<name>.env`,在覆盖现有文件前先备份,并打印下一步 start/status 命令。
36
+
37
+ 如果你在设置期间输入 Discord Application/Client ID,摘要也会打印该机器人的邀请 URL。你可以随时用以下命令生成同一 URL:
38
+
39
+ ```bash
40
+ vc bot invite <client-id>
41
+ vc bot invite <client-id> --guild <guild-id>
42
+ ```
43
+
44
+ Discord 仍然要求每个同时存在的语音房间都有一个 Developer Portal 应用/机器人,但这可以避免手动构造 OAuth URL 或权限整数。
45
+
46
+ ### Hermes profile 隔离
47
+
48
+ 每个实例都会在 `~/.hermes/profiles/<name>` 获得自己的 Hermes home,因此 memory、MEMORY.md、SOUL.md 和已学习 skills 不会在项目之间泄漏。
49
+
50
+ `vc instance setup <name>` 会自动:
51
+
52
+ - 运行 `hermes profile create <name> --clone-from default`(从当前 `~/.hermes` 带入 API keys 和模型;会话与记忆从空白开始),
53
+ - 将新 profile 的 `terminal.cwd` 设置为实例 workdir,
54
+ - 使用向导中的项目上下文答案初始化 `<profile>/SOUL.md`,
55
+ - 将 `HERMES_HOME=...` 写入 `instances/<name>.env`。
56
+
57
+ `vc instance start <name>` 会自愈:如果 env 指向的 Hermes profile 目录不再存在,start 命令会在启动前重新创建它。
58
+
59
+ 实例名称必须匹配 `^[a-z0-9][a-z0-9_-]{0,63}$`,因为 Hermes 会将该名称用作目录和配置键。
60
+
61
+ ## 最小生成实例 env
62
+
63
+ ```env
64
+ INSTANCE_NAME=my-project
65
+ DISCORD_TOKEN=replac...oken
66
+ DISCORD_CLIENT_ID=123456789012345678
67
+ AUTO_JOIN_VOICE_CHANNELS=Project Room
68
+ TRANSCRIPT_CHANNEL_ID=123456789012345678
69
+ PROJECT_SESSIONS_FILE=config/project-sessions.my-project.json
70
+ BRIDGE_LOG_PATH=/tmp/verbalcoding-my-project.log
71
+ NODE_AUDIO_DEBUG_DIR=/tmp/verbalcoding-my-project-debug
72
+ HERMES_SESSION_FILE=.agent-sessions/hermes/my-project.session
73
+ HERMES_HOME=/home/you/.hermes/profiles/my-project
74
+ AGENT_LABEL=VerbalCoding · My Project
75
+ AGENT_CWD=/path/to/my-project
76
+ AGENT_PROJECT_CONTEXT=Project session: My Project
77
+ ```
78
+
79
+ 请为每个实例提供唯一的日志/debug/会话文件值。`HERMES_HOME` 和匹配的 `~/.hermes/profiles/<name>` 目录会由 `vc instance setup` 自动创建。`vc doctor` 会检查重复令牌、冲突的运行时路径、缺失的 profile 目录,以及 profile 与实例之间的 `terminal.cwd` 不匹配——且不会打印密钥。
80
+
81
+ ## 命令
82
+
83
+ ```bash
84
+ vc instance list
85
+ vc instance status
86
+ vc instance status my-project
87
+ vc instance start my-project
88
+ vc instance stop my-project
89
+ vc instance restart my-project
90
+ ```
91
+
92
+ `start` 会分离运行 `./run.sh instances/<name>.env`,并写入 `.run/instances/<name>.pid`。
93
+
94
+ `stop` 会发送 `SIGTERM`,最多等待 10 秒,然后回退到 `SIGKILL` 并移除 pid 文件。
95
+
96
+ ## 示例:两个长期语音房间
97
+
98
+ 1. 创建两个 Discord 应用/机器人:
99
+ - VerbalCoding bot
100
+ - LLM-Wiki bot
101
+
102
+ 2. 使用文本和语音权限邀请两者加入服务器:
103
+ - View Channel
104
+ - Send Messages
105
+ - Send Messages in Threads
106
+ - Read Message History
107
+ - Use Application Commands
108
+ - Connect
109
+ - Speak
110
+
111
+ 创建每个 Discord 应用后,使用 `vc bot invite <client-id>` 打印带这些权限的精确邀请 URL。
112
+
113
+ 3. 为每个本地实例运行设置向导:
114
+
115
+ ```bash
116
+ vc instance setup verbalcoding
117
+ vc instance setup llm-wiki
118
+ ```
119
+
120
+ 向导会以 `0600` 模式写入被忽略的 `instances/verbalcoding.env` 和 `instances/llm-wiki.env` 文件;它还会在替换前备份现有实例 env。每次运行还会从你的默认 Hermes home 克隆创建 `~/.hermes/profiles/<name>`,因此两个实例起始时具有相同 auth/model,但随着学习各自项目,会累积独立的记忆和 skills。
121
+
122
+ 4. 检查配置:
123
+
124
+ ```bash
125
+ vc doctor
126
+ ```
127
+
128
+ 5. 启动两者:
129
+
130
+ ```bash
131
+ vc instance start verbalcoding
132
+ vc instance start llm-wiki
133
+ vc instance status
134
+ ```
135
+
136
+ 6. 验证日志:
137
+
138
+ ```bash
139
+ tail -n 50 /tmp/verbalcoding-verbalcoding.log
140
+ tail -n 50 /tmp/verbalcoding-llm-wiki.log
141
+ ```
142
+
143
+ 预期日志行:
144
+
145
+ ```text
146
+ Listening in voice channel ... / VerbalCoding
147
+ Listening in voice channel ... / LLM-Wiki
148
+ ```
149
+
150
+ 7. 停止两者:
151
+
152
+ ```bash
153
+ vc instance stop verbalcoding
154
+ vc instance stop llm-wiki
155
+ ```
156
+
157
+ ## 短期单机器人文本/语音绑定
158
+
159
+ 如果你只有一个机器人令牌,请使用项目会话语音绑定,而不是同时驻留多个频道。
160
+
161
+ 在目标文本频道/thread 中运行:
162
+
163
+ ```text
164
+ !session attach-voice --voice "LLM-Wiki"
165
+ ```
166
+
167
+ 行为:
168
+
169
+ - 将所选语音频道绑定到当前文本频道/thread。
170
+ - 如果当前文本频道没有项目会话,则创建一个临时隔离会话。
171
+ - 语音 STT/结果/进度/最终答案文本会路由到该活动项目的转写目标。
172
+
173
+ 若要附加现有命名项目会话:
174
+
175
+ ```text
176
+ !session voice llm-wiki --voice "LLM-Wiki"
177
+ ```
178
+
179
+ 这对路由很方便,但不会让一个机器人同时停留在两个语音频道中。若要同时长期驻留,请使用多个机器人令牌/进程。
@@ -1,7 +1,7 @@
1
1
  # VerbalCoding
2
2
 
3
3
  <p align="center">
4
- <strong>Habla con tus agentes de programación CLI por voz en Discord, como en una llamada.</strong>
4
+ <strong>Habla con tus agentes de programación CLI por voz en Discord, como una llamada telefónica para trabajo de software.</strong>
5
5
  </p>
6
6
 
7
7
  <p align="center">
@@ -19,103 +19,131 @@
19
19
  <img alt="Discord" src="https://img.shields.io/badge/Discord-voice%20bridge-5865F2?logo=discord&logoColor=white">
20
20
  <img alt="STT" src="https://img.shields.io/badge/STT-whisper.cpp-7C3AED">
21
21
  <img alt="TTS" src="https://img.shields.io/badge/TTS-Edge%20%7C%20OpenVoice%20%7C%20Supertonic%20%7C%20SpeechSwift-0EA5E9">
22
+ <img alt="Agents" src="https://img.shields.io/badge/Agents-Hermes%20%7C%20Claude%20%7C%20Codex%20%7C%20Gemini%20%7C%20OpenCode-111827">
22
23
  </p>
23
24
 
24
25
  <p align="center">
25
- <img src="../assets/figures/verbalcoding-flow.svg" alt="VerbalCoding voice-to-agent flow" width="860">
26
+ <img src="../assets/figures/verbalcoding-flow.svg" alt="Flujo de voz a agente de VerbalCoding" width="860">
26
27
  </p>
27
28
 
28
- ## Why
29
+ ## Por qué
29
30
 
30
- VerbalCoding convierte un canal de voz de Discord en una superficie manos libres para agentes de programación. Di una petición, deja que el agente CLI trabaje y escucha una respuesta concisa, con transcripciones, eventos de progreso y protecciones para no leer código o logs interminables.
31
+ VerbalCoding convierte un canal de voz de Discord en una superficie de control manos libres para agentes de programación. Di una solicitud, deja que tu agente CLI trabaje y escucha una respuesta concisa de vuelta, con transcripciones de texto, eventos de progreso y protecciones para salidas ruidosas de código o registros.
31
32
 
32
- ## Puntos clave
33
+ ## Puntos destacados
33
34
 
34
- | Qué ofrece | Por qué importa |
35
+ | Qué obtienes | Por qué se siente bien |
35
36
  |---|---|
36
- | Control por voz primero | Controla Hermes Agent, Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw o cualquier CLI propia con la voz. |
37
- | Bucle de voz local-first | Voz de Discord → STT `whisper.cpp` → agente → reproducción TTS por fragmentos. |
38
- | Contexto compartido voz + texto | Los turnos de voz y `!ask` pueden reutilizar la misma sesión del agente compatible. |
39
- | Interrupciones y sensibilidad | Interrumpe la reproducción de forma natural y cambia entre sensibilidad normal o conservadora. |
40
- | Preajustes multilingües | `vc language ko/en/auto` cambia STT, idioma de progreso y voz TTS a la vez. |
41
- | Aislamiento por proyecto | Un bot, perfil Hermes, sesión, memoria y logs por sala/proyecto. |
37
+ | Control de agentes con voz primero | Habla con Hermes Agent, Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw o cualquier arnés CLI personalizado. |
38
+ | Bucle de voz en el dispositivo | Captura de voz de Discord → transcripción local con `whisper-cli` → agente → reproducción TTS por fragmentos. |
39
+ | Contexto compartido de voz y texto | Los turnos de voz y los comandos de texto `!ask` pueden reutilizar la misma sesión de agente compatible. |
40
+ | Interrupción natural y modos de sensibilidad | Interrumpe la reproducción de forma natural y cambia entre entornos normales y conservadores/ruidosos. |
41
+ | Preajustes de voz multilingües | Cambia STT, idioma de progreso y voz TTS juntos con `vc language ko/en/auto`. |
42
+ | Aislamiento de proyectos por salas | Ejecuta un bot por sala de proyecto con perfiles, sesiones, memoria y registros de Hermes aislados. |
42
43
 
43
44
  ## Inicio rápido
44
45
 
46
+ Ruta más rápida con npm:
47
+
48
+ ```bash
49
+ npm install -g verbalcoding
50
+ vc setup --yes
51
+ vc doctor
52
+ vc start
53
+ ```
54
+
55
+ O ejecútalo directamente sin una instalación global permanente:
56
+
57
+ ```bash
58
+ npx verbalcoding setup --yes
59
+ vc doctor
60
+ vc start
61
+ ```
62
+
63
+ Ruta de clonación de GitHub para colaboradores:
64
+
45
65
  ```bash
46
- git clone git@github.com:ca1773130n/VerbalCoding.git
66
+ git clone https://github.com/ca1773130n/VerbalCoding.git
47
67
  cd VerbalCoding
48
- ./scripts/install.sh
68
+ ./scripts/install.sh --yes
49
69
  vc doctor
50
70
  ./run.sh
51
71
  ```
52
72
 
53
- ## Cómo funciona
54
-
55
- ```mermaid
56
- flowchart LR
57
- A[Discord voice] --> B["@discordjs/voice"]
58
- B --> C[PCM cleanup + gates]
59
- C --> D["whisper.cpp STT"]
60
- D --> E["CLI agent adapter"]
61
- E --> F["Concise answer"]
62
- F --> G["Chunked TTS"]
63
- G --> H["Discord playback"]
64
- ```
73
+ `vc setup --yes` inicializa los prerrequisitos locales desde el paquete npm instalado. `./scripts/install.sh --yes` hace lo mismo solo dentro de un clon de GitHub. Ambos cubren, cuando es posible, dependencias de Node/npm, `ffmpeg`, `whisper-cli`, el modelo predeterminado de whisper.cpp, el asistente local de Edge TTS en `.venv-tts` y la configuración del asistente. Admiten macOS/Homebrew y administradores de paquetes comunes de Linux (`apt`, `dnf`, `pacman`); vuelve a ejecutar con `--no-wizard` para configurar solo dependencias o con `--skip-system` si quieres instalar los paquetes del sistema por tu cuenta.
74
+
75
+ ¿Necesitas un recorrido de instalación limpia? Empieza con [Instalación limpia](FRESH_INSTALL.es.md).
65
76
 
66
77
  ## Backends de agentes compatibles
67
78
 
68
- | Backend | Default command | Session support |
79
+ | Backend | Comando predeterminado | Soporte de sesión |
69
80
  |---|---:|---|
70
- | Hermes Agent | `hermes chat -Q -q` | Resume, verbose progress, cancellation, final-answer recovery |
71
- | Claude Code | `claude -p` | CLI session file support through adapter defaults |
72
- | Codex CLI | `codex exec` | CLI session file support through adapter defaults |
73
- | Gemini CLI | `gemini -p` | CLI session file support through adapter defaults |
74
- | OpenCode | `opencode run` | CLI session file support through adapter defaults |
75
- | OpenClaw | `openclaw run` | CLI session file support through adapter defaults |
76
- | Custom | `AGENT_COMMAND` | Bring your own non-interactive command |
81
+ | Hermes Agent | `hermes chat -Q -q` | Reanudación, progreso detallado, cancelación, recuperación de respuesta final |
82
+ | Claude Code | `claude -p` | Soporte de archivo de sesión CLI mediante los valores predeterminados del adaptador |
83
+ | Codex CLI | `codex exec` | Soporte de archivo de sesión CLI mediante los valores predeterminados del adaptador |
84
+ | Gemini CLI | `gemini -p` | Soporte de archivo de sesión CLI mediante los valores predeterminados del adaptador |
85
+ | OpenCode | `opencode run` | Soporte de archivo de sesión CLI mediante los valores predeterminados del adaptador |
86
+ | OpenClaw | `openclaw run` | Soporte de archivo de sesión CLI mediante los valores predeterminados del adaptador |
87
+ | Personalizado | `AGENT_COMMAND` | Usa tu propio comando no interactivo |
77
88
 
78
89
  ## Aprende más
79
90
 
80
- | Guide | What you get |
91
+ | Guía | Qué obtienes |
81
92
  |---|---|
82
- | [Fresh Install](../FRESH_INSTALL.md) | Instalación desde cero, descarga del modelo y primera ejecución |
83
- | [Usage Guide](../USAGE.md) | Comandos CLI, comandos de Discord, progreso y métricas de latencia |
84
- | [Configuration](../CONFIGURATION.md) | .env, backends de agente, MCP, TTS y notas operativas |
85
- | [Multi-Instance](../MULTI_INSTANCE.md) | Una sala de voz persistente por proyecto |
86
- | [Release Notes](../RELEASE.md) | Capacidades actuales y checklist previo al lanzamiento |
93
+ | [Instalación limpia](FRESH_INSTALL.es.md) | Configuración desde un clon limpio, descarga del modelo y primera ejecución |
94
+ | [Guía de uso](USAGE.es.md) | Comandos CLI, comandos de Discord, modo de progreso y métricas de latencia |
95
+ | [Configuración](CONFIGURATION.es.md) | `.env`, backends de agente, MCP, backends TTS y notas operativas |
96
+ | [Multiinstancia](MULTI_INSTANCE.es.md) | Una sala de voz permanente de Discord por proyecto |
97
+ | [Notas de versión](RELEASE.es.md) | Capacidades actuales y lista de verificación previa al lanzamiento |
87
98
 
88
- ## Mapa rápido de comandos
99
+ ## Mapa mínimo de comandos
89
100
 
90
101
  ```bash
91
- vc status
92
- vc language ko|en|auto
93
- vc bot invite CLIENT_ID
94
- vc instance setup NAME
95
- vc instance start NAME
96
- vc doctor
102
+ vc status # current language, TTS, and bridge settings
103
+ vc language ko|en|auto # switch STT/progress/TTS language preset
104
+ vc bot invite CLIENT_ID # generate the Discord bot invite URL
105
+ vc instance setup NAME # create an isolated project voice bot
106
+ vc instance start NAME # run that bot in the background
107
+ vc doctor # redacted health check
108
+ vc start # start the default bridge
97
109
  ```
98
110
 
111
+ En Discord:
112
+
113
+ | Comando | Qué hace |
114
+ |---|---|
115
+ | `!join` | Se une a tu canal de voz actual. |
116
+ | `!ask <prompt>` | Envía texto al mismo backend de agente. |
117
+ | `!verbose on\|off` | Muestra/dice actualizaciones cortas de progreso. |
118
+ | `!latency` | Resume la latencia reciente de voz/STT/agente/TTS. |
119
+ | `!sensitivity normal` | Usa sensibilidad normal de interrupción para interiores. |
120
+ | `!sensitivity conservative` | Usa sensibilidad más estricta para entornos ruidosos/exteriores. |
121
+ | `!session new <name> <workdir> [context] --voice <voice-channel>` | Vincula una sesión de proyecto a una sala de voz. |
122
+
99
123
  ## Requisitos
100
124
 
101
- | Layer | Default |
125
+ | Capa | Predeterminado |
102
126
  |---|---|
103
- | Runtime | Node.js 20+, npm |
104
- | Audio | `ffmpeg` |
105
- | STT | `whisper.cpp` / `whisper-cli` |
106
- | Discord | Bot token, Message Content intent, voice permissions |
107
- | Agent | At least one authenticated CLI harness, Hermes Agent by default |
108
- | Platform focus | macOS / Apple Silicon currently gets the most testing |
127
+ | Runtime | Node.js 20+, npm; el script de instalación puede instalar vía Homebrew/apt/dnf/pacman |
128
+ | Audio | `ffmpeg`; el script de instalación puede instalarlo |
129
+ | Reconocimiento de voz | `whisper-cli` local de whisper.cpp; el script usa Homebrew en macOS o compilación local alternativa en Linux |
130
+ | TTS | CLI de Edge TTS; el script de instalación crea `.venv-tts` si hace falta |
131
+ | Discord | Token de bot, intent Message Content, permisos de voz |
132
+ | Agente | Al menos un arnés CLI autenticado, Hermes Agent por defecto |
133
+ | Enfoque de plataforma | macOS / Apple Silicon es lo más probado; el arranque de Linux es de mejor esfuerzo y está documentado |
109
134
 
110
135
  ## Contribuir
111
136
 
137
+ Ejecuta las comprobaciones ligeras antes de enviar cambios:
138
+
112
139
  ```bash
113
140
  node --check app-node/main.mjs
114
141
  npm test
115
142
  bash -n run.sh scripts/install.sh
143
+ npm pack --dry-run
116
144
  vc doctor
117
145
  ```
118
146
 
119
147
  ## Estado
120
148
 
121
- VerbalCoding is public-release oriented but still early. Demo video/GIF, broader Linux notes, and a formal license file are still TODOs.
149
+ VerbalCoding está orientado al lanzamiento público, pero aún es temprano. Video/GIF de demostración, validación más amplia en Linux, CI y una revisión de seguridad más profunda siguen pendientes.
@@ -1,7 +1,7 @@
1
1
  # VerbalCoding
2
2
 
3
3
  <p align="center">
4
- <strong>Pilotez vos agents de code CLI à la voix dans Discord, comme au téléphone.</strong>
4
+ <strong>Parlez à vos agents de codage CLI via la voix Discord comme un appel téléphonique pour le travail logiciel.</strong>
5
5
  </p>
6
6
 
7
7
  <p align="center">
@@ -19,103 +19,131 @@
19
19
  <img alt="Discord" src="https://img.shields.io/badge/Discord-voice%20bridge-5865F2?logo=discord&logoColor=white">
20
20
  <img alt="STT" src="https://img.shields.io/badge/STT-whisper.cpp-7C3AED">
21
21
  <img alt="TTS" src="https://img.shields.io/badge/TTS-Edge%20%7C%20OpenVoice%20%7C%20Supertonic%20%7C%20SpeechSwift-0EA5E9">
22
+ <img alt="Agents" src="https://img.shields.io/badge/Agents-Hermes%20%7C%20Claude%20%7C%20Codex%20%7C%20Gemini%20%7C%20OpenCode-111827">
22
23
  </p>
23
24
 
24
25
  <p align="center">
25
- <img src="../assets/figures/verbalcoding-flow.svg" alt="VerbalCoding voice-to-agent flow" width="860">
26
+ <img src="../assets/figures/verbalcoding-flow.svg" alt="Flux voix-vers-agent de VerbalCoding" width="860">
26
27
  </p>
27
28
 
28
- ## Why
29
+ ## Pourquoi
29
30
 
30
- VerbalCoding transforme un salon vocal Discord en interface mains libres pour agents de code. Dictez une demande, laissez le CLI travailler, puis écoutez une réponse concise — avec transcription texte, événements de progression et garde-fous pour éviter de lire de longs blocs de code ou logs.
31
+ VerbalCoding transforme un salon vocal Discord en surface de contrôle mains libres pour agents de codage. Énoncez une demande, laissez votre agent CLI travailler, puis écoutez une réponse concise — avec transcriptions texte, événements de progression et garde-fous pour les sorties de code/journaux bruyantes.
31
32
 
32
33
  ## Points forts
33
34
 
34
- | Fonction | Pourquoi cest utile |
35
+ | Ce que vous obtenez | Pourquoi c'est agréable |
35
36
  |---|---|
36
- | Contrôle vocal d’abord | Pilotez Hermes Agent, Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw ou un CLI personnalisé à la voix. |
37
- | Boucle vocale locale | Voix Discord → STT `whisper.cpp` → agent → lecture TTS par segments. |
38
- | Contexte partagé voix + texte | Les tours vocaux et `!ask` peuvent réutiliser la même session dagent compatible. |
39
- | Interruption et sensibilité | Interrompez naturellement la lecture et basculez entre sensibilité normale ou conservatrice. |
40
- | Préréglages vocaux multilingues | `vc language ko/en/auto` change ensemble STT, langue de progression et voix TTS. |
41
- | Isolation par projet | Un bot, profil Hermes, session, mémoire et logs par salon/projet. |
37
+ | Contrôle d'agent pensé pour la voix | Parlez à Hermes Agent, Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw ou à n'importe quel harnais CLI personnalisé. |
38
+ | Boucle vocale sur l'appareil | Capture vocale Discord → transcription locale `whisper-cli` → agent → lecture TTS par morceaux. |
39
+ | Contexte partagé voix + texte | Les tours vocaux et les commandes texte `!ask` peuvent réutiliser la même session d'agent prise en charge. |
40
+ | Interruption et modes de sensibilité | Interrompez naturellement la lecture et basculez entre environnements normaux et conservateurs/bruyants. |
41
+ | Préréglages vocaux multilingues | Changez ensemble la langue STT, la langue de progression et la voix TTS avec `vc language ko/en/auto`. |
42
+ | Isolation multi-salons par projet | Lancez un bot par salon de projet avec profils Hermes, sessions, mémoire et journaux isolés. |
42
43
 
43
44
  ## Démarrage rapide
44
45
 
46
+ Chemin le plus rapide avec npm :
47
+
48
+ ```bash
49
+ npm install -g verbalcoding
50
+ vc setup --yes
51
+ vc doctor
52
+ vc start
53
+ ```
54
+
55
+ Ou exécutez directement sans installation globale permanente :
56
+
57
+ ```bash
58
+ npx verbalcoding setup --yes
59
+ vc doctor
60
+ vc start
61
+ ```
62
+
63
+ Chemin de clonage GitHub pour les contributeurs :
64
+
45
65
  ```bash
46
- git clone git@github.com:ca1773130n/VerbalCoding.git
66
+ git clone https://github.com/ca1773130n/VerbalCoding.git
47
67
  cd VerbalCoding
48
- ./scripts/install.sh
68
+ ./scripts/install.sh --yes
49
69
  vc doctor
50
70
  ./run.sh
51
71
  ```
52
72
 
53
- ## Fonctionnement
54
-
55
- ```mermaid
56
- flowchart LR
57
- A[Discord voice] --> B["@discordjs/voice"]
58
- B --> C[PCM cleanup + gates]
59
- C --> D["whisper.cpp STT"]
60
- D --> E["CLI agent adapter"]
61
- E --> F["Concise answer"]
62
- F --> G["Chunked TTS"]
63
- G --> H["Discord playback"]
64
- ```
73
+ `vc setup --yes` amorce les prérequis locaux depuis le paquet npm installé. `./scripts/install.sh --yes` fait la même chose uniquement dans un clone GitHub. Les deux couvrent, quand c'est possible, les dépendances Node/npm, `ffmpeg`, `whisper-cli`, le modèle whisper.cpp par défaut, l'assistant Edge TTS local `.venv-tts` et la configuration par assistant. Ils prennent en charge macOS/Homebrew ainsi que les gestionnaires de paquets Linux courants (`apt`, `dnf`, `pacman`) ; relancez avec `--no-wizard` pour une configuration limitée aux dépendances ou `--skip-system` si vous voulez installer vous-même les paquets du système.
65
74
 
66
- ## Backends d’agents pris en charge
75
+ Besoin d'une procédure d'installation propre ? Commencez par [Installation propre](FRESH_INSTALL.fr.md).
67
76
 
68
- | Backend | Default command | Session support |
77
+ ## Backends d'agents pris en charge
78
+
79
+ | Backend | Commande par défaut | Prise en charge des sessions |
69
80
  |---|---:|---|
70
- | Hermes Agent | `hermes chat -Q -q` | Resume, verbose progress, cancellation, final-answer recovery |
71
- | Claude Code | `claude -p` | CLI session file support through adapter defaults |
72
- | Codex CLI | `codex exec` | CLI session file support through adapter defaults |
73
- | Gemini CLI | `gemini -p` | CLI session file support through adapter defaults |
74
- | OpenCode | `opencode run` | CLI session file support through adapter defaults |
75
- | OpenClaw | `openclaw run` | CLI session file support through adapter defaults |
76
- | Custom | `AGENT_COMMAND` | Bring your own non-interactive command |
81
+ | Hermes Agent | `hermes chat -Q -q` | Reprise, progression détaillée, annulation, récupération de la réponse finale |
82
+ | Claude Code | `claude -p` | Prise en charge du fichier de session CLI via les valeurs par défaut de l'adaptateur |
83
+ | Codex CLI | `codex exec` | Prise en charge du fichier de session CLI via les valeurs par défaut de l'adaptateur |
84
+ | Gemini CLI | `gemini -p` | Prise en charge du fichier de session CLI via les valeurs par défaut de l'adaptateur |
85
+ | OpenCode | `opencode run` | Prise en charge du fichier de session CLI via les valeurs par défaut de l'adaptateur |
86
+ | OpenClaw | `openclaw run` | Prise en charge du fichier de session CLI via les valeurs par défaut de l'adaptateur |
87
+ | Personnalisé | `AGENT_COMMAND` | Apportez votre propre commande non interactive |
77
88
 
78
89
  ## En savoir plus
79
90
 
80
- | Guide | What you get |
91
+ | Guide | Ce que vous obtenez |
81
92
  |---|---|
82
- | [Fresh Install](../FRESH_INSTALL.md) | Installation propre, téléchargement du modèle, premier lancement |
83
- | [Usage Guide](../USAGE.md) | Commandes CLI, commandes Discord, progression, métriques de latence |
84
- | [Configuration](../CONFIGURATION.md) | .env, backends agent, MCP, TTS et notes dexploitation |
85
- | [Multi-Instance](../MULTI_INSTANCE.md) | Un salon vocal Discord permanent par projet |
86
- | [Release Notes](../RELEASE.md) | Fonctionnalités actuelles et checklist pré-release |
93
+ | [Installation propre](FRESH_INSTALL.fr.md) | Configuration depuis un clone propre, téléchargement du modèle, premier lancement |
94
+ | [Guide d'utilisation](USAGE.fr.md) | Commandes CLI, commandes Discord, mode progression, métriques de latence |
95
+ | [Configuration](CONFIGURATION.fr.md) | `.env`, backends d'agents, MCP, backends TTS, notes d'exploitation |
96
+ | [Multi-instance](MULTI_INSTANCE.fr.md) | Un salon vocal Discord permanent par projet |
97
+ | [Notes de version](RELEASE.fr.md) | Capacités actuelles et checklist de pré-version |
87
98
 
88
- ## Mini carte des commandes
99
+ ## Mini-carte des commandes
89
100
 
90
101
  ```bash
91
- vc status
92
- vc language ko|en|auto
93
- vc bot invite CLIENT_ID
94
- vc instance setup NAME
95
- vc instance start NAME
96
- vc doctor
102
+ vc status # paramètres actuels de langue, TTS et passerelle
103
+ vc language ko|en|auto # changer le préréglage langue STT/progression/TTS
104
+ vc bot invite CLIENT_ID # générer l'URL d'invitation du bot Discord
105
+ vc instance setup NAME # créer un bot vocal de projet isolé
106
+ vc instance start NAME # exécuter ce bot en arrière-plan
107
+ vc doctor # contrôle de santé expurgé
108
+ vc start # démarrer la passerelle par défaut
97
109
  ```
98
110
 
99
- ## Prérequis
111
+ Dans Discord :
100
112
 
101
- | Layer | Default |
113
+ | Commande | Effet |
102
114
  |---|---|
103
- | Runtime | Node.js 20+, npm |
104
- | Audio | `ffmpeg` |
105
- | STT | `whisper.cpp` / `whisper-cli` |
106
- | Discord | Bot token, Message Content intent, voice permissions |
107
- | Agent | At least one authenticated CLI harness, Hermes Agent by default |
108
- | Platform focus | macOS / Apple Silicon currently gets the most testing |
115
+ | `!join` | Rejoint votre salon vocal actuel. |
116
+ | `!ask <prompt>` | Envoie du texte au même backend d'agent. |
117
+ | `!verbose on\|off` | Affiche/énonce de courtes mises à jour de progression. |
118
+ | `!latency` | Résume la latence récente voix/STT/agent/TTS. |
119
+ | `!sensitivity normal` | Utilise la sensibilité d'interruption normale en intérieur. |
120
+ | `!sensitivity conservative` | Utilise une sensibilité plus stricte pour les environnements bruyants/extérieurs. |
121
+ | `!session new <name> <workdir> [context] --voice <voice-channel>` | Lie une session de projet à un salon vocal. |
122
+
123
+ ## Exigences
124
+
125
+ | Couche | Valeur par défaut |
126
+ |---|---|
127
+ | Runtime | Node.js 20+, npm ; le script d'installation peut l'installer via Homebrew/apt/dnf/pacman |
128
+ | Audio | `ffmpeg` ; le script d'installation peut l'installer |
129
+ | Reconnaissance vocale | `whisper-cli` local depuis whisper.cpp ; le script d'installation utilise Homebrew sur macOS ou un fallback de build Linux local |
130
+ | TTS | CLI Edge TTS ; le script d'installation crée `.venv-tts` si nécessaire |
131
+ | Discord | Jeton de bot, intent Message Content, permissions vocales |
132
+ | Agent | Au moins un harnais CLI authentifié, Hermes Agent par défaut |
133
+ | Plateforme privilégiée | macOS / Apple Silicon le plus testé ; l'amorçage Linux est documenté et fourni au mieux |
134
+
135
+ ## Contribution
109
136
 
110
- ## Contribuer
137
+ Exécutez les contrôles légers avant d'envoyer des changements :
111
138
 
112
139
  ```bash
113
140
  node --check app-node/main.mjs
114
141
  npm test
115
142
  bash -n run.sh scripts/install.sh
143
+ npm pack --dry-run
116
144
  vc doctor
117
145
  ```
118
146
 
119
147
  ## Statut
120
148
 
121
- VerbalCoding is public-release oriented but still early. Demo video/GIF, broader Linux notes, and a formal license file are still TODOs.
149
+ VerbalCoding vise une publication publique mais reste jeune. Vidéo/GIF de démonstration, validation Linux plus large, CI et revue de sécurité plus approfondie restent à faire.