hcom 0.4.2.post3__tar.gz → 0.6.0__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.6.0/MANIFEST.in +17 -0
- hcom-0.6.0/PKG-INFO +269 -0
- hcom-0.6.0/README.md +242 -0
- {hcom-0.4.2.post3 → hcom-0.6.0}/pyproject.toml +8 -5
- hcom-0.6.0/src/hcom/__init__.py +3 -0
- hcom-0.6.0/src/hcom/__main__.py +4 -0
- hcom-0.4.2.post3/src/hcom/__main__.py → hcom-0.6.0/src/hcom/cli.py +1917 -1048
- hcom-0.6.0/src/hcom/shared.py +1036 -0
- hcom-0.6.0/src/hcom/ui.py +2965 -0
- hcom-0.6.0/src/hcom.egg-info/PKG-INFO +269 -0
- {hcom-0.4.2.post3 → hcom-0.6.0}/src/hcom.egg-info/SOURCES.txt +3 -1
- hcom-0.4.2.post3/MANIFEST.in +0 -14
- hcom-0.4.2.post3/PKG-INFO +0 -452
- hcom-0.4.2.post3/README.md +0 -425
- hcom-0.4.2.post3/setup.py +0 -36
- hcom-0.4.2.post3/src/hcom/__init__.py +0 -3
- hcom-0.4.2.post3/src/hcom.egg-info/PKG-INFO +0 -452
- {hcom-0.4.2.post3 → hcom-0.6.0}/setup.cfg +0 -0
- {hcom-0.4.2.post3 → hcom-0.6.0}/src/hcom.egg-info/dependency_links.txt +0 -0
- {hcom-0.4.2.post3 → hcom-0.6.0}/src/hcom.egg-info/entry_points.txt +0 -0
- {hcom-0.4.2.post3 → hcom-0.6.0}/src/hcom.egg-info/top_level.txt +0 -0
hcom-0.6.0/MANIFEST.in
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Exclude development directories from source distribution
|
|
2
|
+
global-exclude __pycache__
|
|
3
|
+
global-exclude *.py[co]
|
|
4
|
+
prune test
|
|
5
|
+
prune tests
|
|
6
|
+
prune docs
|
|
7
|
+
prune dev
|
|
8
|
+
prune old
|
|
9
|
+
prune archive
|
|
10
|
+
prune prototypes
|
|
11
|
+
prune temp
|
|
12
|
+
prune plugin
|
|
13
|
+
prune scripts
|
|
14
|
+
prune reports
|
|
15
|
+
prune tui
|
|
16
|
+
prune todos
|
|
17
|
+
prune logs
|
hcom-0.6.0/PKG-INFO
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hcom
|
|
3
|
+
Version: 0.6.0
|
|
4
|
+
Summary: Launch multiple Claude Code instances (terminal, headless, or subagents) that communicate together in real time via hooks.
|
|
5
|
+
Author: aannoo
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/aannoo/claude-hook-comms
|
|
8
|
+
Project-URL: Repository, https://github.com/aannoo/claude-hook-comms
|
|
9
|
+
Project-URL: Issues, https://github.com/aannoo/claude-hook-comms/issues
|
|
10
|
+
Project-URL: Documentation, https://github.com/aannoo/claude-hook-comms#readme
|
|
11
|
+
Keywords: claude,claude-code,hooks,agents,cli,multi-agent,orchestration,terminal
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Operating System :: MacOS
|
|
17
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
18
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
21
|
+
Classifier: Topic :: Communications :: Chat
|
|
22
|
+
Classifier: Topic :: Software Development
|
|
23
|
+
Classifier: Topic :: System :: Monitoring
|
|
24
|
+
Classifier: Topic :: Terminals
|
|
25
|
+
Requires-Python: >=3.10
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
|
|
28
|
+
# hcom — Claude Hook Comms
|
|
29
|
+
|
|
30
|
+
[](https://pypi.org/project/hcom/)
|
|
31
|
+
[](https://opensource.org/license/MIT) [](https://python.org) [](https://deepwiki.com/aannoo/claude-hook-comms)
|
|
32
|
+
|
|
33
|
+
Launch multiple Claude Code instances (terminal, headless, or subagents) that communicate together in real time via hooks.
|
|
34
|
+
|
|
35
|
+

|
|
36
|
+
|
|
37
|
+
## Start
|
|
38
|
+
|
|
39
|
+
#### Run without installing
|
|
40
|
+
```bash
|
|
41
|
+
uvx hcom 2
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
#### Install
|
|
45
|
+
```bash
|
|
46
|
+
pip install hcom # or: uv tool install hcom
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
#### Use
|
|
50
|
+
```bash
|
|
51
|
+
hcom # UI - launch, monitor, message
|
|
52
|
+
claude 'run hcom start' # activate hcom for any claude code
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
## What it does
|
|
57
|
+
|
|
58
|
+
`hcom` adds hooks then launches terminals with Claude Code that remain active, waiting to respond to messages. Normal `claude` remains unaffected by hcom, but can opt-in/out with `hcom start`/`hcom stop`. Safely remove hcom hooks with `hcom reset`. Works on Mac, Linux, Windows, Android.
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
## Commands
|
|
62
|
+
|
|
63
|
+
| Command | Description
|
|
64
|
+
|---------|-------------|
|
|
65
|
+
| `hcom` | Interactive dashboard |
|
|
66
|
+
| `hcom <n>` | Launch `n` instances |
|
|
67
|
+
| `hcom start` | Enable participation |
|
|
68
|
+
| `hcom stop` | Disable participation |
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
## Examples
|
|
72
|
+
|
|
73
|
+
#### communicate with task tool subagents
|
|
74
|
+
```bash
|
|
75
|
+
claude 'use 3x task tool with task: say hi in hcom chat'
|
|
76
|
+
# Each subagent gets unique identity and can communicate with siblings
|
|
77
|
+
# Parent resumes after Task completes with full conversation history
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### persistent headless instances
|
|
81
|
+
```bash
|
|
82
|
+
hcom 1 claude -p # launch with default 30min timeout
|
|
83
|
+
hcom # See what it's doing from dashboard
|
|
84
|
+
hcom stop # Let it die earlier than timeout
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### .claude/agents in interactive claude window
|
|
88
|
+
```bash
|
|
89
|
+
HCOM_AGENT=code-writer hcom 1
|
|
90
|
+
HCOM_AGENT=reviewer hcom 1
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### @-mention: groups and direct
|
|
94
|
+
```bash
|
|
95
|
+
HCOM_TAG=cooltag hcom 2
|
|
96
|
+
hcom send '@cooltag hi, you both are cool'
|
|
97
|
+
hcom send '@john you are cooler'
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### toggle inside claude code
|
|
101
|
+
```bash
|
|
102
|
+
claude # Normal Claude Code
|
|
103
|
+
'run hcom start' # Opt-in to receive messages
|
|
104
|
+
'run hcom stop' # Opt-out, continue as normal claude code
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
<details>
|
|
110
|
+
<summary><strong>All commands</strong></summary>
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
Usage: hcom # UI
|
|
115
|
+
[ENV_VARS] hcom <COUNT> [claude <ARGS>...]
|
|
116
|
+
hcom watch [--logs|--status|--wait [SEC]]
|
|
117
|
+
hcom send "message"
|
|
118
|
+
hcom stop [alias|all]
|
|
119
|
+
hcom start [alias]
|
|
120
|
+
hcom reset [logs|hooks|config]
|
|
121
|
+
|
|
122
|
+
Launch Examples:
|
|
123
|
+
hcom 3 Open 3 terminals with claude connected to hcom
|
|
124
|
+
hcom 3 claude -p + Headless
|
|
125
|
+
HCOM_TAG=api hcom 3 claude -p + @-mention group tag
|
|
126
|
+
claude 'run hcom start' claude code with prompt will also work
|
|
127
|
+
|
|
128
|
+
Commands:
|
|
129
|
+
watch messaging/status/launch UI (same as hcom no args)
|
|
130
|
+
--logs Print all messages
|
|
131
|
+
--status Print instance status JSON
|
|
132
|
+
--wait [SEC] Wait and notify for new message
|
|
133
|
+
|
|
134
|
+
send "msg" Send message to all instances
|
|
135
|
+
send "@alias msg" Send to specific instance/group
|
|
136
|
+
|
|
137
|
+
stop Stop current instance (from inside Claude)
|
|
138
|
+
stop <alias> Stop specific instance
|
|
139
|
+
stop all Stop all instances
|
|
140
|
+
|
|
141
|
+
start Start current instance (from inside Claude)
|
|
142
|
+
start <alias> Start specific instance
|
|
143
|
+
|
|
144
|
+
reset Stop all + archive logs + remove hooks + clear config
|
|
145
|
+
reset logs Clear + archive conversation log
|
|
146
|
+
reset hooks Safely remove hcom hooks from claude settings.json
|
|
147
|
+
reset config Clear + backup config.env
|
|
148
|
+
|
|
149
|
+
Environment Variables:
|
|
150
|
+
HCOM_TAG=name Group tag (creates name-* instances)
|
|
151
|
+
HCOM_AGENT=type Agent type (comma-separated for multiple)
|
|
152
|
+
HCOM_TERMINAL=mode Terminal: new|here|print|"custom {script}"
|
|
153
|
+
HCOM_HINTS=text Text appended to all messages received by instance
|
|
154
|
+
HCOM_TIMEOUT=secs Time until disconnected from hcom chat (default 1800s / 30mins)
|
|
155
|
+
HCOM_SUBAGENT_TIMEOUT=secs Subagent idle timeout (default 30s)
|
|
156
|
+
HCOM_CLAUDE_ARGS=args Claude CLI defaults (e.g., '-p --model opus "hello!"')
|
|
157
|
+
|
|
158
|
+
ANTHROPIC_MODEL=opus # Any env var passed through to Claude Code
|
|
159
|
+
|
|
160
|
+
Persist Env Vars in `~/.hcom/config.env`
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
### Requirements
|
|
166
|
+
|
|
167
|
+
- Python 3.10+
|
|
168
|
+
- Claude Code
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
</details>
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
<details>
|
|
177
|
+
<summary><strong> Terminal Options</strong></summary>
|
|
178
|
+
|
|
179
|
+
### Default Terminals
|
|
180
|
+
|
|
181
|
+
- **macOS**: Terminal.app
|
|
182
|
+
- **Linux**: gnome-terminal, konsole, or xterm
|
|
183
|
+
- **Windows (native) & WSL**: Windows Terminal / Git Bash
|
|
184
|
+
- **Android**: Termux
|
|
185
|
+
|
|
186
|
+
### Terminal Mode
|
|
187
|
+
|
|
188
|
+
- `HCOM_TERMINAL=new` - New terminal windows (default)
|
|
189
|
+
- `HCOM_TERMINAL=here` - Current terminal window
|
|
190
|
+
- `HCOM_TERMINAL="open -a iTerm {script}"` - Custom terminal
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
### Custom Terminal
|
|
194
|
+
|
|
195
|
+
Your custom command just needs to:
|
|
196
|
+
1. Accept `{script}` as a placeholder that will be replaced with a script path
|
|
197
|
+
2. Execute that script with bash
|
|
198
|
+
|
|
199
|
+
### Custom Terminal Examples
|
|
200
|
+
|
|
201
|
+
##### [ttab](https://github.com/mklement0/ttab) (new tab instead of new window in Terminal.app)
|
|
202
|
+
```bash
|
|
203
|
+
HCOM_TERMINAL="ttab {script}"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
##### [wttab](https://github.com/lalilaloe/wttab) (new tab in Windows Terminal)
|
|
207
|
+
```bash
|
|
208
|
+
HCOM_TERMINAL="wttab {script}"
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
##### More
|
|
212
|
+
```bash
|
|
213
|
+
# Wave Terminal Mac/Linux/Windows. From within Wave Terminal:
|
|
214
|
+
HCOM_TERMINAL="wsh run -- bash {script}"
|
|
215
|
+
|
|
216
|
+
# Alacritty macOS:
|
|
217
|
+
HCOM_TERMINAL="open -n -a Alacritty.app --args -e bash {script}"
|
|
218
|
+
|
|
219
|
+
# Alacritty Linux:
|
|
220
|
+
HCOM_TERMINAL="alacritty -e bash {script}"
|
|
221
|
+
|
|
222
|
+
# Kitty macOS:
|
|
223
|
+
HCOM_TERMINAL="open -n -a kitty.app --args {script}"
|
|
224
|
+
|
|
225
|
+
# Kitty Linux
|
|
226
|
+
HCOM_TERMINAL="kitty {script}"
|
|
227
|
+
|
|
228
|
+
# tmux with split panes and 3 claude instances in hcom chat
|
|
229
|
+
HCOM_TERMINAL="tmux split-window -h {script}" hcom 3
|
|
230
|
+
|
|
231
|
+
# WezTerm Linux/Windows
|
|
232
|
+
HCOM_TERMINAL="wezterm start -- bash {script}"
|
|
233
|
+
|
|
234
|
+
# Tabs from within WezTerm
|
|
235
|
+
HCOM_TERMINAL="wezterm cli spawn -- bash {script}"
|
|
236
|
+
|
|
237
|
+
# WezTerm macOS:
|
|
238
|
+
HCOM_TERMINAL="open -n -a WezTerm.app --args start -- bash {script}"
|
|
239
|
+
|
|
240
|
+
# Tabs from within WezTerm macOS
|
|
241
|
+
HCOM_TERMINAL="/Applications/WezTerm.app/Contents/MacOS/wezterm cli spawn -- bash {script}"
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
#### Android (Termux)
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
#1. Install:
|
|
248
|
+
Termux from F-Droid (not Google Play)
|
|
249
|
+
#2. Setup:
|
|
250
|
+
pkg install python nodejs
|
|
251
|
+
npm install -g @anthropic-ai/claude-cli
|
|
252
|
+
pip install hcom
|
|
253
|
+
#3. Enable:
|
|
254
|
+
echo "allow-external-apps=true" >> ~/.termux/termux.properties
|
|
255
|
+
termux-reload-settings
|
|
256
|
+
#4. Enable:
|
|
257
|
+
"Display over other apps" permission for visible terminals
|
|
258
|
+
#5. Run:
|
|
259
|
+
`hcom 2`
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
</details>
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
### License
|
|
267
|
+
|
|
268
|
+
MIT
|
|
269
|
+
|
hcom-0.6.0/README.md
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# hcom — Claude Hook Comms
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/hcom/)
|
|
4
|
+
[](https://opensource.org/license/MIT) [](https://python.org) [](https://deepwiki.com/aannoo/claude-hook-comms)
|
|
5
|
+
|
|
6
|
+
Launch multiple Claude Code instances (terminal, headless, or subagents) that communicate together in real time via hooks.
|
|
7
|
+
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
## Start
|
|
11
|
+
|
|
12
|
+
#### Run without installing
|
|
13
|
+
```bash
|
|
14
|
+
uvx hcom 2
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
#### Install
|
|
18
|
+
```bash
|
|
19
|
+
pip install hcom # or: uv tool install hcom
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
#### Use
|
|
23
|
+
```bash
|
|
24
|
+
hcom # UI - launch, monitor, message
|
|
25
|
+
claude 'run hcom start' # activate hcom for any claude code
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## What it does
|
|
30
|
+
|
|
31
|
+
`hcom` adds hooks then launches terminals with Claude Code that remain active, waiting to respond to messages. Normal `claude` remains unaffected by hcom, but can opt-in/out with `hcom start`/`hcom stop`. Safely remove hcom hooks with `hcom reset`. Works on Mac, Linux, Windows, Android.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Commands
|
|
35
|
+
|
|
36
|
+
| Command | Description
|
|
37
|
+
|---------|-------------|
|
|
38
|
+
| `hcom` | Interactive dashboard |
|
|
39
|
+
| `hcom <n>` | Launch `n` instances |
|
|
40
|
+
| `hcom start` | Enable participation |
|
|
41
|
+
| `hcom stop` | Disable participation |
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Examples
|
|
45
|
+
|
|
46
|
+
#### communicate with task tool subagents
|
|
47
|
+
```bash
|
|
48
|
+
claude 'use 3x task tool with task: say hi in hcom chat'
|
|
49
|
+
# Each subagent gets unique identity and can communicate with siblings
|
|
50
|
+
# Parent resumes after Task completes with full conversation history
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### persistent headless instances
|
|
54
|
+
```bash
|
|
55
|
+
hcom 1 claude -p # launch with default 30min timeout
|
|
56
|
+
hcom # See what it's doing from dashboard
|
|
57
|
+
hcom stop # Let it die earlier than timeout
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
#### .claude/agents in interactive claude window
|
|
61
|
+
```bash
|
|
62
|
+
HCOM_AGENT=code-writer hcom 1
|
|
63
|
+
HCOM_AGENT=reviewer hcom 1
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
#### @-mention: groups and direct
|
|
67
|
+
```bash
|
|
68
|
+
HCOM_TAG=cooltag hcom 2
|
|
69
|
+
hcom send '@cooltag hi, you both are cool'
|
|
70
|
+
hcom send '@john you are cooler'
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
#### toggle inside claude code
|
|
74
|
+
```bash
|
|
75
|
+
claude # Normal Claude Code
|
|
76
|
+
'run hcom start' # Opt-in to receive messages
|
|
77
|
+
'run hcom stop' # Opt-out, continue as normal claude code
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
<details>
|
|
83
|
+
<summary><strong>All commands</strong></summary>
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
Usage: hcom # UI
|
|
88
|
+
[ENV_VARS] hcom <COUNT> [claude <ARGS>...]
|
|
89
|
+
hcom watch [--logs|--status|--wait [SEC]]
|
|
90
|
+
hcom send "message"
|
|
91
|
+
hcom stop [alias|all]
|
|
92
|
+
hcom start [alias]
|
|
93
|
+
hcom reset [logs|hooks|config]
|
|
94
|
+
|
|
95
|
+
Launch Examples:
|
|
96
|
+
hcom 3 Open 3 terminals with claude connected to hcom
|
|
97
|
+
hcom 3 claude -p + Headless
|
|
98
|
+
HCOM_TAG=api hcom 3 claude -p + @-mention group tag
|
|
99
|
+
claude 'run hcom start' claude code with prompt will also work
|
|
100
|
+
|
|
101
|
+
Commands:
|
|
102
|
+
watch messaging/status/launch UI (same as hcom no args)
|
|
103
|
+
--logs Print all messages
|
|
104
|
+
--status Print instance status JSON
|
|
105
|
+
--wait [SEC] Wait and notify for new message
|
|
106
|
+
|
|
107
|
+
send "msg" Send message to all instances
|
|
108
|
+
send "@alias msg" Send to specific instance/group
|
|
109
|
+
|
|
110
|
+
stop Stop current instance (from inside Claude)
|
|
111
|
+
stop <alias> Stop specific instance
|
|
112
|
+
stop all Stop all instances
|
|
113
|
+
|
|
114
|
+
start Start current instance (from inside Claude)
|
|
115
|
+
start <alias> Start specific instance
|
|
116
|
+
|
|
117
|
+
reset Stop all + archive logs + remove hooks + clear config
|
|
118
|
+
reset logs Clear + archive conversation log
|
|
119
|
+
reset hooks Safely remove hcom hooks from claude settings.json
|
|
120
|
+
reset config Clear + backup config.env
|
|
121
|
+
|
|
122
|
+
Environment Variables:
|
|
123
|
+
HCOM_TAG=name Group tag (creates name-* instances)
|
|
124
|
+
HCOM_AGENT=type Agent type (comma-separated for multiple)
|
|
125
|
+
HCOM_TERMINAL=mode Terminal: new|here|print|"custom {script}"
|
|
126
|
+
HCOM_HINTS=text Text appended to all messages received by instance
|
|
127
|
+
HCOM_TIMEOUT=secs Time until disconnected from hcom chat (default 1800s / 30mins)
|
|
128
|
+
HCOM_SUBAGENT_TIMEOUT=secs Subagent idle timeout (default 30s)
|
|
129
|
+
HCOM_CLAUDE_ARGS=args Claude CLI defaults (e.g., '-p --model opus "hello!"')
|
|
130
|
+
|
|
131
|
+
ANTHROPIC_MODEL=opus # Any env var passed through to Claude Code
|
|
132
|
+
|
|
133
|
+
Persist Env Vars in `~/.hcom/config.env`
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### Requirements
|
|
139
|
+
|
|
140
|
+
- Python 3.10+
|
|
141
|
+
- Claude Code
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
</details>
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
<details>
|
|
150
|
+
<summary><strong> Terminal Options</strong></summary>
|
|
151
|
+
|
|
152
|
+
### Default Terminals
|
|
153
|
+
|
|
154
|
+
- **macOS**: Terminal.app
|
|
155
|
+
- **Linux**: gnome-terminal, konsole, or xterm
|
|
156
|
+
- **Windows (native) & WSL**: Windows Terminal / Git Bash
|
|
157
|
+
- **Android**: Termux
|
|
158
|
+
|
|
159
|
+
### Terminal Mode
|
|
160
|
+
|
|
161
|
+
- `HCOM_TERMINAL=new` - New terminal windows (default)
|
|
162
|
+
- `HCOM_TERMINAL=here` - Current terminal window
|
|
163
|
+
- `HCOM_TERMINAL="open -a iTerm {script}"` - Custom terminal
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
### Custom Terminal
|
|
167
|
+
|
|
168
|
+
Your custom command just needs to:
|
|
169
|
+
1. Accept `{script}` as a placeholder that will be replaced with a script path
|
|
170
|
+
2. Execute that script with bash
|
|
171
|
+
|
|
172
|
+
### Custom Terminal Examples
|
|
173
|
+
|
|
174
|
+
##### [ttab](https://github.com/mklement0/ttab) (new tab instead of new window in Terminal.app)
|
|
175
|
+
```bash
|
|
176
|
+
HCOM_TERMINAL="ttab {script}"
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
##### [wttab](https://github.com/lalilaloe/wttab) (new tab in Windows Terminal)
|
|
180
|
+
```bash
|
|
181
|
+
HCOM_TERMINAL="wttab {script}"
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
##### More
|
|
185
|
+
```bash
|
|
186
|
+
# Wave Terminal Mac/Linux/Windows. From within Wave Terminal:
|
|
187
|
+
HCOM_TERMINAL="wsh run -- bash {script}"
|
|
188
|
+
|
|
189
|
+
# Alacritty macOS:
|
|
190
|
+
HCOM_TERMINAL="open -n -a Alacritty.app --args -e bash {script}"
|
|
191
|
+
|
|
192
|
+
# Alacritty Linux:
|
|
193
|
+
HCOM_TERMINAL="alacritty -e bash {script}"
|
|
194
|
+
|
|
195
|
+
# Kitty macOS:
|
|
196
|
+
HCOM_TERMINAL="open -n -a kitty.app --args {script}"
|
|
197
|
+
|
|
198
|
+
# Kitty Linux
|
|
199
|
+
HCOM_TERMINAL="kitty {script}"
|
|
200
|
+
|
|
201
|
+
# tmux with split panes and 3 claude instances in hcom chat
|
|
202
|
+
HCOM_TERMINAL="tmux split-window -h {script}" hcom 3
|
|
203
|
+
|
|
204
|
+
# WezTerm Linux/Windows
|
|
205
|
+
HCOM_TERMINAL="wezterm start -- bash {script}"
|
|
206
|
+
|
|
207
|
+
# Tabs from within WezTerm
|
|
208
|
+
HCOM_TERMINAL="wezterm cli spawn -- bash {script}"
|
|
209
|
+
|
|
210
|
+
# WezTerm macOS:
|
|
211
|
+
HCOM_TERMINAL="open -n -a WezTerm.app --args start -- bash {script}"
|
|
212
|
+
|
|
213
|
+
# Tabs from within WezTerm macOS
|
|
214
|
+
HCOM_TERMINAL="/Applications/WezTerm.app/Contents/MacOS/wezterm cli spawn -- bash {script}"
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
#### Android (Termux)
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
#1. Install:
|
|
221
|
+
Termux from F-Droid (not Google Play)
|
|
222
|
+
#2. Setup:
|
|
223
|
+
pkg install python nodejs
|
|
224
|
+
npm install -g @anthropic-ai/claude-cli
|
|
225
|
+
pip install hcom
|
|
226
|
+
#3. Enable:
|
|
227
|
+
echo "allow-external-apps=true" >> ~/.termux/termux.properties
|
|
228
|
+
termux-reload-settings
|
|
229
|
+
#4. Enable:
|
|
230
|
+
"Display over other apps" permission for visible terminals
|
|
231
|
+
#5. Run:
|
|
232
|
+
`hcom 2`
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
</details>
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
### License
|
|
240
|
+
|
|
241
|
+
MIT
|
|
242
|
+
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hcom"
|
|
7
|
-
|
|
8
|
-
description = "
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "Launch multiple Claude Code instances (terminal, headless, or subagents) that communicate together in real time via hooks."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
11
11
|
license = "MIT"
|
|
@@ -37,7 +37,10 @@ Issues = "https://github.com/aannoo/claude-hook-comms/issues"
|
|
|
37
37
|
Documentation = "https://github.com/aannoo/claude-hook-comms#readme"
|
|
38
38
|
|
|
39
39
|
[tool.setuptools]
|
|
40
|
-
|
|
40
|
+
packages = ["hcom"]
|
|
41
41
|
|
|
42
|
-
[tool.setuptools.
|
|
43
|
-
|
|
42
|
+
[tool.setuptools.package-dir]
|
|
43
|
+
"" = "src"
|
|
44
|
+
|
|
45
|
+
[tool.setuptools.dynamic]
|
|
46
|
+
version = {attr = "hcom.shared.__version__"}
|