luv-cli 0.0.5__tar.gz → 0.0.6__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.6
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,9 @@ 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
+ initial = f"{color_cmd}\n/plan {prompt}" if prompt else color_cmd
355
+
345
356
  if compose_file:
346
357
  project = docker_project_name(clone_dir)
347
358
  start_docker(clone_dir, compose_file, project)
@@ -349,9 +360,8 @@ def launch(clone_dir: Path, prompt: str | None, extra_env: dict[str, str] = {})
349
360
  base = docker_compose_base(clone_dir, compose_file, project)
350
361
  claude_cmd = ["claude", "--dangerously-skip-permissions",
351
362
  "--permission-mode", "bypassPermissions",
352
- "--model", "claude-opus-4-7", "--effort", "max"]
353
- if prompt:
354
- claude_cmd.append(f"/plan {prompt}")
363
+ "--model", "claude-opus-4-7", "--effort", "max",
364
+ initial]
355
365
  r = subprocess.run(base + ["exec", "-it"] + docker_env_flags(extra_env) + ["dev-environment"] + claude_cmd)
356
366
  sys.exit(r.returncode)
357
367
  finally:
@@ -364,10 +374,7 @@ def launch(clone_dir: Path, prompt: str | None, extra_env: dict[str, str] = {})
364
374
  "--permission-mode", "bypassPermissions",
365
375
  "--model", "claude-opus-4-7", "--effort", "max"]
366
376
  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)
377
+ os.execv(claude_bin, base_args + [initial])
371
378
 
372
379
 
373
380
  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.6"
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