verbalcoding 0.2.6 → 0.2.7

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 (38) hide show
  1. package/README.md +5 -0
  2. package/docs/i18n/CONFIGURATION.es.md +150 -0
  3. package/docs/i18n/CONFIGURATION.fr.md +150 -0
  4. package/docs/i18n/CONFIGURATION.ja.md +150 -0
  5. package/docs/i18n/CONFIGURATION.ko.md +49 -146
  6. package/docs/i18n/CONFIGURATION.ru.md +150 -0
  7. package/docs/i18n/CONFIGURATION.zh.md +150 -0
  8. package/docs/i18n/FRESH_INSTALL.es.md +124 -0
  9. package/docs/i18n/FRESH_INSTALL.fr.md +124 -0
  10. package/docs/i18n/FRESH_INSTALL.ja.md +124 -0
  11. package/docs/i18n/FRESH_INSTALL.ko.md +37 -114
  12. package/docs/i18n/FRESH_INSTALL.ru.md +124 -0
  13. package/docs/i18n/FRESH_INSTALL.zh.md +124 -0
  14. package/docs/i18n/MULTI_INSTANCE.es.md +121 -0
  15. package/docs/i18n/MULTI_INSTANCE.fr.md +121 -0
  16. package/docs/i18n/MULTI_INSTANCE.ja.md +121 -0
  17. package/docs/i18n/MULTI_INSTANCE.ko.md +28 -86
  18. package/docs/i18n/MULTI_INSTANCE.ru.md +121 -0
  19. package/docs/i18n/MULTI_INSTANCE.zh.md +121 -0
  20. package/docs/i18n/README.es.md +50 -86
  21. package/docs/i18n/README.fr.md +50 -86
  22. package/docs/i18n/README.ja.md +50 -86
  23. package/docs/i18n/README.ko.md +41 -113
  24. package/docs/i18n/README.ru.md +50 -86
  25. package/docs/i18n/README.zh.md +50 -86
  26. package/docs/i18n/RELEASE.es.md +58 -0
  27. package/docs/i18n/RELEASE.fr.md +58 -0
  28. package/docs/i18n/RELEASE.ja.md +58 -0
  29. package/docs/i18n/RELEASE.ko.md +36 -50
  30. package/docs/i18n/RELEASE.ru.md +58 -0
  31. package/docs/i18n/RELEASE.zh.md +58 -0
  32. package/docs/i18n/USAGE.es.md +134 -0
  33. package/docs/i18n/USAGE.fr.md +134 -0
  34. package/docs/i18n/USAGE.ja.md +134 -0
  35. package/docs/i18n/USAGE.ko.md +63 -101
  36. package/docs/i18n/USAGE.ru.md +134 -0
  37. package/docs/i18n/USAGE.zh.md +134 -0
  38. package/package.json +1 -1
@@ -1,64 +1,50 @@
1
1
  # VerbalCoding 멀티 인스턴스
2
2
 
3
- VerbalCoding 여러 개의 독립적인 Discord 음성 브릿지 프로세스를 실행할 있습니다. 프로세스는 같은 단일 인스턴스 Node 브릿지를 사용하지만, 서로 다른 `instances/<name>.env` 파일과 서로 다른 Discord bot token을 로드합니다.
3
+ VerbalCoding can run multiple independent Discord voice bridge processes. Each process loads a different `instances/<name>.env` file and uses a different Discord bot token.
4
4
 
5
- 프로젝트마다 자기 Discord 음성 채널에 항상 붙어 있고, 자기 transcript 채널/스레드에 기록해야 사용하세요.
5
+ Use this when each project should permanently occupy its own Discord voice channel and write to its own transcript channel/thread.
6
6
 
7
- ## 여러 토큰이 필요한가
7
+ ## Why multiple bot tokens are required
8
8
 
