luv-cli 0.0.5__tar.gz → 0.0.7__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luv-cli
3
- Version: 0.0.5
3
+ Version: 0.0.7
4
4
  Summary: Launch Claude Code agents on GitHub repos with isolated workspaces and optional Docker dev environments
5
5
  Project-URL: Homepage, https://github.com/exospherehost/luv
6
6
  Project-URL: Repository, https://github.com/exospherehost/luv
@@ -1,5 +1,6 @@
1
1
  import json
2
2
  import os
3
+ import random
3
4
  import re
4
5
  import shutil
5
6
  import subprocess
@@ -13,6 +14,13 @@ PRS_DIR = Path.home() / "prs"
13
14
  CLAUDE_JSON = Path.home() / ".claude.json"
14
15
  CLAUDE_SETTINGS_JSON = Path.home() / ".claude" / "settings.json"
15
16
 
17
+ COLORS = ["red", "blue", "green", "yellow", "purple", "orange", "pink", "cyan", "default"]
18
+
19
+
20
+ def pick_color() -> str:
21
+ """Pick a random /color value so each luv session is visually distinct."""
22
+ return random.choice(COLORS)
23
+
16
24
  PR_RULES = """
17
25
  # Pull Request Management
18
26
 
@@ -342,6 +350,11 @@ def launch(clone_dir: Path, prompt: str | None, extra_env: dict[str, str] = {})
342
350
  settings = load_luv_settings(clone_dir)
343
351
  compose_file = (settings or {}).get("compose_file")
344
352
 
353
+ color_cmd = f"/color {pick_color()}"
354
+ remote_cmd = "/remote-control"
355
+ prefix = f"{color_cmd}\n{remote_cmd}"
356
+ initial = f"{prefix}\n/plan {prompt}" if prompt else prefix
357
+
345
358
  if compose_file:
346
359
  project = docker_project_name(clone_dir)
347
360
  start_docker(clone_dir, compose_file, project)
@@ -349,9 +362,8 @@ def launch(clone_dir: Path, prompt: str | None, extra_env: dict[str, str] = {})
349
362
  base = docker_compose_base(clone_dir, compose_file, project)
350
363
  claude_cmd = ["claude", "--dangerously-skip-permissions",
351
364
  "--permission-mode", "bypassPermissions",
352
- "--model", "claude-opus-4-7", "--effort", "max"]
353
- if prompt:
354
- claude_cmd.append(f"/plan {prompt}")
365
+ "--model", "claude-opus-4-7", "--effort", "max",
366
+ initial]
355
367
  r = subprocess.run(base + ["exec", "-it"] + docker_env_flags(extra_env) + ["dev-environment"] + claude_cmd)
356
368
  sys.exit(r.returncode)
357
369
  finally:
@@ -364,10 +376,7 @@ def launch(clone_dir: Path, prompt: str | None, extra_env: dict[str, str] = {})
364
376
  "--permission-mode", "bypassPermissions",
365
377
  "--model", "claude-opus-4-7", "--effort", "max"]
366
378
  os.environ.update(extra_env)
367
- if prompt:
368
- os.execv(claude_bin, base_args + [f"/plan {prompt}"])
369
- else:
370
- os.execv(claude_bin, base_args)
379
+ os.execv(claude_bin, base_args + [initial])
371
380
 
372
381
 
373
382
  def cmd_clean(force: bool = False) -> None:
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "luv-cli"
7
- version = "0.0.5"
7
+ version = "0.0.7"
8
8
  description = "Launch Claude Code agents on GitHub repos with isolated workspaces and optional Docker dev environments"
9
9
  requires-python = ">=3.10"
10
10
  license = "MIT"
File without changes
File without changes
File without changes
File without changes