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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hcom
3
- Version: 0.2.1
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
  [![PyPI - Version](https://img.shields.io/pypi/v/hcom)](https://pypi.org/project/hcom/)
31
- [![PyPI - License](https://img.shields.io/pypi/l/hcom)](https://opensource.org/license/MIT) [![Python Version](https://img.shields.io/badge/python-3.7+-blue.svg)](https://python.org)
31
+ [![PyPI - License](https://img.shields.io/pypi/l/hcom)](https://opensource.org/license/MIT) [![Python Version](https://img.shields.io/badge/python-3.7+-blue.svg)](https://python.org) [![DeepWiki](https://img.shields.io/badge/DeepWiki-aannoo%2Fclaude--hook--comms-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](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 Windows with zero dependencies.
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
- ![Claude Hook Comms Example](https://raw.githubusercontent.com/aannoo/claude-hook-comms/main/screenshot.jpg)
35
+ ![Claude Code Hook Comms Example](https://raw.githubusercontent.com/aannoo/claude-hook-comms/main/screencapture.gif)
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` | Live dashboard / messaging |
54
- | `hcom clear` | New conversation log |
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
- **Subagents in their own terminal**
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
- **Persistent headless instances**
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
- **Groups and direct messages**
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 instance
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 hook
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
- - `"terminal_mode": "show_commands"` - Prints commands without executing
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 Terminal Examples
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
- ### iTerm2
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
- ### WezTerm
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
- "terminal_command": "wezterm start -- bash {script}"
325
+ "terminal_command": "open -a iTerm {script}"
326
326
  ```
327
327
 
328
- ### Wave Terminal
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
- "terminal_command": "wsh run -- bash {script}"
330
+ "terminal_command": "ttab {script}"
332
331
  ```
333
332
 
334
- ### Alacritty
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
- "terminal_command": "alacritty -e bash {script}"
335
+ "terminal_command": "wttab {script}"
342
336
  ```
343
337
 
344
- ### Kitty
345
- macOS:
338
+ #### More
346
339
  ```json
347
- "terminal_command": "open -n -a kitty.app --args bash {script}"
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
- ### Termux (Android)
355
- ```json
356
- "terminal_command": "am startservice --user 0 -n com.termux/com.termux.app.RunCommandService -a com.termux.RUN_COMMAND --es com.termux.RUN_COMMAND_PATH {script} --ez com.termux.RUN_COMMAND_BACKGROUND false"
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
- ### tmux
368
+ #### tmux
361
369
  ```json
362
- "terminal_command": "tmux new-window -n hcom {script}"
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>🦆 Remove</strong></summary>
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
  [![PyPI - Version](https://img.shields.io/pypi/v/hcom)](https://pypi.org/project/hcom/)
4
- [![PyPI - License](https://img.shields.io/pypi/l/hcom)](https://opensource.org/license/MIT) [![Python Version](https://img.shields.io/badge/python-3.7+-blue.svg)](https://python.org)
4
+ [![PyPI - License](https://img.shields.io/pypi/l/hcom)](https://opensource.org/license/MIT) [![Python Version](https://img.shields.io/badge/python-3.7+-blue.svg)](https://python.org) [![DeepWiki](https://img.shields.io/badge/DeepWiki-aannoo%2Fclaude--hook--comms-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](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 Windows with zero dependencies.
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
- ![Claude Hook Comms Example](https://raw.githubusercontent.com/aannoo/claude-hook-comms/main/screenshot.jpg)
8
+ ![Claude Code Hook Comms Example](https://raw.githubusercontent.com/aannoo/claude-hook-comms/main/screencapture.gif)
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` | Live dashboard / messaging |
27
- | `hcom clear` | New conversation log |
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
- **Subagents in their own terminal**
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
- **Persistent headless instances**
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
- **Groups and direct messages**
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 instance
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 hook
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
- - `"terminal_mode": "show_commands"` - Prints commands without executing
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 Terminal Examples
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
- ### iTerm2
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
- ### WezTerm
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
- "terminal_command": "wezterm start -- bash {script}"
298
+ "terminal_command": "open -a iTerm {script}"
299
299
  ```
300
300
 
301
- ### Wave Terminal
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
- "terminal_command": "wsh run -- bash {script}"
303
+ "terminal_command": "ttab {script}"
305
304
  ```
306
305
 
307
- ### Alacritty
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
- "terminal_command": "alacritty -e bash {script}"
308
+ "terminal_command": "wttab {script}"
315
309
  ```
316
310
 
317
- ### Kitty
318
- macOS:
311
+ #### More
319
312
  ```json
320
- "terminal_command": "open -n -a kitty.app --args bash {script}"
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
- ### Termux (Android)
328
- ```json
329
- "terminal_command": "am startservice --user 0 -n com.termux/com.termux.app.RunCommandService -a com.termux.RUN_COMMAND --es com.termux.RUN_COMMAND_PATH {script} --ez com.termux.RUN_COMMAND_BACKGROUND false"
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
- ### tmux
341
+ #### tmux
334
342
  ```json
335
- "terminal_command": "tmux new-window -n hcom {script}"
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>🦆 Remove</strong></summary>
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.1"
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"
@@ -1,3 +1,3 @@
1
1
  """Claude Hook Comms - Real-time messaging between Claude Code agents."""
2
2
 
3
- __version__ = "0.2.1"
3
+ __version__ = "0.2.2"