9
- Discord 음성 상주 방식은 사실상 길드마다 계정 하나가 동시에 하나의 음성 연결만 유지하는 구조입니다. 같은 토큰이 같은 길드의 다른 음성 채널에 들어가면 이전 채널에도 계속 남아 있을 수 없습니다. 동시에 여러 프로젝트 방을 유지하려면 프로젝트마다 Discord 애플리케이션/봇을 하나씩 만들어야 합니다.
9
+ Discord voice residency is effectively one active voice connection per bot account per guild. For simultaneous project rooms, create one Discord application/bot per project.
10
10
 
11
- ## 파일 구조
11
+ ## File layout
12
12
 
13
13
  ```text
14
14
  instances/
15
15
  README.md
16
16
  example.env
17
- llm-wiki.env # 로컬 전용, git에서 무시
18
- verbalcoding.env # 로컬 전용, git에서 무시
17
+ llm-wiki.env # local only, ignored by git
18
+ verbalcoding.env # local only, ignored by git
19
19
  .run/instances/
20
- llm-wiki.pid # 런타임 전용, git에서 무시
20
+ llm-wiki.pid # runtime only, ignored by git
21
21
  ```
22
22
 
23
- 실제 `instances/*.env` 파일에는 Discord 토큰이 들어갈 있으므로 git에서 무시됩니다. `instances/example.env`만 템플릿으로 커밋됩니다.
23
+ Real `instances/*.env` files are ignored because they may contain Discord tokens.
24
24
 
25
- ## 인스턴스 설정 마법사
26
-
27
- 일반 사용자는 env 파일을 복사해서 직접 편집하지 않는 편이 좋습니다. 마법사를 실행하세요.
25
+ ## Instance setup wizard
28
26
 
29
27
  ```bash
30
28
  vc instance setup llm-wiki
31
- # 또는 프로젝트 설정 스크립트에서:
32
29
  ./scripts/install.sh --instance llm-wiki
33
30
  ```
34
31
 
35
- 마법사는 토큰, Discord Application/Client ID, 음성 채널, transcript 대상, 작업 디렉터리, 프로젝트 컨텍스트, 격리된 런타임 경로를 묻습니다. `instances/<name>.env`를 권한 `0600`으로 작성하고, 기존 파일이 있으면 덮어쓰기 전에 백업하며, 다음 start/status 명령을 출력합니다.
32
+ The wizard asks for bot token, Discord Application/Client ID, voice channel, transcript target, workdir, project context, and isolated runtime paths. It writes `instances/<name>.env` with mode `0600` and backs up an existing file.
36
33
 
37
- 설정 Discord Application/Client ID를 입력하면 요약에 해당 봇 초대 URL도 출력됩니다. 같은 URL은 언제든지 다시 만들 수 있습니다.
34
+ Generate invite URLs with:
38
35
 
39
36
  ```bash
40
37
  vc bot invite <client-id>
41
38
  vc bot invite <client-id> --guild <guild-id>
42
39
  ```
43
40
 
44
- Discord는 동시에 여러 음성방에 상주하려면 여전히 방마다 Developer Portal 애플리케이션/봇 하나가 필요합니다. 대신 VerbalCoding이 OAuth URL이나 permission integer를 직접 조립할 필요를 없애 줍니다.
45
-
46
- ### Hermes 프로필 격리
47
-
48
- 각 인스턴스는 `~/.hermes/profiles/<name>` 아래에 자기 Hermes home을 갖습니다. 이렇게 하면 memory, MEMORY.md, SOUL.md, 학습된 skills가 프로젝트 사이에 섞이지 않습니다.
49
-
50
- `vc instance setup <name>`은 자동으로 다음을 수행합니다.
41
+ ## Hermes profile isolation
51
42
 
