hcom 0.2.1__py3-none-any.whl → 0.2.3__py3-none-any.whl

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.3
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
@@ -0,0 +1,7 @@
1
+ hcom/__init__.py,sha256=XVdRhSuJ9AvtmR7W-fyJBw7ZW3ogUruJJRTIapK72O8,96
2
+ hcom/__main__.py,sha256=Zf7EqN797EHWxAR7Z8D0qvDh6rTtBi78o48ZrfDKAp0,124785
3
+ hcom-0.2.3.dist-info/METADATA,sha256=7nIDFBu8gW_8uiXVbMAJZSzVRpgYS7yYtQjcqJ6pQOk,15834
4
+ hcom-0.2.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
5
+ hcom-0.2.3.dist-info/entry_points.txt,sha256=cz9K9PsgYmORUxNKxVRrpxLS3cxRJcDZkE-PpfvOhI8,44
6
+ hcom-0.2.3.dist-info/top_level.txt,sha256=8AS1nVUWA26vxjDQ5viRxgJnwSvUWk1W6GP4g6ldZ-0,5
7
+ hcom-0.2.3.dist-info/RECORD,,
@@ -1,7 +0,0 @@
1
- hcom/__init__.py,sha256=98Swn5DWHZchyvAuL0ygbd3uPwt1lCLXL-RQDtab30M,96
2
- hcom/__main__.py,sha256=hzOsy6CTDYMc_vsEU4oU1HQADAfLojB0w59aLb3wiNs,121986
3
- hcom-0.2.1.dist-info/METADATA,sha256=JJOnLHrbFXzYuSfvg4RYXnlUPAIuRcqR7c9zswP0nWQ,13591
4
- hcom-0.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
5
- hcom-0.2.1.dist-info/entry_points.txt,sha256=cz9K9PsgYmORUxNKxVRrpxLS3cxRJcDZkE-PpfvOhI8,44
6
- hcom-0.2.1.dist-info/top_level.txt,sha256=8AS1nVUWA26vxjDQ5viRxgJnwSvUWk1W6GP4g6ldZ-0,5
7
- hcom-0.2.1.dist-info/RECORD,,
File without changes