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
@@ -0,0 +1,124 @@
1
+ # Чистая установка
2
+
3
+ This guide mirrors the English fresh-install flow for Русский. It is intended for a clean public install and avoids local-only assumptions.
4
+
5
+ ## 1. Install the CLI
6
+
7
+ ```bash
8
+ npm install -g verbalcoding
9
+ vc setup --yes
10
+ ```
11
+
12
+ Or run the published package directly:
13
+
14
+ ```bash
15
+ npx verbalcoding setup --yes
16
+ ```
17
+
18
+ Contributor clone path:
19
+
20
+ ```bash
21
+ git clone https://github.com/ca1773130n/VerbalCoding.git
22
+ cd VerbalCoding
23
+ ./scripts/install.sh --yes
24
+ ```
25
+
26
+ ## 2. Bootstrap dependencies
27
+
28
+ The setup flow installs npm dependencies when needed, links the short `vc` command for clone installs, installs `ffmpeg` / Node / `whisper-cli` where the OS package manager supports it, downloads `models/ggml-small-q5_1.bin`, creates `.venv-tts`, and writes `.env`.
29
+
30
+ Useful variants:
31
+
32
+ ```bash
33
+ vc setup --yes --no-wizard
34
+ ./scripts/install.sh --yes --no-wizard
35
+ ./scripts/install.sh --skip-system
36
+ ./scripts/install.sh --skip-model
37
+ ./scripts/install.sh --skip-edge-tts
38
+ VERBALCODING_SKIP_CLI_LINK=1 ./scripts/install.sh --yes
39
+ ```
40
+
41
+ Supported bootstrap paths: macOS/Homebrew, Debian/Ubuntu `apt`, Fedora/RHEL `dnf`, and Arch `pacman`. If unsupported, manually install Node.js 20+, npm, ffmpeg, Python 3, `whisper-cli`, and an authenticated CLI agent backend.
42
+
43
+ ## 3. Discord application setup
44
+
45
+ Read the upstream bot guides first:
46
+
47
+ - Hermes Agent Discord guide: <https://hermes-agent.nousresearch.com/docs/user-guide/messaging/discord>
48
+ - Discord official bot overview: <https://docs.discord.com/developers/bots/overview>
49
+ - Discord official getting started guide: <https://docs.discord.com/developers/quick-start/getting-started>
50
+
51
+ Create a Discord application and bot, enable the Message Content privileged intent, put the token in the installer or `.env` as `DISCORD_BOT_TOKEN`, then generate the invite URL:
52
+
53
+ ```bash
54
+ vc bot invite <discord-client-id>
55
+ vc bot invite <discord-client-id> --guild <guild-id>
56
+ ```
57
+
58
+ ## 4. Verify
59
+
60
+ ```bash
61
+ vc doctor
62
+ ```
63
+
64
+ `vc doctor` redacts secrets and reports missing commands/models/tokens without printing sensitive values. Expected success includes Node.js, npm, ffmpeg, whisper-cli, the model, Discord bot token configured, edge-tts, and the selected agent CLI.
65
+
66
+ ## 5. Run
67
+
68
+ ```bash
69
+ vc start
70
+ # or, from a GitHub clone:
71
+ ./run.sh
72
+ ```
73
+
74
+ Expected log lines:
75
+
76
+ ```text
77
+ Logged in as <bot-name>
78
+ Listening in voice channel <server> / <channel>
79
+ ```
80
+
81
+ In Discord:
82
+
83
+ ```text
84
+ !ping
85
+ !join
86
+ !ask say hello briefly
87
+ !verbose on
88
+ ```
89
+
90
+ Then speak in the configured voice channel. You should see STT text, progress text when verbose mode is on, a final text answer, and hear TTS playback.
91
+
92
+ ## 6. Project-per-room setup
93
+
94
+ For one permanent bot per project voice room, create one Discord application per project, then:
95
+
96
+ ```bash
97
+ vc instance setup my-project
98
+ vc bot invite <that-project-client-id>
99
+ vc instance start my-project
100
+ vc instance status my-project
101
+ ```
102
+
103
+ ## 7. Optional OpenVoice setup
104
+
105
+ Keep `TTS_BACKEND=edge` for a fresh install. To enable OpenVoice later:
106
+
107
+ ```bash
108
+ ./scripts/setup_openvoice.sh
109
+ # Download OpenVoice V2 checkpoints into vendor/OpenVoice/checkpoints_v2/
110
+ # Add a permitted local sample at voice-samples/user-reference.wav,
111
+ # or run the bot, say "목소리 샘플 녹음 시작해", then speak 10-30 seconds.
112
+ python3 integrations/openvoice/synth.py --openvoice-dir vendor/OpenVoice --ref-audio voice-samples/user-reference.wav --text '안녕하세요. 버벌코딩 목소리 복제 테스트입니다.' --output /tmp/verbalcoding-openvoice-smoke.wav
113
+ ```
114
+
115
+ Then set `TTS_BACKEND=openvoice`, run `vc doctor`, and test `!voice-test <text>` in Discord.
116
+
117
+ ## 8. Maintainer smoke tests
118
+
119
+ ```bash
120
+ ./scripts/install.sh --yes --no-wizard
121
+ npm pack --dry-run
122
+ vc doctor || true
123
+ ./scripts/docker_ubuntu_smoke.sh
124
+ ```
@@ -0,0 +1,124 @@
1
+ # 全新安装
2
+
3
+ This guide mirrors the English fresh-install flow for 中文. It is intended for a clean public install and avoids local-only assumptions.
4
+
5
+ ## 1. Install the CLI
6
+
7
+ ```bash
8
+ npm install -g verbalcoding
9
+ vc setup --yes
10
+ ```
11
+
12
+ Or run the published package directly:
13
+
14
+ ```bash
15
+ npx verbalcoding setup --yes
16
+ ```
17
+
18
+ Contributor clone path:
19
+
20
+ ```bash
21
+ git clone https://github.com/ca1773130n/VerbalCoding.git
22
+ cd VerbalCoding
23
+ ./scripts/install.sh --yes
24
+ ```
25
+
26
+ ## 2. Bootstrap dependencies
27
+
28
+ The setup flow installs npm dependencies when needed, links the short `vc` command for clone installs, installs `ffmpeg` / Node / `whisper-cli` where the OS package manager supports it, downloads `models/ggml-small-q5_1.bin`, creates `.venv-tts`, and writes `.env`.
29
+
30
+ Useful variants:
31
+
32
+ ```bash
33
+ vc setup --yes --no-wizard
34
+ ./scripts/install.sh --yes --no-wizard
35
+ ./scripts/install.sh --skip-system
36
+ ./scripts/install.sh --skip-model
37
+ ./scripts/install.sh --skip-edge-tts
38
+ VERBALCODING_SKIP_CLI_LINK=1 ./scripts/install.sh --yes
39
+ ```
40
+
41
+ Supported bootstrap paths: macOS/Homebrew, Debian/Ubuntu `apt`, Fedora/RHEL `dnf`, and Arch `pacman`. If unsupported, manually install Node.js 20+, npm, ffmpeg, Python 3, `whisper-cli`, and an authenticated CLI agent backend.
42
+
43
+ ## 3. Discord application setup
44
+
45
+ Read the upstream bot guides first:
46
+
47
+ - Hermes Agent Discord guide: <https://hermes-agent.nousresearch.com/docs/user-guide/messaging/discord>
48
+ - Discord official bot overview: <https://docs.discord.com/developers/bots/overview>
49
+ - Discord official getting started guide: <https://docs.discord.com/developers/quick-start/getting-started>
50
+
51
+ Create a Discord application and bot, enable the Message Content privileged intent, put the token in the installer or `.env` as `DISCORD_BOT_TOKEN`, then generate the invite URL:
52
+
53
+ ```bash
54
+ vc bot invite <discord-client-id>
55
+ vc bot invite <discord-client-id> --guild <guild-id>
56
+ ```
57
+
58
+ ## 4. Verify
59
+
60
+ ```bash
61
+ vc doctor
62
+ ```
63
+
64
+ `vc doctor` redacts secrets and reports missing commands/models/tokens without printing sensitive values. Expected success includes Node.js, npm, ffmpeg, whisper-cli, the model, Discord bot token configured, edge-tts, and the selected agent CLI.
65
+
66
+ ## 5. Run
67
+
68
+ ```bash
69
+ vc start
70
+ # or, from a GitHub clone:
71
+ ./run.sh
72
+ ```
73
+
74
+ Expected log lines:
75
+
76
+ ```text
77
+ Logged in as <bot-name>
78
+ Listening in voice channel <server> / <channel>
79
+ ```
80
+
81
+ In Discord:
82
+
83
+ ```text
84
+ !ping
85
+ !join
86
+ !ask say hello briefly
87
+ !verbose on
88
+ ```
89
+
90
+ Then speak in the configured voice channel. You should see STT text, progress text when verbose mode is on, a final text answer, and hear TTS playback.
91
+
92
+ ## 6. Project-per-room setup
93
+
94
+ For one permanent bot per project voice room, create one Discord application per project, then:
95
+
96
+ ```bash
97
+ vc instance setup my-project
98
+ vc bot invite <that-project-client-id>
99
+ vc instance start my-project
100
+ vc instance status my-project
101
+ ```
102
+
103
+ ## 7. Optional OpenVoice setup
104
+
105
+ Keep `TTS_BACKEND=edge` for a fresh install. To enable OpenVoice later:
106
+
107
+ ```bash
108
+ ./scripts/setup_openvoice.sh
109
+ # Download OpenVoice V2 checkpoints into vendor/OpenVoice/checkpoints_v2/
110
+ # Add a permitted local sample at voice-samples/user-reference.wav,
111
+ # or run the bot, say "목소리 샘플 녹음 시작해", then speak 10-30 seconds.
112
+ python3 integrations/openvoice/synth.py --openvoice-dir vendor/OpenVoice --ref-audio voice-samples/user-reference.wav --text '안녕하세요. 버벌코딩 목소리 복제 테스트입니다.' --output /tmp/verbalcoding-openvoice-smoke.wav
113
+ ```
114
+
115
+ Then set `TTS_BACKEND=openvoice`, run `vc doctor`, and test `!voice-test <text>` in Discord.
116
+
117
+ ## 8. Maintainer smoke tests
118
+
119
+ ```bash
120
+ ./scripts/install.sh --yes --no-wizard
121
+ npm pack --dry-run
122
+ vc doctor || true
123
+ ./scripts/docker_ubuntu_smoke.sh
124
+ ```
@@ -0,0 +1,121 @@
1
+ # VerbalCoding Multiinstancia
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 Multi-instance
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.