52
- - `hermes profile create <name> --clone-from default` 실행: 현재 `~/.hermes`의 API key와 모델 설정은 가져오지만, 세션과 메모리는 새로 시작합니다.
53
- - 새 프로필의 `terminal.cwd`를 인스턴스 작업 디렉터리로 설정합니다.
54
- - 마법사에서 입력한 project context로 `<profile>/SOUL.md`를 초기화합니다.
55
- - `instances/<name>.env`에 `HERMES_HOME=...`을 씁니다.
43
+ Each instance gets its own Hermes home at `~/.hermes/profiles/<name>` so memory, `MEMORY.md`, `SOUL.md`, and learned skills do not leak across projects.
56
44
 
57
- `vc instance start <name>`은 self-heal을 수행합니다. env가 가리키는 Hermes profile directory가 사라졌다면 시작 전에 다시 만듭니다.
45
+ `vc instance setup <name>` creates or reuses the profile, sets `terminal.cwd`, seeds `SOUL.md`, and writes `HERMES_HOME` into the instance env. Instance names must match `^[a-z0-9][a-z0-9_-]{0,63}$`.
58
46
 
59
- 인스턴스 이름은 Hermes가 디렉터리와 config key로 쓰기 때문에 `^[a-z0-9][a-z0-9_-]{0,63}$` 형식이어야 합니다.
60
-
61
- ## 생성되는 최소 인스턴스 env 예시
47
+ ## Minimal generated instance env
62
48
 
63
49
  ```env
64
50
  INSTANCE_NAME=my-project
@@ -76,9 +62,9 @@ AGENT_CWD=/path/to/my-project
76
62
  AGENT_PROJECT_CONTEXT=Project session: My Project
77
63
  ```
78
64
 
79
- 모든 인스턴스는 log/debug/session 파일 경로가 고유해야 합니다. `HERMES_HOME`과 대응하는 `~/.hermes/profiles/<name>` 디렉터리는 `vc instance setup`이 자동 생성합니다. `vc doctor`는 비밀값을 출력하지 않고 중복 토큰, 충돌하는 런타임 경로, 누락된 profile directory, profile과 instance의 `terminal.cwd` 불일치를 검사합니다.
65
+ `vc doctor` checks duplicate tokens, colliding runtime paths, missing profile directories, and `terminal.cwd` mismatches without printing secrets.
80
66
 
81
- ## 명령
67
+ ## Commands
82
68
 
83
69
  ```bash
84
70
  vc instance list
@@ -89,91 +75,47 @@ vc instance stop my-project
89
75
  vc instance restart my-project
90
76
  ```
91
77
 
92
- `start`는 `./run.sh instances/<name>.env`를 detached로 실행하고 `.run/instances/<name>.pid`를 씁니다.
93
-
94
- `stop`은 `SIGTERM`을 보내고 최대 10초 기다린 뒤, 필요하면 `SIGKILL`로 fallback하고 pid 파일을 제거합니다.
95
-
96
- ## 예시: 영구 음성방 두 개
78
+ ## Example: two permanent voice rooms
97
79
 
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. 각 로컬 인스턴스 설정 마법사를 실행합니다.
80
+ 1. Create two Discord applications/bots.
81
+ 2. Invite both with text and voice permissions. Use `vc bot invite <client-id>`.
82
+ 3. Run setup:
114
83
 
115
84
  ```bash
116
85
  vc instance setup verbalcoding
117
86
  vc instance setup llm-wiki
118
87
  ```
119
88
 
120
- 마법사는 git에서 무시되는 `instances/verbalcoding.env`, `instances/llm-wiki.env`를 권한 `0600`으로 작성하고, 기존 env가 있으면 백업합니다. 각 실행은 기본 Hermes home에서 clone한 `~/.hermes/profiles/<name>`도 생성하므로 두 인스턴스는 같은 인증/모델 설정으로 시작하지만, 프로젝트를 학습하면서 서로 독립적인 memory와 skills를 쌓습니다.
121
-
122
- 4. 설정을 확인합니다.
89
+ 4. Check and start:
123
90
 
