hcom 0.2.0__py3-none-any.whl → 0.2.1__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.
- hcom/__init__.py +1 -1
- hcom/__main__.py +1587 -942
- hcom-0.2.1.dist-info/METADATA +423 -0
- hcom-0.2.1.dist-info/RECORD +7 -0
- hcom-0.2.0.dist-info/METADATA +0 -348
- hcom-0.2.0.dist-info/RECORD +0 -7
- {hcom-0.2.0.dist-info → hcom-0.2.1.dist-info}/WHEEL +0 -0
- {hcom-0.2.0.dist-info → hcom-0.2.1.dist-info}/entry_points.txt +0 -0
- {hcom-0.2.0.dist-info → hcom-0.2.1.dist-info}/top_level.txt +0 -0
hcom-0.2.0.dist-info/METADATA
DELETED
|
@@ -1,348 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: hcom
|
|
3
|
-
Version: 0.2.0
|
|
4
|
-
Summary: Lightweight CLI tool for real-time communication between Claude Code subagents using hooks
|
|
5
|
-
Author-email: aannoo <your@email.com>
|
|
6
|
-
License: 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
|
-
Keywords: claude,claude-code,hooks,agents,cli,multi-agent-orchestration
|
|
11
|
-
Classifier: Development Status :: 4 - Beta
|
|
12
|
-
Classifier: Intended Audience :: Developers
|
|
13
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
-
Classifier: Operating System :: OS Independent
|
|
15
|
-
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
-
Classifier: Topic :: Software Development
|
|
24
|
-
Classifier: Topic :: System :: Shells
|
|
25
|
-
Classifier: Topic :: Communications
|
|
26
|
-
Requires-Python: >=3.6
|
|
27
|
-
Description-Content-Type: text/markdown
|
|
28
|
-
|
|
29
|
-
# hcom - Claude Hook Comms
|
|
30
|
-
|
|
31
|
-
Lightweight CLI tool for real-time communication between Claude Code [subagents](https://docs.anthropic.com/en/docs/claude-code/sub-agents) using [hooks](https://docs.anthropic.com/en/docs/claude-code/hooks).
|
|
32
|
-
|
|
33
|
-
## 🦆 What It Does
|
|
34
|
-
|
|
35
|
-
Creates a group chat where you and multiple interactive Claude Code subagents can communicate with each other across different folders on your computer. Works on Mac, Linux, and Windows with zero dependencies.
|
|
36
|
-
|
|
37
|
-

|
|
38
|
-
|
|
39
|
-
## 🦷 Features
|
|
40
|
-
|
|
41
|
-
- **Multi-Terminal Launch** - Launch Claude Code subagents in new terminals
|
|
42
|
-
- **Live Dashboard** - Real-time monitoring of all instances
|
|
43
|
-
- **Multi-Agent Communication** - Claude instances talk to each other across projects
|
|
44
|
-
- **@Mention Targeting** - Send messages to specific subagents or teams
|
|
45
|
-
- **Zero Dependencies** - Pure Python stdlib, works everywhere
|
|
46
|
-
|
|
47
|
-
## 🎪 Quick Start
|
|
48
|
-
|
|
49
|
-
### Use Without Installing
|
|
50
|
-
```bash
|
|
51
|
-
# Launch 3 default Claude instances connected to group chat
|
|
52
|
-
uvx hcom open 3
|
|
53
|
-
|
|
54
|
-
# Launch researcher and code-writer from your .claude/agents
|
|
55
|
-
uvx hcom open researcher code-writer
|
|
56
|
-
|
|
57
|
-
# View/send messages in dashboard
|
|
58
|
-
uvx hcom watch
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Install
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
# uv
|
|
65
|
-
uv tool install hcom
|
|
66
|
-
# or pip
|
|
67
|
-
pip install hcom
|
|
68
|
-
# then use with:
|
|
69
|
-
hcom open
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
## 🦐 Requirements
|
|
74
|
-
|
|
75
|
-
- Python 3.6+
|
|
76
|
-
- [Claude Code](https://claude.ai/code)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
## 🗿 More Examples
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
# Launch 2 generic instances + 2 specific agents
|
|
83
|
-
hcom open 2 backend-coder frontend-coder
|
|
84
|
-
|
|
85
|
-
# Launch multiple of the same agent
|
|
86
|
-
hcom open reviewer reviewer reviewer # 3 separate reviewers
|
|
87
|
-
|
|
88
|
-
# Launch instances as background processes (no terminal window, managed with 'hcom kill')
|
|
89
|
-
hcom open --background
|
|
90
|
-
hcom open -p 2 code-writer # -p is shorthand for --background
|
|
91
|
-
|
|
92
|
-
# Launch agent with specific prompt
|
|
93
|
-
HCOM_INITIAL_PROMPT='write tests' hcom open test-writer
|
|
94
|
-
|
|
95
|
-
# Resume instance (hcom chat will continue)
|
|
96
|
-
hcom open --claude-args "--resume session_id" # get session_id from hcom watch
|
|
97
|
-
|
|
98
|
-
# Pass multiple Claude flags
|
|
99
|
-
hcom open orchestrator --claude-args "--model sonnet --resume session_id"
|
|
100
|
-
|
|
101
|
-
# Launch in specific directories
|
|
102
|
-
cd backend && hcom open api-specialist
|
|
103
|
-
cd ../frontend && hcom open ui-specialist
|
|
104
|
-
|
|
105
|
-
# Create named teams that can be @mentioned
|
|
106
|
-
cd ~/api && hcom open --prefix api debugger # Creates api-hovoa7
|
|
107
|
-
cd ~/auth && hcom open --prefix auth debugger # Creates auth-hovob8
|
|
108
|
-
|
|
109
|
-
# Message specific teams or instances
|
|
110
|
-
hcom send "@api login works but API fails" # Messages all api-* instances
|
|
111
|
-
hcom send "@hovoa7 can you check this?" # Message specific instance by name
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
## 🥨 Commands
|
|
116
|
-
|
|
117
|
-
| Command | Description |
|
|
118
|
-
|---------|-------------|
|
|
119
|
-
| `hcom open [n]` | Launch n Claude instances (or named agents) |
|
|
120
|
-
| `hcom open -p` | Launch instances as background processes |
|
|
121
|
-
| `hcom watch` | Conversation/status dashboard |
|
|
122
|
-
| `hcom clear` | Clear and archive conversation |
|
|
123
|
-
| `hcom cleanup` | Remove HCOM hooks from current directory |
|
|
124
|
-
| `hcom kill [name]` | Kill specific instance or all with --all |
|
|
125
|
-
|
|
126
|
-
### Automation Commands
|
|
127
|
-
| Command | Description |
|
|
128
|
-
|---------|-------------|
|
|
129
|
-
| `hcom send 'message'` | Send message to chat |
|
|
130
|
-
| `hcom watch --logs` | View message history (non-interactive) |
|
|
131
|
-
| `hcom watch --status` | Show instance status (non-interactive) |
|
|
132
|
-
| `hcom watch --wait [timeout]` | Wait and notify for new messages |
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
<details>
|
|
137
|
-
<summary><strong>🦖 Configuration</strong></summary>
|
|
138
|
-
|
|
139
|
-
### Configuration
|
|
140
|
-
|
|
141
|
-
Settings can be changed two ways:
|
|
142
|
-
|
|
143
|
-
#### Method 1: Environment variable (temporary, per-command/instance)
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
HCOM_INSTANCE_HINTS="always update chat with progress" hcom open nice-subagent-but-not-great-with-updates
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
#### Method 2: Config file (persistent, affects all instances)
|
|
151
|
-
|
|
152
|
-
### Config File Location
|
|
153
|
-
|
|
154
|
-
`~/.hcom/config.json`
|
|
155
|
-
|
|
156
|
-
| Setting | Default | Environment Variable | Description |
|
|
157
|
-
|---------|---------|---------------------|-------------|
|
|
158
|
-
| `wait_timeout` | 1800 | `HCOM_WAIT_TIMEOUT` | How long instances wait for messages (seconds) |
|
|
159
|
-
| `max_message_size` | 4096 | `HCOM_MAX_MESSAGE_SIZE` | Maximum message length |
|
|
160
|
-
| `max_messages_per_delivery` | 50 | `HCOM_MAX_MESSAGES_PER_DELIVERY` | Messages delivered per batch |
|
|
161
|
-
| `sender_name` | "bigboss" | `HCOM_SENDER_NAME` | Your name in chat |
|
|
162
|
-
| `sender_emoji` | "🐳" | `HCOM_SENDER_EMOJI` | Your emoji icon |
|
|
163
|
-
| `initial_prompt` | "Say hi in chat" | `HCOM_INITIAL_PROMPT` | What new instances are told to do |
|
|
164
|
-
| `first_use_text` | "Essential, concise messages only" | `HCOM_FIRST_USE_TEXT` | Welcome message for instances |
|
|
165
|
-
| `terminal_mode` | "new_window" | `HCOM_TERMINAL_MODE` | How to launch terminals ("new_window", "same_terminal", "show_commands") |
|
|
166
|
-
| `terminal_command` | null | `HCOM_TERMINAL_COMMAND` | Custom terminal command (see Terminal Options) |
|
|
167
|
-
| `cli_hints` | "" | `HCOM_CLI_HINTS` | Extra text added to CLI outputs |
|
|
168
|
-
| `instance_hints` | "" | `HCOM_INSTANCE_HINTS` | Extra text added to instance messages |
|
|
169
|
-
| `env_overrides` | {} | - | Additional environment variables for Claude Code |
|
|
170
|
-
|
|
171
|
-
### Examples
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
# Change your name for one command
|
|
175
|
-
HCOM_SENDER_NAME="coolguy" hcom send "LGTM!"
|
|
176
|
-
|
|
177
|
-
# Make instances timeout after 60 seconds instead of 30 minutes
|
|
178
|
-
HCOM_WAIT_TIMEOUT=60 hcom open 3
|
|
179
|
-
|
|
180
|
-
# Custom welcome message
|
|
181
|
-
HCOM_FIRST_USE_TEXT="Debug session for issue #123" hcom open 2
|
|
182
|
-
|
|
183
|
-
# Bigger messages
|
|
184
|
-
HCOM_MAX_MESSAGE_SIZE=8192 hcom send "$(cat long_report.txt)"
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Status Indicators
|
|
188
|
-
- ◉ **thinking** (cyan) - Processing input
|
|
189
|
-
- ▷ **responding** (green) - Generating text response
|
|
190
|
-
- ▶ **executing** (green) - Running tools
|
|
191
|
-
- ◉ **waiting** (blue) - Waiting for messages
|
|
192
|
-
- ■ **blocked** (yellow) - Permission blocked
|
|
193
|
-
- ○ **inactive** (red) - Timed out/dead
|
|
194
|
-
- **(bg)** suffix - Instance running in background mode
|
|
195
|
-
|
|
196
|
-
</details>
|
|
197
|
-
|
|
198
|
-
<details>
|
|
199
|
-
<summary><strong>🎲 How It Works</strong></summary>
|
|
200
|
-
|
|
201
|
-
### Hooks!
|
|
202
|
-
|
|
203
|
-
hcom adds hooks to your project directory's `.claude/settings.local.json`:
|
|
204
|
-
|
|
205
|
-
1. **Sending**: Claude agents use `echo "HCOM_SEND:message"` internally (you use `hcom send` from terminal)
|
|
206
|
-
2. **Receiving**: Other Claudes get notified via Stop hook
|
|
207
|
-
3. **Waiting**: Stop hook keeps Claude in a waiting state for new messages
|
|
208
|
-
|
|
209
|
-
- **Identity**: Each instance gets a unique name based on conversation UUID (e.g., "hovoa7")
|
|
210
|
-
- **Persistence**: Names persist across `--resume` maintaining conversation context
|
|
211
|
-
- **Status Detection**: Notification hook tracks permission requests and activity
|
|
212
|
-
- **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). Agents can specify `model:` and `tools:` in YAML frontmatter
|
|
213
|
-
|
|
214
|
-
### Architecture
|
|
215
|
-
- **Single conversation** - All instances share one global conversation
|
|
216
|
-
- **Opt-in participation** - Only Claude Code instances launched with `hcom open` join the chat
|
|
217
|
-
- **@-mention filtering** - Target messages to specific instances or teams
|
|
218
|
-
|
|
219
|
-
### File Structure
|
|
220
|
-
```
|
|
221
|
-
~/.hcom/
|
|
222
|
-
├── hcom.log # Conversation log
|
|
223
|
-
├── instances/ # Instance tracking
|
|
224
|
-
├── logs/ # Background process logs
|
|
225
|
-
├── config.json # Configuration
|
|
226
|
-
└── archive/ # Archived sessions
|
|
227
|
-
|
|
228
|
-
your-project/
|
|
229
|
-
└── .claude/
|
|
230
|
-
└── settings.local.json # hcom hooks configuration
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
</details>
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
<details>
|
|
237
|
-
<summary><strong>🥔 Terminal Options</strong></summary>
|
|
238
|
-
|
|
239
|
-
### Terminal Mode
|
|
240
|
-
|
|
241
|
-
Configure terminal behavior in `~/.hcom/config.json`:
|
|
242
|
-
- `"terminal_mode": "new_window"` - Opens new terminal windows (default)
|
|
243
|
-
- `"terminal_mode": "same_terminal"` - Opens in current terminal
|
|
244
|
-
- `"terminal_mode": "show_commands"` - Prints commands without executing
|
|
245
|
-
|
|
246
|
-
### Default Terminals
|
|
247
|
-
|
|
248
|
-
- **macOS**: Terminal.app
|
|
249
|
-
- **Linux**: gnome-terminal, konsole, or xterm
|
|
250
|
-
- **Windows**: Windows Terminal / PowerShell
|
|
251
|
-
|
|
252
|
-
### Running in Current Terminal
|
|
253
|
-
```bash
|
|
254
|
-
# For single instances
|
|
255
|
-
HCOM_TERMINAL_MODE=same_terminal hcom open
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
### Custom Terminal Examples
|
|
259
|
-
|
|
260
|
-
Configure `terminal_command` in `~/.hcom/config.json` to use your preferred terminal:
|
|
261
|
-
|
|
262
|
-
### iTerm2
|
|
263
|
-
```json
|
|
264
|
-
{
|
|
265
|
-
"terminal_command": "osascript -e 'tell app \"iTerm2\" to create window with default profile' -e 'tell current session of current window to write text \"{env} {cmd}\"'"
|
|
266
|
-
}
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
### Alacritty
|
|
270
|
-
```json
|
|
271
|
-
{
|
|
272
|
-
"terminal_command": "alacritty -e sh -c '{env} {cmd}'"
|
|
273
|
-
}
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
### Kitty
|
|
277
|
-
```json
|
|
278
|
-
{
|
|
279
|
-
"terminal_command": "kitty sh -c '{env} {cmd}'"
|
|
280
|
-
}
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
### WezTerm
|
|
284
|
-
```json
|
|
285
|
-
{
|
|
286
|
-
"terminal_command": "wezterm cli spawn --new-window -- sh -c '{env} {cmd}'"
|
|
287
|
-
}
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
### tmux
|
|
291
|
-
```json
|
|
292
|
-
{
|
|
293
|
-
"terminal_command": "tmux new-window -n hcom sh -c '{env} {cmd}'"
|
|
294
|
-
}
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
### Available Placeholders
|
|
298
|
-
- `{cmd}` - The claude command to execute
|
|
299
|
-
- `{env}` - Environment variables (pre-formatted as `VAR1='value1' VAR2='value2'`)
|
|
300
|
-
- `{cwd}` - Current working directory
|
|
301
|
-
|
|
302
|
-
### Notes
|
|
303
|
-
- Custom commands must exit with code 0 for success
|
|
304
|
-
- The `{env}` placeholder contains shell-quoted environment variables
|
|
305
|
-
- Most terminals require wrapping the command in `sh -c` to handle environment variables correctly
|
|
306
|
-
|
|
307
|
-
</details>
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
<details>
|
|
311
|
-
<summary><strong>🦆 Remove</strong></summary>
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
### Archive Conversation / Start New
|
|
315
|
-
```bash
|
|
316
|
-
hcom clear
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
### Kill Running Instances
|
|
320
|
-
```bash
|
|
321
|
-
# Kill specific instance
|
|
322
|
-
hcom kill hovoa7
|
|
323
|
-
|
|
324
|
-
# Kill all instances
|
|
325
|
-
hcom kill --all
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
### Remove HCOM hooks from current directory
|
|
329
|
-
```bash
|
|
330
|
-
hcom cleanup
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
### Remove HCOM hooks from all directories
|
|
334
|
-
```bash
|
|
335
|
-
hcom cleanup --all
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
### Remove hcom Completely
|
|
339
|
-
1. Remove hcom: `rm /usr/local/bin/hcom` (or wherever you installed hcom)
|
|
340
|
-
2. Remove all data: `rm -rf ~/.hcom`
|
|
341
|
-
|
|
342
|
-
</details>
|
|
343
|
-
|
|
344
|
-
## 🌮 License
|
|
345
|
-
|
|
346
|
-
MIT License
|
|
347
|
-
|
|
348
|
-
---
|
hcom-0.2.0.dist-info/RECORD
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
hcom/__init__.py,sha256=OTLgmiORAs0PeavpKv2TStEiSchd2KDp4ZCGzWNWsAs,96
|
|
2
|
-
hcom/__main__.py,sha256=CdWcj4qvpDjFELcShpKZQ30RTVQxE2AdCDPd83pwD2c,93850
|
|
3
|
-
hcom-0.2.0.dist-info/METADATA,sha256=ZPianbn_y61bLc-mW3htCOPryQg_EJZi15Xs9y8a93k,10934
|
|
4
|
-
hcom-0.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
5
|
-
hcom-0.2.0.dist-info/entry_points.txt,sha256=cz9K9PsgYmORUxNKxVRrpxLS3cxRJcDZkE-PpfvOhI8,44
|
|
6
|
-
hcom-0.2.0.dist-info/top_level.txt,sha256=8AS1nVUWA26vxjDQ5viRxgJnwSvUWk1W6GP4g6ldZ-0,5
|
|
7
|
-
hcom-0.2.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|