hcom 0.2.1__tar.gz → 0.2.2__tar.gz
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.
Potentially problematic release.
This version of hcom might be problematic. Click here for more details.
- {hcom-0.2.1/src/hcom.egg-info → hcom-0.2.2}/PKG-INFO +93 -67
- {hcom-0.2.1 → hcom-0.2.2}/README.md +92 -66
- {hcom-0.2.1 → hcom-0.2.2}/pyproject.toml +1 -1
- {hcom-0.2.1 → hcom-0.2.2}/src/hcom/__init__.py +1 -1
- {hcom-0.2.1 → hcom-0.2.2}/src/hcom/__main__.py +319 -272
- {hcom-0.2.1 → hcom-0.2.2/src/hcom.egg-info}/PKG-INFO +93 -67
- {hcom-0.2.1 → hcom-0.2.2}/MANIFEST.in +0 -0
- {hcom-0.2.1 → hcom-0.2.2}/setup.cfg +0 -0
- {hcom-0.2.1 → hcom-0.2.2}/src/hcom.egg-info/SOURCES.txt +0 -0
- {hcom-0.2.1 → hcom-0.2.2}/src/hcom.egg-info/dependency_links.txt +0 -0
- {hcom-0.2.1 → hcom-0.2.2}/src/hcom.egg-info/entry_points.txt +0 -0
- {hcom-0.2.1 → hcom-0.2.2}/src/hcom.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hcom
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: CLI tool for launching multiple Claude Code terminals with interactive subagents, headless persistence, and real-time communication via hooks
|
|
5
5
|
Author: aannoo
|
|
6
6
|
License-Expression: MIT
|
|
@@ -28,11 +28,11 @@ Description-Content-Type: text/markdown
|
|
|
28
28
|
# hcom - Claude Hook Comms
|
|
29
29
|
|
|
30
30
|
[](https://pypi.org/project/hcom/)
|
|
31
|
-
[](https://opensource.org/license/MIT) [](https://python.org)
|
|
31
|
+
[](https://opensource.org/license/MIT) [](https://python.org) [](https://deepwiki.com/aannoo/claude-hook-comms)
|
|
32
32
|
|
|
33
|
-
CLI tool for launching multiple Claude Code terminals with interactive [subagents](https://docs.anthropic.com/en/docs/claude-code/sub-agents), headless persistence, and real-time communication via [hooks](https://docs.anthropic.com/en/docs/claude-code/hooks). Works on Mac, Linux, and
|
|
33
|
+
CLI tool for launching multiple Claude Code terminals with interactive [subagents](https://docs.anthropic.com/en/docs/claude-code/sub-agents), headless persistence, and real-time communication via [hooks](https://docs.anthropic.com/en/docs/claude-code/hooks). Works on Mac, Linux, Windows, and Android with zero dependencies.
|
|
34
34
|
|
|
35
|
-

|
|
36
36
|
|
|
37
37
|
## 🥦 Usage
|
|
38
38
|
|
|
@@ -50,28 +50,28 @@ hcom open 2
|
|
|
50
50
|
| Commands | |
|
|
51
51
|
|---------|-------------|
|
|
52
52
|
| `hcom open [n]` | Launch `n` instances or named agents |
|
|
53
|
-
| `hcom watch` |
|
|
54
|
-
| `hcom clear` |
|
|
53
|
+
| `hcom watch` | View live dashboard and messaging |
|
|
54
|
+
| `hcom clear` | Clear and start new conversation |
|
|
55
55
|
| `hcom cleanup` | Safely remove hcom hooks, preserving your project settings |
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
## 🦆 What It Does
|
|
59
59
|
|
|
60
|
-
`hcom open` adds hooks to the `.claude/settings.local.json` file in the current folder and launches terminals with claude code that remain active, waiting to respond to messages in the shared chat.
|
|
60
|
+
`hcom open` adds hooks to the `.claude/settings.local.json` file in the current folder and launches terminals with claude code that remain active, waiting to respond to messages in the shared chat. Normal Claude Code opened with `claude` remains unaffected by hcom.
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
### Subagents in their own terminal
|
|
63
63
|
```bash
|
|
64
64
|
# Launch subagents from your .claude/agents
|
|
65
65
|
hcom open planner code-writer reviewer
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
### Persistent headless instances
|
|
69
69
|
```bash
|
|
70
70
|
# Launch one headless instance (default 30min timeout)
|
|
71
71
|
hcom open -p
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
### Groups and direct messages
|
|
75
75
|
```bash
|
|
76
76
|
hcom open --prefix cool # Creates cool-hovoa7
|
|
77
77
|
hcom open --prefix cool # Creates cool-homab8
|
|
@@ -79,6 +79,13 @@ hcom send '@cool hi, you are cool'
|
|
|
79
79
|
hcom send '@homab8 hi, you are cooler'
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
+
### Persistent thinking mode
|
|
83
|
+
```bash
|
|
84
|
+
# Thinking mode maintains for entire session
|
|
85
|
+
HCOM_INITIAL_PROMPT="ultrathink and do x" hcom open
|
|
86
|
+
# Every new message reply uses ultrathink
|
|
87
|
+
```
|
|
88
|
+
|
|
82
89
|
---
|
|
83
90
|
|
|
84
91
|
|
|
@@ -93,6 +100,7 @@ hcom send '@homab8 hi, you are cooler'
|
|
|
93
100
|
- **@Mention Targeting** - Send messages to specific instances or teams
|
|
94
101
|
- **Session Persistence** - Resume previous conversations automatically
|
|
95
102
|
- **Zero Dependencies** - Pure Python stdlib, works everywhere
|
|
103
|
+
- **Cross-platform** - Native support for Windows, WSL, macOS, Linux, Android
|
|
96
104
|
|
|
97
105
|
</details>
|
|
98
106
|
|
|
@@ -140,7 +148,7 @@ hcom open --prefix notcool # creates notcool-hovoc9
|
|
|
140
148
|
|
|
141
149
|
# Launch 3 headless instances that die after 60 seconds of inactivity
|
|
142
150
|
HCOM_WAIT_TIMEOUT="60" hcom open 3 -p
|
|
143
|
-
# Manually kill all
|
|
151
|
+
# Manually kill all instances
|
|
144
152
|
hcom kill --all
|
|
145
153
|
|
|
146
154
|
# Launch multiple of the same subagent
|
|
@@ -222,6 +230,9 @@ $env:HCOM_INITIAL_PROMPT="go home buddy!"; hcom open
|
|
|
222
230
|
```
|
|
223
231
|
|
|
224
232
|
### Status Indicators
|
|
233
|
+
|
|
234
|
+
When running `hcom watch`, each instance shows its current state:
|
|
235
|
+
|
|
225
236
|
- ◉ **thinking** (cyan) - Processing input
|
|
226
237
|
- ▷ **responding** (green) - Generating text response
|
|
227
238
|
- ▶ **executing** (green) - Running tools
|
|
@@ -240,13 +251,13 @@ $env:HCOM_INITIAL_PROMPT="go home buddy!"; hcom open
|
|
|
240
251
|
hcom adds hooks to your project directory's `.claude/settings.local.json`:
|
|
241
252
|
|
|
242
253
|
1. **Sending**: Claude agents use `echo "HCOM_SEND:message"` internally (you use `hcom send` from terminal or dashboard)
|
|
243
|
-
2. **Receiving**: Other Claudes get notified via Stop
|
|
254
|
+
2. **Receiving**: Other Claudes get notified via hooks (PostToolUse or Stop)
|
|
244
255
|
3. **Waiting**: Stop hook keeps Claude in a waiting state for new messages
|
|
245
256
|
|
|
246
257
|
- **Identity**: Each instance gets a unique name based on session ID (e.g., "hovoa7")
|
|
247
258
|
- **Persistence**: Names persist across `--resume` maintaining conversation context
|
|
248
259
|
- **Status Detection**: Notification hook tracks permission requests and activity
|
|
249
|
-
- **Agents**: When you run `hcom open researcher`, it loads an interactive Claude session with a system prompt from `.claude/agents/researcher.md` (local) or `~/.claude/agents/researcher.md` (global). Specified `model:` and `tools:` are carried over
|
|
260
|
+
- **Agents**: When you run `hcom open researcher`, it loads an interactive Claude session with a system prompt from `.claude/agents/researcher.md` (local) or `~/.claude/agents/researcher.md` (global). Specified `model:` and `tools:` are carried over
|
|
250
261
|
|
|
251
262
|
### Architecture
|
|
252
263
|
- **Single conversation** - All instances share one global conversation
|
|
@@ -254,7 +265,7 @@ hcom adds hooks to your project directory's `.claude/settings.local.json`:
|
|
|
254
265
|
- **@-mention filtering** - Target messages to specific instances or teams
|
|
255
266
|
|
|
256
267
|
### File Structure
|
|
257
|
-
```
|
|
268
|
+
```plaintext
|
|
258
269
|
~/.hcom/
|
|
259
270
|
├── hcom.log # Conversation log
|
|
260
271
|
├── instances/ # Instance tracking
|
|
@@ -278,21 +289,22 @@ your-project/
|
|
|
278
289
|
Configure terminal behavior in `~/.hcom/config.json`:
|
|
279
290
|
- `"terminal_mode": "new_window"` - Opens new terminal window(s) (default)
|
|
280
291
|
- `"terminal_mode": "same_terminal"` - Opens in current terminal
|
|
281
|
-
|
|
292
|
+
|
|
293
|
+
#### Running in current terminal temporarily
|
|
294
|
+
```bash
|
|
295
|
+
# For single instances
|
|
296
|
+
HCOM_TERMINAL_MODE=same_terminal hcom open
|
|
297
|
+
```
|
|
282
298
|
|
|
283
299
|
### Default Terminals
|
|
284
300
|
|
|
285
301
|
- **macOS**: Terminal.app
|
|
286
302
|
- **Linux**: gnome-terminal, konsole, or xterm
|
|
287
303
|
- **Windows & WSL**: Windows Terminal / Git Bash
|
|
304
|
+
- **Android**: Termux
|
|
288
305
|
|
|
289
|
-
### Running in Current Terminal temporarily
|
|
290
|
-
```bash
|
|
291
|
-
# For single instances
|
|
292
|
-
HCOM_TERMINAL_MODE=same_terminal hcom open
|
|
293
|
-
```
|
|
294
306
|
|
|
295
|
-
### Custom
|
|
307
|
+
### Custom Terminals
|
|
296
308
|
|
|
297
309
|
Configure `terminal_command` in `~/.hcom/config.json` (permanent) or environment variables (temporary).
|
|
298
310
|
|
|
@@ -306,78 +318,91 @@ Your custom command just needs to:
|
|
|
306
318
|
|
|
307
319
|
Example template: `your_terminal_command --execute "bash {script}"`
|
|
308
320
|
|
|
309
|
-
###
|
|
310
|
-
```json
|
|
311
|
-
"terminal_command": "osascript -e 'tell app \"iTerm\" to tell (create window with default profile) to tell current session to write text \"{script}\"'"
|
|
312
|
-
```
|
|
321
|
+
### Custom Terminal Examples
|
|
313
322
|
|
|
314
|
-
|
|
315
|
-
Windows:
|
|
316
|
-
```json
|
|
317
|
-
"terminal_command": "wezterm start -- bash {script}"
|
|
318
|
-
```
|
|
319
|
-
Or open tabs from within WezTerm:
|
|
320
|
-
```json
|
|
321
|
-
"terminal_command": "wezterm cli spawn -- bash {script}"
|
|
322
|
-
```
|
|
323
|
-
macOS/Linux:
|
|
323
|
+
#### iTerm2
|
|
324
324
|
```json
|
|
325
|
-
|
|
325
|
+
"terminal_command": "open -a iTerm {script}"
|
|
326
326
|
```
|
|
327
327
|
|
|
328
|
-
|
|
329
|
-
Windows. From within Wave Terminal:
|
|
328
|
+
#### [ttab](https://github.com/mklement0/ttab) (new tab instead of new window in Terminal.app)
|
|
330
329
|
```json
|
|
331
|
-
|
|
330
|
+
"terminal_command": "ttab {script}"
|
|
332
331
|
```
|
|
333
332
|
|
|
334
|
-
|
|
335
|
-
macOS:
|
|
336
|
-
```json
|
|
337
|
-
"terminal_command": "open -n -a Alacritty.app --args -e bash {script}"
|
|
338
|
-
```
|
|
339
|
-
Linux:
|
|
333
|
+
#### [wttab](https://github.com/lalilaloe/wttab) (new tab in Windows Terminal)
|
|
340
334
|
```json
|
|
341
|
-
|
|
335
|
+
"terminal_command": "wttab {script}"
|
|
342
336
|
```
|
|
343
337
|
|
|
344
|
-
|
|
345
|
-
macOS:
|
|
338
|
+
#### More
|
|
346
339
|
```json
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
Linux:
|
|
350
|
-
```json
|
|
351
|
-
"terminal_command": "kitty bash {script}"
|
|
352
|
-
```
|
|
340
|
+
# WezTerm Linux/Windows
|
|
341
|
+
"terminal_command": "wezterm start -- bash {script}"
|
|
353
342
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
343
|
+
# Tabs from within WezTerm
|
|
344
|
+
"terminal_command": "wezterm cli spawn -- bash {script}"
|
|
345
|
+
|
|
346
|
+
# WezTerm macOS:
|
|
347
|
+
"terminal_command": "open -n -a WezTerm.app --args start -- bash {script}"
|
|
348
|
+
|
|
349
|
+
# Tabs from within WezTerm macOS
|
|
350
|
+
"terminal_command": "/Applications/WezTerm.app/Contents/MacOS/wezterm cli spawn -- bash {script}"
|
|
351
|
+
|
|
352
|
+
# Wave Terminal Mac/Linux/Windows. From within Wave Terminal:
|
|
353
|
+
"terminal_command": "wsh run -- bash {script}"
|
|
354
|
+
|
|
355
|
+
# Alacritty macOS:
|
|
356
|
+
"terminal_command": "open -n -a Alacritty.app --args -e bash {script}"
|
|
357
|
+
|
|
358
|
+
# Alacritty Linux:
|
|
359
|
+
"terminal_command": "alacritty -e bash {script}"
|
|
360
|
+
|
|
361
|
+
# Kitty macOS:
|
|
362
|
+
"terminal_command": "open -n -a kitty.app --args {script}"
|
|
363
|
+
|
|
364
|
+
# Kitty Linux
|
|
365
|
+
"terminal_command": "kitty {script}"
|
|
357
366
|
```
|
|
358
|
-
Note: Requires `allow-external-apps=true` in `~/.termux/termux.properties`
|
|
359
367
|
|
|
360
|
-
|
|
368
|
+
#### tmux
|
|
361
369
|
```json
|
|
362
|
-
|
|
370
|
+
"terminal_command": "tmux new-window -n hcom {script}"
|
|
363
371
|
```
|
|
364
|
-
Then from a terminal:
|
|
365
|
-
```bash
|
|
366
|
-
# Run hcom open directly in new session
|
|
367
|
-
tmux new-session 'hcom open 3'
|
|
368
|
-
```
|
|
369
|
-
Or once off:
|
|
370
372
|
```bash
|
|
373
|
+
# tmux commands work inside tmux, start a session with:
|
|
374
|
+
tmux new-session 'hcom open 3' # each instance opens in new tmux window
|
|
375
|
+
|
|
376
|
+
# Or one time split-panes:
|
|
371
377
|
# Start tmux with split panes and 3 claude instances in hcom chat
|
|
372
378
|
HCOM_TERMINAL_COMMAND="tmux split-window -h {script}" hcom open 3
|
|
373
379
|
```
|
|
374
380
|
|
|
381
|
+
### Android (Termux)
|
|
382
|
+
|
|
383
|
+
1. Install [Termux](https://f-droid.org/packages/com.termux/) from F-Droid (not Google Play)
|
|
384
|
+
2. Setup:
|
|
385
|
+
```bash
|
|
386
|
+
pkg install python nodejs
|
|
387
|
+
npm install -g @anthropic-ai/claude-cli
|
|
388
|
+
pip install hcom
|
|
389
|
+
```
|
|
390
|
+
3. Enable:
|
|
391
|
+
```bash
|
|
392
|
+
echo "allow-external-apps=true" >> ~/.termux/termux.properties
|
|
393
|
+
termux-reload-settings
|
|
394
|
+
```
|
|
395
|
+
4. Enable: "Display over other apps" permission for visible terminals
|
|
396
|
+
|
|
397
|
+
5. Run: `hcom open`
|
|
398
|
+
|
|
399
|
+
---
|
|
375
400
|
|
|
376
401
|
</details>
|
|
377
402
|
|
|
378
403
|
|
|
379
404
|
<details>
|
|
380
|
-
<summary><strong
|
|
405
|
+
<summary><strong>⚗️ Remove</strong></summary>
|
|
381
406
|
|
|
382
407
|
|
|
383
408
|
### Archive Conversation / Start New
|
|
@@ -416,6 +441,7 @@ hcom cleanup --all
|
|
|
416
441
|
- [Claude Code](https://claude.ai/code)
|
|
417
442
|
|
|
418
443
|
|
|
444
|
+
|
|
419
445
|
## 🌮 License
|
|
420
446
|
|
|
421
447
|
- MIT License
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# hcom - Claude Hook Comms
|
|
2
2
|
|
|
3
3
|
[](https://pypi.org/project/hcom/)
|
|
4
|
-
[](https://opensource.org/license/MIT) [](https://python.org)
|
|
4
|
+
[](https://opensource.org/license/MIT) [](https://python.org) [](https://deepwiki.com/aannoo/claude-hook-comms)
|
|
5
5
|
|
|
6
|
-
CLI tool for launching multiple Claude Code terminals with interactive [subagents](https://docs.anthropic.com/en/docs/claude-code/sub-agents), headless persistence, and real-time communication via [hooks](https://docs.anthropic.com/en/docs/claude-code/hooks). Works on Mac, Linux, and
|
|
6
|
+
CLI tool for launching multiple Claude Code terminals with interactive [subagents](https://docs.anthropic.com/en/docs/claude-code/sub-agents), headless persistence, and real-time communication via [hooks](https://docs.anthropic.com/en/docs/claude-code/hooks). Works on Mac, Linux, Windows, and Android with zero dependencies.
|
|
7
7
|
|
|
8
|
-

|
|
9
9
|
|
|
10
10
|
## 🥦 Usage
|
|
11
11
|
|
|
@@ -23,28 +23,28 @@ hcom open 2
|
|
|
23
23
|
| Commands | |
|
|
24
24
|
|---------|-------------|
|
|
25
25
|
| `hcom open [n]` | Launch `n` instances or named agents |
|
|
26
|
-
| `hcom watch` |
|
|
27
|
-
| `hcom clear` |
|
|
26
|
+
| `hcom watch` | View live dashboard and messaging |
|
|
27
|
+
| `hcom clear` | Clear and start new conversation |
|
|
28
28
|
| `hcom cleanup` | Safely remove hcom hooks, preserving your project settings |
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
## 🦆 What It Does
|
|
32
32
|
|
|
33
|
-
`hcom open` adds hooks to the `.claude/settings.local.json` file in the current folder and launches terminals with claude code that remain active, waiting to respond to messages in the shared chat.
|
|
33
|
+
`hcom open` adds hooks to the `.claude/settings.local.json` file in the current folder and launches terminals with claude code that remain active, waiting to respond to messages in the shared chat. Normal Claude Code opened with `claude` remains unaffected by hcom.
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
### Subagents in their own terminal
|
|
36
36
|
```bash
|
|
37
37
|
# Launch subagents from your .claude/agents
|
|
38
38
|
hcom open planner code-writer reviewer
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
### Persistent headless instances
|
|
42
42
|
```bash
|
|
43
43
|
# Launch one headless instance (default 30min timeout)
|
|
44
44
|
hcom open -p
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
### Groups and direct messages
|
|
48
48
|
```bash
|
|
49
49
|
hcom open --prefix cool # Creates cool-hovoa7
|
|
50
50
|
hcom open --prefix cool # Creates cool-homab8
|
|
@@ -52,6 +52,13 @@ hcom send '@cool hi, you are cool'
|
|
|
52
52
|
hcom send '@homab8 hi, you are cooler'
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
### Persistent thinking mode
|
|
56
|
+
```bash
|
|
57
|
+
# Thinking mode maintains for entire session
|
|
58
|
+
HCOM_INITIAL_PROMPT="ultrathink and do x" hcom open
|
|
59
|
+
# Every new message reply uses ultrathink
|
|
60
|
+
```
|
|
61
|
+
|
|
55
62
|
---
|
|
56
63
|
|
|
57
64
|
|
|
@@ -66,6 +73,7 @@ hcom send '@homab8 hi, you are cooler'
|
|
|
66
73
|
- **@Mention Targeting** - Send messages to specific instances or teams
|
|
67
74
|
- **Session Persistence** - Resume previous conversations automatically
|
|
68
75
|
- **Zero Dependencies** - Pure Python stdlib, works everywhere
|
|
76
|
+
- **Cross-platform** - Native support for Windows, WSL, macOS, Linux, Android
|
|
69
77
|
|
|
70
78
|
</details>
|
|
71
79
|
|
|
@@ -113,7 +121,7 @@ hcom open --prefix notcool # creates notcool-hovoc9
|
|
|
113
121
|
|
|
114
122
|
# Launch 3 headless instances that die after 60 seconds of inactivity
|
|
115
123
|
HCOM_WAIT_TIMEOUT="60" hcom open 3 -p
|
|
116
|
-
# Manually kill all
|
|
124
|
+
# Manually kill all instances
|
|
117
125
|
hcom kill --all
|
|
118
126
|
|
|
119
127
|
# Launch multiple of the same subagent
|
|
@@ -195,6 +203,9 @@ $env:HCOM_INITIAL_PROMPT="go home buddy!"; hcom open
|
|
|
195
203
|
```
|
|
196
204
|
|
|
197
205
|
### Status Indicators
|
|
206
|
+
|
|
207
|
+
When running `hcom watch`, each instance shows its current state:
|
|
208
|
+
|
|
198
209
|
- ◉ **thinking** (cyan) - Processing input
|
|
199
210
|
- ▷ **responding** (green) - Generating text response
|
|
200
211
|
- ▶ **executing** (green) - Running tools
|
|
@@ -213,13 +224,13 @@ $env:HCOM_INITIAL_PROMPT="go home buddy!"; hcom open
|
|
|
213
224
|
hcom adds hooks to your project directory's `.claude/settings.local.json`:
|
|
214
225
|
|
|
215
226
|
1. **Sending**: Claude agents use `echo "HCOM_SEND:message"` internally (you use `hcom send` from terminal or dashboard)
|
|
216
|
-
2. **Receiving**: Other Claudes get notified via Stop
|
|
227
|
+
2. **Receiving**: Other Claudes get notified via hooks (PostToolUse or Stop)
|
|
217
228
|
3. **Waiting**: Stop hook keeps Claude in a waiting state for new messages
|
|
218
229
|
|
|
219
230
|
- **Identity**: Each instance gets a unique name based on session ID (e.g., "hovoa7")
|
|
220
231
|
- **Persistence**: Names persist across `--resume` maintaining conversation context
|
|
221
232
|
- **Status Detection**: Notification hook tracks permission requests and activity
|
|
222
|
-
- **Agents**: When you run `hcom open researcher`, it loads an interactive Claude session with a system prompt from `.claude/agents/researcher.md` (local) or `~/.claude/agents/researcher.md` (global). Specified `model:` and `tools:` are carried over
|
|
233
|
+
- **Agents**: When you run `hcom open researcher`, it loads an interactive Claude session with a system prompt from `.claude/agents/researcher.md` (local) or `~/.claude/agents/researcher.md` (global). Specified `model:` and `tools:` are carried over
|
|
223
234
|
|
|
224
235
|
### Architecture
|
|
225
236
|
- **Single conversation** - All instances share one global conversation
|
|
@@ -227,7 +238,7 @@ hcom adds hooks to your project directory's `.claude/settings.local.json`:
|
|
|
227
238
|
- **@-mention filtering** - Target messages to specific instances or teams
|
|
228
239
|
|
|
229
240
|
### File Structure
|
|
230
|
-
```
|
|
241
|
+
```plaintext
|
|
231
242
|
~/.hcom/
|
|
232
243
|
├── hcom.log # Conversation log
|
|
233
244
|
├── instances/ # Instance tracking
|
|
@@ -251,21 +262,22 @@ your-project/
|
|
|
251
262
|
Configure terminal behavior in `~/.hcom/config.json`:
|
|
252
263
|
- `"terminal_mode": "new_window"` - Opens new terminal window(s) (default)
|
|
253
264
|
- `"terminal_mode": "same_terminal"` - Opens in current terminal
|
|
254
|
-
|
|
265
|
+
|
|
266
|
+
#### Running in current terminal temporarily
|
|
267
|
+
```bash
|
|
268
|
+
# For single instances
|
|
269
|
+
HCOM_TERMINAL_MODE=same_terminal hcom open
|
|
270
|
+
```
|
|
255
271
|
|
|
256
272
|
### Default Terminals
|
|
257
273
|
|
|
258
274
|
- **macOS**: Terminal.app
|
|
259
275
|
- **Linux**: gnome-terminal, konsole, or xterm
|
|
260
276
|
- **Windows & WSL**: Windows Terminal / Git Bash
|
|
277
|
+
- **Android**: Termux
|
|
261
278
|
|
|
262
|
-
### Running in Current Terminal temporarily
|
|
263
|
-
```bash
|
|
264
|
-
# For single instances
|
|
265
|
-
HCOM_TERMINAL_MODE=same_terminal hcom open
|
|
266
|
-
```
|
|
267
279
|
|
|
268
|
-
### Custom
|
|
280
|
+
### Custom Terminals
|
|
269
281
|
|
|
270
282
|
Configure `terminal_command` in `~/.hcom/config.json` (permanent) or environment variables (temporary).
|
|
271
283
|
|
|
@@ -279,78 +291,91 @@ Your custom command just needs to:
|
|
|
279
291
|
|
|
280
292
|
Example template: `your_terminal_command --execute "bash {script}"`
|
|
281
293
|
|
|
282
|
-
###
|
|
283
|
-
```json
|
|
284
|
-
"terminal_command": "osascript -e 'tell app \"iTerm\" to tell (create window with default profile) to tell current session to write text \"{script}\"'"
|
|
285
|
-
```
|
|
294
|
+
### Custom Terminal Examples
|
|
286
295
|
|
|
287
|
-
|
|
288
|
-
Windows:
|
|
289
|
-
```json
|
|
290
|
-
"terminal_command": "wezterm start -- bash {script}"
|
|
291
|
-
```
|
|
292
|
-
Or open tabs from within WezTerm:
|
|
293
|
-
```json
|
|
294
|
-
"terminal_command": "wezterm cli spawn -- bash {script}"
|
|
295
|
-
```
|
|
296
|
-
macOS/Linux:
|
|
296
|
+
#### iTerm2
|
|
297
297
|
```json
|
|
298
|
-
|
|
298
|
+
"terminal_command": "open -a iTerm {script}"
|
|
299
299
|
```
|
|
300
300
|
|
|
301
|
-
|
|
302
|
-
Windows. From within Wave Terminal:
|
|
301
|
+
#### [ttab](https://github.com/mklement0/ttab) (new tab instead of new window in Terminal.app)
|
|
303
302
|
```json
|
|
304
|
-
|
|
303
|
+
"terminal_command": "ttab {script}"
|
|
305
304
|
```
|
|
306
305
|
|
|
307
|
-
|
|
308
|
-
macOS:
|
|
309
|
-
```json
|
|
310
|
-
"terminal_command": "open -n -a Alacritty.app --args -e bash {script}"
|
|
311
|
-
```
|
|
312
|
-
Linux:
|
|
306
|
+
#### [wttab](https://github.com/lalilaloe/wttab) (new tab in Windows Terminal)
|
|
313
307
|
```json
|
|
314
|
-
|
|
308
|
+
"terminal_command": "wttab {script}"
|
|
315
309
|
```
|
|
316
310
|
|
|
317
|
-
|
|
318
|
-
macOS:
|
|
311
|
+
#### More
|
|
319
312
|
```json
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
Linux:
|
|
323
|
-
```json
|
|
324
|
-
"terminal_command": "kitty bash {script}"
|
|
325
|
-
```
|
|
313
|
+
# WezTerm Linux/Windows
|
|
314
|
+
"terminal_command": "wezterm start -- bash {script}"
|
|
326
315
|
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
316
|
+
# Tabs from within WezTerm
|
|
317
|
+
"terminal_command": "wezterm cli spawn -- bash {script}"
|
|
318
|
+
|
|
319
|
+
# WezTerm macOS:
|
|
320
|
+
"terminal_command": "open -n -a WezTerm.app --args start -- bash {script}"
|
|
321
|
+
|
|
322
|
+
# Tabs from within WezTerm macOS
|
|
323
|
+
"terminal_command": "/Applications/WezTerm.app/Contents/MacOS/wezterm cli spawn -- bash {script}"
|
|
324
|
+
|
|
325
|
+
# Wave Terminal Mac/Linux/Windows. From within Wave Terminal:
|
|
326
|
+
"terminal_command": "wsh run -- bash {script}"
|
|
327
|
+
|
|
328
|
+
# Alacritty macOS:
|
|
329
|
+
"terminal_command": "open -n -a Alacritty.app --args -e bash {script}"
|
|
330
|
+
|
|
331
|
+
# Alacritty Linux:
|
|
332
|
+
"terminal_command": "alacritty -e bash {script}"
|
|
333
|
+
|
|
334
|
+
# Kitty macOS:
|
|
335
|
+
"terminal_command": "open -n -a kitty.app --args {script}"
|
|
336
|
+
|
|
337
|
+
# Kitty Linux
|
|
338
|
+
"terminal_command": "kitty {script}"
|
|
330
339
|
```
|
|
331
|
-
Note: Requires `allow-external-apps=true` in `~/.termux/termux.properties`
|
|
332
340
|
|
|
333
|
-
|
|
341
|
+
#### tmux
|
|
334
342
|
```json
|
|
335
|
-
|
|
343
|
+
"terminal_command": "tmux new-window -n hcom {script}"
|
|
336
344
|
```
|
|
337
|
-
Then from a terminal:
|
|
338
|
-
```bash
|
|
339
|
-
# Run hcom open directly in new session
|
|
340
|
-
tmux new-session 'hcom open 3'
|
|
341
|
-
```
|
|
342
|
-
Or once off:
|
|
343
345
|
```bash
|
|
346
|
+
# tmux commands work inside tmux, start a session with:
|
|
347
|
+
tmux new-session 'hcom open 3' # each instance opens in new tmux window
|
|
348
|
+
|
|
349
|
+
# Or one time split-panes:
|
|
344
350
|
# Start tmux with split panes and 3 claude instances in hcom chat
|
|
345
351
|
HCOM_TERMINAL_COMMAND="tmux split-window -h {script}" hcom open 3
|
|
346
352
|
```
|
|
347
353
|
|
|
354
|
+
### Android (Termux)
|
|
355
|
+
|
|
356
|
+
1. Install [Termux](https://f-droid.org/packages/com.termux/) from F-Droid (not Google Play)
|
|
357
|
+
2. Setup:
|
|
358
|
+
```bash
|
|
359
|
+
pkg install python nodejs
|
|
360
|
+
npm install -g @anthropic-ai/claude-cli
|
|
361
|
+
pip install hcom
|
|
362
|
+
```
|
|
363
|
+
3. Enable:
|
|
364
|
+
```bash
|
|
365
|
+
echo "allow-external-apps=true" >> ~/.termux/termux.properties
|
|
366
|
+
termux-reload-settings
|
|
367
|
+
```
|
|
368
|
+
4. Enable: "Display over other apps" permission for visible terminals
|
|
369
|
+
|
|
370
|
+
5. Run: `hcom open`
|
|
371
|
+
|
|
372
|
+
---
|
|
348
373
|
|
|
349
374
|
</details>
|
|
350
375
|
|
|
351
376
|
|
|
352
377
|
<details>
|
|
353
|
-
<summary><strong
|
|
378
|
+
<summary><strong>⚗️ Remove</strong></summary>
|
|
354
379
|
|
|
355
380
|
|
|
356
381
|
### Archive Conversation / Start New
|
|
@@ -389,6 +414,7 @@ hcom cleanup --all
|
|
|
389
414
|
- [Claude Code](https://claude.ai/code)
|
|
390
415
|
|
|
391
416
|
|
|
417
|
+
|
|
392
418
|
## 🌮 License
|
|
393
419
|
|
|
394
420
|
- MIT License
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hcom"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.2"
|
|
8
8
|
description = "CLI tool for launching multiple Claude Code terminals with interactive subagents, headless persistence, and real-time communication via hooks"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.7"
|