124
91
  ```bash
125
92
  vc doctor
126
- ```
127
-
128
- 5. 둘 다 시작합니다.
129
-
130
- ```bash
131
93
  vc instance start verbalcoding
132
94
  vc instance start llm-wiki
133
95
  vc instance status
134
96
  ```
135
97
 
136
- 6. 로그를 확인합니다.
98
+ 5. Verify logs:
137
99
 
138
100
  ```bash
139
101
  tail -n 50 /tmp/verbalcoding-verbalcoding.log
140
102
  tail -n 50 /tmp/verbalcoding-llm-wiki.log
141
103
  ```
142
104
 
143
- 예상 로그:
105
+ Expected:
144
106
 
145
107
  ```text
146
108
  Listening in voice channel ... / VerbalCoding
147
109
  Listening in voice channel ... / LLM-Wiki
148
110
  ```
149
111
 
150
- 7. 중지합니다.
151
-
152
- ```bash
153
- vc instance stop verbalcoding
154
- vc instance stop llm-wiki
155
- ```
156
-
157
- ## 단기: 단일 봇 텍스트/음성 바인딩
158
-
159
- 봇 토큰이 하나뿐이라면 동시 다중 채널 상주 대신 project-session voice binding을 쓰세요.
112
+ ## Short-term single-bot text/voice binding
160
113
 
161
- 대상 텍스트 채널/스레드에서:
114
+ If you only have one bot token, bind a project session to a voice channel instead of simultaneous residency:
162
115
 
163
116
  ```text
164
117
  !session attach-voice --voice "LLM-Wiki"
165
- ```
166
-
167
- 동작:
168
-
169
- - 선택된 음성 채널을 현재 텍스트 채널/스레드에 연결합니다.
170
- - 현재 텍스트 채널에 project session이 없으면 ad-hoc 격리 세션을 만듭니다.
171
- - 음성 STT/result/progress/final-answer 텍스트가 해당 project transcript 대상으로 라우팅됩니다.
172
-
173
- 기존 named project session을 연결하려면:
174
-
175
- ```text
176
118
  !session voice llm-wiki --voice "LLM-Wiki"
177
119
  ```
178
120
 
