Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ luv --clean
1. Clones the repo into `~/prs/{repo}-{number}/`
2. Creates a new branch `luv-{number}`
3. Configures the selected agent with the workspace's PR conventions
4. Launches Claude with Opus 4.8 at max effort, or Codex in YOLO mode
4. Launches Claude with Opus 5 at max effort, or Codex in YOLO mode

All workspaces live under `~/prs/`. The number comes from the repo's GitHub issue counter to avoid collisions.

Expand Down Expand Up @@ -87,7 +87,7 @@ All workspaces live under `~/prs/`. The number comes from the repo's GitHub issu
| `-r` | Resume: resume the selected agent's last session |
| `-p` | Launch Claude in plan permission mode (default: `bypassPermissions`) |
| `-nit` | Non-interactive: run the selected agent and exit (no REPL); Claude streams `stream-json` events to stdout |
| `-m MODEL` | Model to use; Claude defaults to `claude-opus-4-8`, while Codex uses its configured CLI default |
| `-m MODEL` | Model to use; Claude defaults to `claude-opus-5`, while Codex uses its configured CLI default |
| `-b BRANCH` | Base a new workspace off `BRANCH` (clone + branch from it); recorded in `git config luv.base` so the PR can target it |
| `-e` | Env: pass `LUV_*` environment variables (with prefix stripped) into the session |
| `-f`, `--force` | Skip safety checks (with `--clean`) |
Expand Down
6 changes: 3 additions & 3 deletions luv/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ def resume(clone_dir: Path, extra_env: dict[str, str] | None = None,

if agent == "claude":
agent_cmd = ["claude", "--dangerously-skip-permissions",
"--model", model or "claude-opus-4-8",
"--model", model or "claude-opus-5",
"--effort", "max", "--resume",
"--remote-control",
"--remote-control-session-name-prefix", clone_dir.name]
Expand Down Expand Up @@ -386,7 +386,7 @@ def launch(clone_dir: Path, prompt: str | None, plan_mode: bool = False,
agent_cmd.append(prompt)
else:
common_flags = ["--dangerously-skip-permissions",
"--model", model or "claude-opus-4-8",
"--model", model or "claude-opus-5",
"--effort", "max",
"--remote-control",
"--remote-control-session-name-prefix", clone_dir.name]
Expand Down Expand Up @@ -721,7 +721,7 @@ def main() -> None:
-r resume: resume the selected agent's last session
-p launch Claude in plan permission mode (default: bypassPermissions)
-nit non-interactive: run the selected agent and exit (no REPL)
-m MODEL model to use (Claude default: claude-opus-4-8; Codex: CLI default)
-m MODEL model to use (Claude default: claude-opus-5; Codex: CLI default)
-b BRANCH base a new workspace off BRANCH (clone + branch from it; recorded in git config luv.base)
-e env: pass LUV_* environment variables (with prefix stripped) into the session
-f, --force (with --clean) skip safety checks and delete all work folders
Expand Down
2 changes: 1 addition & 1 deletion tests/test_agents.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def test_claude_remains_default(self):
_, argv = self._exec_args(luv.launch, self.clone_dir, None)

self.assertEqual(argv[0], "/bin/claude")
self.assertIn("claude-opus-4-8", argv)
self.assertIn("claude-opus-5", argv)
self.assertIn("--dangerously-skip-permissions", argv)

def test_main_routes_codex_to_existing_workspace(self):
Expand Down