claude-team-mcp 0.3.0__py3-none-any.whl → 0.3.2__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.
@@ -6,6 +6,7 @@ from the original primitives.py for use in the MCP server.
6
6
  """
7
7
 
8
8
  import logging
9
+ import os
9
10
  import re
10
11
  from typing import TYPE_CHECKING, Optional
11
12
 
@@ -515,6 +516,11 @@ async def start_claude_in_session(
515
516
  atomic command (cd && claude). Waits for shell readiness before sending
516
517
  the command, then waits for Claude's startup banner to appear.
517
518
 
519
+ The command used to launch Claude Code can be overridden by setting
520
+ the CLAUDE_TEAM_COMMAND environment variable (defaults to "claude").
521
+ This is useful for running alternative Claude CLI implementations
522
+ like "happy" or for testing purposes.
523
+
518
524
  Args:
519
525
  session: iTerm2 session to use
520
526
  project_path: Directory to run Claude in
@@ -537,10 +543,20 @@ async def start_claude_in_session(
537
543
  )
538
544
 
539
545
  # Build claude command with flags
540
- claude_cmd = "claude"
546
+ # Allow overriding the claude command via environment variable (e.g., "happy")
547
+ claude_cmd = os.environ.get("CLAUDE_TEAM_COMMAND", "claude")
548
+ is_default_claude_command = claude_cmd == "claude"
549
+
541
550
  if dangerously_skip_permissions:
542
551
  claude_cmd += " --dangerously-skip-permissions"
543
- if stop_hook_marker_id:
552
+
553
+ # Only add --settings for the default 'claude' command.
554
+ # Custom commands like 'happy' have their own session tracking mechanisms
555
+ # (e.g., Happy uses a SessionStart hook for mobile app integration).
556
+ # Adding our --settings flag conflicts with theirs because Claude only
557
+ # uses the first --settings file, breaking their session tracking.
558
+ # See HAPPY_INTEGRATION_RESEARCH.md for full analysis.
559
+ if stop_hook_marker_id and is_default_claude_command:
544
560
  settings_file = build_stop_hook_settings_file(stop_hook_marker_id)
545
561
  claude_cmd += f" --settings {settings_file}"
546
562
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-team-mcp
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: MCP server for managing multiple Claude Code sessions via iTerm2
5
5
  Project-URL: Homepage, https://github.com/Martian-Engineering/claude-team
6
6
  Project-URL: Repository, https://github.com/Martian-Engineering/claude-team
@@ -140,6 +140,19 @@ Add to your Claude Code MCP settings. You can configure this at:
140
140
 
141
141
  After adding the configuration, restart Claude Code for it to take effect.
142
142
 
143
+ ## Environment Variables
144
+
145
+ | Variable | Default | Description |
146
+ |----------|---------|-------------|
147
+ | `CLAUDE_TEAM_COMMAND` | `claude` | Override the command used to start Claude Code in worker sessions. Useful for running alternative CLI implementations like `happy`. |
148
+ | `CLAUDE_TEAM_PROJECT_DIR` | (none) | When set, allows using `"project_path": "auto"` in worker configs to automatically use this path. |
149
+
150
+ Example using an alternative CLI:
151
+
152
+ ```bash
153
+ export CLAUDE_TEAM_COMMAND=happy
154
+ ```
155
+
143
156
  ## MCP Tools
144
157
 
145
158
  ### Worker Management
@@ -3,7 +3,7 @@ claude_team_mcp/__main__.py,sha256=JOG9n8ZCjy3JN96T0n97Ro-ZWtOU-RTJks7ahz81NRM,1
3
3
  claude_team_mcp/colors.py,sha256=f-PcPep9WkZ7zbt-IF0Ey4OXfZeiY-y2uXERFtiY8Pk,3270
4
4
  claude_team_mcp/formatting.py,sha256=myyzR6sbBapsmo5e5_dK3X5qk8ww2NbNkmo0DpHxDxs,3181
5
5
  claude_team_mcp/idle_detection.py,sha256=IX_b46EpK0h8fewdGDHuWXa_abYwnKPSk1oc7a4OnkY,5930
6
- claude_team_mcp/iterm_utils.py,sha256=S2s4X1svQoDwsHcphIaHMIGXBIJxeRublGavk-m08vw,32371
6
+ claude_team_mcp/iterm_utils.py,sha256=RcBowMR_0jEiHHXIz4ma8dU-11ekCVOd9bwVHlbXEwQ,33264
7
7
  claude_team_mcp/names.py,sha256=M-84kICkGP4W2LOK94Jzf5O0Gg9AuYpCPfJ-6fq9GjA,15894
8
8
  claude_team_mcp/profile.py,sha256=yqytAE0dIe6NQ6FodldSepO-ZIeR7-C0UfK3FsO7Pn4,12326
9
9
  claude_team_mcp/registry.py,sha256=6JLrKgbb_9_wfg8CuVLgWRWv3M5eXVKC5QW8DTUGoIQ,12808
@@ -30,7 +30,7 @@ claude_team_mcp/utils/__init__.py,sha256=_O-de711DxfMdjCAHHoifyOtzdllciE9FFV-tZ5
30
30
  claude_team_mcp/utils/constants.py,sha256=gvWbqk1qaymilnAvql28ZiNnvWG4vsz7cYg84mtd6PY,2264
31
31
  claude_team_mcp/utils/errors.py,sha256=9uPFHp7UJYB5t3p7P_5Sh3PVpYh4_vj_RLzX5GcJPEU,2738
32
32
  claude_team_mcp/utils/worktree_detection.py,sha256=NfEK8c_toFiz8dqF2ht1FJzW9a9VstVm7Y5SNXvwAD8,2564
33
- claude_team_mcp-0.3.0.dist-info/METADATA,sha256=KgQ8Jg9OChMe2DDBRQCpWZaakqTPvLxVFVvlHJko9k0,14438
34
- claude_team_mcp-0.3.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
35
- claude_team_mcp-0.3.0.dist-info/entry_points.txt,sha256=cmk5dmK50RVquExT-k_J72akl3qKIerPpVqfit7kQtQ,53
36
- claude_team_mcp-0.3.0.dist-info/RECORD,,
33
+ claude_team_mcp-0.3.2.dist-info/METADATA,sha256=SDq9Q-O3_iJOQX9WiJ6Hmb-xeJeSCJ1vbgEgedAD37g,14930
34
+ claude_team_mcp-0.3.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
35
+ claude_team_mcp-0.3.2.dist-info/entry_points.txt,sha256=cmk5dmK50RVquExT-k_J72akl3qKIerPpVqfit7kQtQ,53
36
+ claude_team_mcp-0.3.2.dist-info/RECORD,,