179
- 방식은 라우팅에는 편하지만, 하나를 동시에 음성 채널에 머물게 하지는 않습니다. 동시에 여러 프로젝트 방에 영구 상주하려면 여러 토큰/프로세스를 사용하세요.
121
+ This routes text/STT/result/progress/final answer messages correctly, but it does not make one bot stay in two voice channels at the same time.
@@ -0,0 +1,121 @@
1
+ # VerbalCoding Мульти-инстансы
2
+
3
+ VerbalCoding can run multiple independent Discord voice bridge processes. Each process loads a different `instances/<name>.env` file and uses a different Discord bot token.
4
+
5
+ Use this when each project should permanently occupy its own Discord voice channel and write to its own transcript channel/thread.
6
+
7
+ ## Why multiple bot tokens are required
8
+
9
+ Discord voice residency is effectively one active voice connection per bot account per guild. For simultaneous project rooms, create one Discord application/bot per project.
10
+
11
+ ## File layout
12
+
13
+ ```text
14
+ instances/
15
+ README.md
16
+ example.env
17
+ llm-wiki.env # local only, ignored by git
18
+ verbalcoding.env # local only, ignored by git
19
+ .run/instances/
20
+ llm-wiki.pid # runtime only, ignored by git
21
+ ```
22
+
23
+ Real `instances/*.env` files are ignored because they may contain Discord tokens.
24
+
25
+ ## Instance setup wizard
26
+
27
+ ```bash
28
+ vc instance setup llm-wiki
29
+ ./scripts/install.sh --instance llm-wiki
30
+ ```
31
+
32
+ The wizard asks for bot token, Discord Application/Client ID, voice channel, transcript target, workdir, project context, and isolated runtime paths. It writes `instances/<name>.env` with mode `0600` and backs up an existing file.
33
+
34
+ Generate invite URLs with:
35
+
36
+ ```bash
37
+ vc bot invite <client-id>
38
+ vc bot invite <client-id> --guild <guild-id>
39
+ ```
40
+
41
+ ## Hermes profile isolation
42
+
43
+ Each instance gets its own Hermes home at `~/.hermes/profiles/<name>` so memory, `MEMORY.md`, `SOUL.md`, and learned skills do not leak across projects.
44
+
45
+ `vc instance setup <name>` creates or reuses the profile, sets `terminal.cwd`, seeds `SOUL.md`, and writes `HERMES_HOME` into the instance env. Instance names must match `^[a-z0-9][a-z0-9_-]{0,63}$`.
46
+
47
+ ## Minimal generated instance env
48
+
49
+ ```env
50
+ INSTANCE_NAME=my-project
51
+ DISCORD_TOKEN=replac...oken
52
+ DISCORD_CLIENT_ID=123456789012345678
53
+ AUTO_JOIN_VOICE_CHANNELS=Project Room
54
+ TRANSCRIPT_CHANNEL_ID=123456789012345678
55
+ PROJECT_SESSIONS_FILE=config/project-sessions.my-project.json
56
+ BRIDGE_LOG_PATH=/tmp/verbalcoding-my-project.log
57
+ NODE_AUDIO_DEBUG_DIR=/tmp/verbalcoding-my-project-debug
58
+ HERMES_SESSION_FILE=.agent-sessions/hermes/my-project.session
59
+ HERMES_HOME=/home/you/.hermes/profiles/my-project
60
+ AGENT_LABEL=VerbalCoding · My Project
61
+ AGENT_CWD=/path/to/my-project
62
+ AGENT_PROJECT_CONTEXT=Project session: My Project
63
+ ```
64
+
65
+ `vc doctor` checks duplicate tokens, colliding runtime paths, missing profile directories, and `terminal.cwd` mismatches without printing secrets.
66
+
67
+ ## Commands
68
+
69
+ ```bash
70
+ vc instance list
71
+ vc instance status
72
+ vc instance status my-project
73
+ vc instance start my-project
74
+ vc instance stop my-project
75
+ vc instance restart my-project
76
+ ```
77
+
78
+ ## Example: two permanent voice rooms
79
+
80
+ 1. Create two Discord applications/bots.
81
+ 2. Invite both with text and voice permissions. Use `vc bot invite <client-id>`.
82
+ 3. Run setup:
83
+
84
+ ```bash
85
+ vc instance setup verbalcoding
86
+ vc instance setup llm-wiki
87
+ ```
88
+
89
+ 4. Check and start:
90
+
91
+ ```bash
92
+ vc doctor
93
+ vc instance start verbalcoding
94
+ vc instance start llm-wiki
95
+ vc instance status
96
+ ```
97
+
98
+ 5. Verify logs:
99
+
100
+ ```bash
101
+ tail -n 50 /tmp/verbalcoding-verbalcoding.log
102
+ tail -n 50 /tmp/verbalcoding-llm-wiki.log
103
+ ```
104
+
105
+ Expected:
106
+
107
+ ```text
108
+ Listening in voice channel ... / VerbalCoding
109
+ Listening in voice channel ... / LLM-Wiki
110
+ ```
111
+
112
+ ## Short-term single-bot text/voice binding
113
+
114
+ If you only have one bot token, bind a project session to a voice channel instead of simultaneous residency:
115
+
116
+ ```text
117
+ !session attach-voice --voice "LLM-Wiki"
118
+ !session voice llm-wiki --voice "LLM-Wiki"
119
+ ```
120
+
121
+ This routes text/STT/result/progress/final answer messages correctly, but it does not make one bot stay in two voice channels at the same time.
@@ -0,0 +1,121 @@
1
+ # VerbalCoding 多实例
2
+
3
+ VerbalCoding can run multiple independent Discord voice bridge processes. Each process loads a different `instances/<name>.env` file and uses a different Discord bot token.
4
+
5
+ Use this when each project should permanently occupy its own Discord voice channel and write to its own transcript channel/thread.
6
+
7
+ ## Why multiple bot tokens are required
8
+
9
+ Discord voice residency is effectively one active voice connection per bot account per guild. For simultaneous project rooms, create one Discord application/bot per project.
10
+
11
+ ## File layout
12
+
13
+ ```text
14
+ instances/
15
+ README.md
16
+ example.env
17
+ llm-wiki.env # local only, ignored by git
18
+ verbalcoding.env # local only, ignored by git
19
+ .run/instances/
20
+ llm-wiki.pid # runtime only, ignored by git
21
+ ```
22
+
23
+ Real `instances/*.env` files are ignored because they may contain Discord tokens.
24
+
25
+ ## Instance setup wizard
26
+
27
+ ```bash
28
+ vc instance setup llm-wiki
29
+ ./scripts/install.sh --instance llm-wiki
30
+ ```
31
+
32
+ The wizard asks for bot token, Discord Application/Client ID, voice channel, transcript target, workdir, project context, and isolated runtime paths. It writes `instances/<name>.env` with mode `0600` and backs up an existing file.
33
+
34
+ Generate invite URLs with:
35
+
36
+ ```bash
37
+ vc bot invite <client-id>
38
+ vc bot invite <client-id> --guild <guild-id>
39
+ ```
40
+
41
+ ## Hermes profile isolation
42
+
43
+ Each instance gets its own Hermes home at `~/.hermes/profiles/<name>` so memory, `MEMORY.md`, `SOUL.md`, and learned skills do not leak across projects.
44
+
45
+ `vc instance setup <name>` creates or reuses the profile, sets `terminal.cwd`, seeds `SOUL.md`, and writes `HERMES_HOME` into the instance env. Instance names must match `^[a-z0-9][a-z0-9_-]{0,63}$`.
46
+
47
+ ## Minimal generated instance env
48
+
49
+ ```env
50
+ INSTANCE_NAME=my-project
51
+ DISCORD_TOKEN=replac...oken
52
+ DISCORD_CLIENT_ID=123456789012345678
53
+ AUTO_JOIN_VOICE_CHANNELS=Project Room
54
+ TRANSCRIPT_CHANNEL_ID=123456789012345678
55
+ PROJECT_SESSIONS_FILE=config/project-sessions.my-project.json
56
+ BRIDGE_LOG_PATH=/tmp/verbalcoding-my-project.log
57
+ NODE_AUDIO_DEBUG_DIR=/tmp/verbalcoding-my-project-debug
58
+ HERMES_SESSION_FILE=.agent-sessions/hermes/my-project.session
59
+ HERMES_HOME=/home/you/.hermes/profiles/my-project
60
+ AGENT_LABEL=VerbalCoding · My Project
61
+ AGENT_CWD=/path/to/my-project
62
+ AGENT_PROJECT_CONTEXT=Project session: My Project
63
+ ```
64
+
65
+ `vc doctor` checks duplicate tokens, colliding runtime paths, missing profile directories, and `terminal.cwd` mismatches without printing secrets.
66
+
67
+ ## Commands
68
+
69
+ ```bash
70
+ vc instance list
71
+ vc instance status
72
+ vc instance status my-project
73
+ vc instance start my-project
74
+ vc instance stop my-project
75
+ vc instance restart my-project
76
+ ```
77
+
78
+ ## Example: two permanent voice rooms
79
+
80
+ 1. Create two Discord applications/bots.
81
+ 2. Invite both with text and voice permissions. Use `vc bot invite <client-id>`.
82
+ 3. Run setup:
83
+
84
+ ```bash
85
+ vc instance setup verbalcoding
86
+ vc instance setup llm-wiki
87
+ ```
88
+
89
+ 4. Check and start:
90
+
91
+ ```bash
92
+ vc doctor
93
+ vc instance start verbalcoding
94
+ vc instance start llm-wiki
95
+ vc instance status
96
+ ```
97
+
98
+ 5. Verify logs:
99
+
100
+ ```bash
101
+ tail -n 50 /tmp/verbalcoding-verbalcoding.log
102
+ tail -n 50 /tmp/verbalcoding-llm-wiki.log
103
+ ```
104
+
105
+ Expected:
106
+
107
+ ```text
108
+ Listening in voice channel ... / VerbalCoding
109
+ Listening in voice channel ... / LLM-Wiki
110
+ ```
111
+
112
+ ## Short-term single-bot text/voice binding
113
+
114
+ If you only have one bot token, bind a project session to a voice channel instead of simultaneous residency:
115
+
116
+ ```text
117
+ !session attach-voice --voice "LLM-Wiki"
118
+ !session voice llm-wiki --voice "LLM-Wiki"
119
+ ```
120
+
121
+ This routes text/STT/result/progress/final answer messages correctly, but it does not make one bot stay in two voice channels at the same time.
@@ -1,91 +1,66 @@
1
1
  # VerbalCoding
2
2
 
3
- <p align="center">
4
- <strong>Habla con tus agentes de programación CLI por voz en Discord, como en una llamada.</strong>
5
- </p>
6
-
7
- <p align="center">
8
- <a href="../../README.md">English</a> ·
9
- <a href="README.ko.md">한국어</a> ·
10
- <a href="README.ja.md">日本語</a> ·
11
- <a href="README.zh.md">中文</a> ·
12
- <a href="README.es.md">Español</a> ·
13
- <a href="README.fr.md">Français</a> ·
14
- <a href="README.ru.md">Русский</a>
15
- </p>
16
-
17
- <p align="center">
18
- <img alt="Node.js" src="https://img.shields.io/badge/Node.js-20%2B-339933?logo=node.js&logoColor=white">
19
- <img alt="Discord" src="https://img.shields.io/badge/Discord-voice%20bridge-5865F2?logo=discord&logoColor=white">
20
- <img alt="STT" src="https://img.shields.io/badge/STT-whisper.cpp-7C3AED">
21
- <img alt="TTS" src="https://img.shields.io/badge/TTS-Edge%20%7C%20OpenVoice%20%7C%20Supertonic%20%7C%20SpeechSwift-0EA5E9">
22
- </p>
23
-
24
- <p align="center">
25
- <img src="../assets/figures/verbalcoding-flow.svg" alt="VerbalCoding voice-to-agent flow" width="860">
26
- </p>
3
+ **Habla con tus agentes de programación CLI por voz en Discord, como una llamada.**
4
+
5
+ [English](../../README.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [中文](README.zh.md) · [Español](README.es.md) · [Français](README.fr.md) · [Русский](README.ru.md)
6
+
7
+ ![VerbalCoding voice-to-agent flow](../assets/figures/verbalcoding-flow.svg)
27
8
 
28
9
  ## Why
29
10
 
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.
11
+ VerbalCoding convierte un canal de voz de Discord en una superficie de control manos libres para agentes de programación. Dictas una solicitud, el agente CLI trabaja y recibes una respuesta breve por voz junto con transcripciones y eventos de progreso.
31
12
 
32
- ## Puntos clave
13
+ ## Highlights
33
14
 
34
- | Qué ofrece | Por qué importa |
15
+ | Feature | What it means |
35
16
  |---|---|
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` → agentereproducció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. |
17
+ | Voice-first agent control | Hermes Agent, Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw, or a custom CLI harness. |
18
+ | Local-first speech loop | Discord voice capture → `whisper.cpp` STT agentchunked TTS playback. |
19
+ | Shared voice + text context | Voice turns and `!ask` text commands can reuse the same supported agent session. |
20
+ | Barge-in and sensitivity modes | Interrupt playback naturally and switch between normal and conservative/noisy modes. |
21
+ | Multilingual voice presets | `vc language ko/en/auto` changes STT, progress language, and TTS voice together. |
22
+ | Multi-room project isolation | Run one bot per project room with isolated Hermes profiles, sessions, memory, and logs. |
42
23
 
43
- ## Inicio rápido
24
+ ## Quick Start
44
25
 
45
26
  ```bash
46
- git clone git@github.com:ca1773130n/VerbalCoding.git
47
- cd VerbalCoding
48
- ./scripts/install.sh
27
+ npm install -g verbalcoding
28
+ vc setup --yes
49
29
  vc doctor
50
- ./run.sh
30
+ vc start
51
31
  ```
52
32
 
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"]
33
+ Run without a permanent global install:
34
+
35
+ ```bash
36
+ npx verbalcoding setup --yes
37
+ vc doctor
38
+ vc start
64
39
  ```
65
40
 
66
- ## Backends de agentes compatibles
41
+ Contributor clone path:
42
+
43
+ ```bash
44
+ git clone https://github.com/ca1773130n/VerbalCoding.git
45
+ cd VerbalCoding
46
+ ./scripts/install.sh --yes
47
+ vc doctor
48
+ ./run.sh
49
+ ```
67
50
 
68
- | Backend | Default command | Session support |
69
- |---|---:|---|
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 |
51
+ `vc setup --yes` and `./scripts/install.sh --yes` bootstrap npm dependencies, `ffmpeg`, `whisper-cli`, the default whisper.cpp model, a local Edge TTS helper, and the short `vc` command where possible.
77
52
 
78
- ## Aprende más
53
+ ## Guides
79
54
 
80
- | Guide | What you get |
55
+ | Guide | Link |
81
56
  |---|---|
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 |
57
+ | Instalación limpia | [FRESH_INSTALL.es.md](FRESH_INSTALL.es.md) |
58
+ | Guía de uso | [USAGE.es.md](USAGE.es.md) |
59
+ | Configuración | [CONFIGURATION.es.md](CONFIGURATION.es.md) |
60
+ | Multiinstancia | [MULTI_INSTANCE.es.md](MULTI_INSTANCE.es.md) |
61
+ | Notas de versión | [RELEASE.es.md](RELEASE.es.md) |
87
62
 
88
- ## Mapa rápido de comandos
63
+ ## Command map
89
64
 
90
65
  ```bash
91
66
  vc status
@@ -94,28 +69,17 @@ vc bot invite CLIENT_ID
94
69
  vc instance setup NAME
95
70
  vc instance start NAME
96
71
  vc doctor
72
+ vc start
97
73
  ```
98
74
 
99
- ## Requisitos
75
+ Discord commands:
100
76
 
101
- | Layer | Default |
102
- |---|---|
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 |
109
-
110
- ## Contribuir
111
-
112
- ```bash
113
- node --check app-node/main.mjs
114
- npm test
115
- bash -n run.sh scripts/install.sh
116
- vc doctor
77
+ ```text
78
+ !join !ask <prompt> !verbose on/off
79
+ !latency !sensitivity normal !sensitivity conservative
80
+ !session new <name> <workdir> [context] --voice <voice-channel>
117
81
  ```
118
82
 
119
- ## Estado
83
+ ## Requirements
120
84
 
121
- VerbalCoding is public-release oriented but still early. Demo video/GIF, broader Linux notes, and a formal license file are still TODOs.
85
+ Node.js 20+, npm, `ffmpeg`, `whisper.cpp` / `whisper-cli`, Edge TTS CLI, a Discord bot token with Message Content intent and voice permissions, and at least one authenticated CLI agent backend.