Hmbown/CodeWhale · error
`codewhale --continue` resumes the interactive TUI. Use…
Error message
`codewhale --continue` resumes the interactive TUI. Use `codewhale exec --continue <PROMPT>` to continue a session non-interactively.
What it means
When a non-empty positional prompt is supplied at the top level (which the CLI treats as an exec-style forwarding invocation) combined with `--continue`, the dispatcher bails: `--continue` resumes the interactive TUI and cannot also serve a one-shot prompt. The message directs users to `codewhale exec --continue <PROMPT>` for non-interactive continuation.
Solutions
- Use `codewhale exec --continue "<prompt>"` to continue the latest session non-interactively.
- Drop the prompt if you actually want the interactive TUI: plain `codewhale --continue`.
- Update wrapper scripts to route prompt-bearing continuations through the `exec` subcommand.
Example fix
// before codewhale --continue "finish the refactor" // error: `codewhale --continue` resumes the interactive TUI... // after codewhale exec --continue "finish the refactor"
Defensive patterns
Strategy: validation
Validate before calling
# wrapper guard: prompt + --continue must go through exec if [[ "$*" == *--continue* && $# -gt 1 ]]; then exec codewhale exec --continue "$*" # route appropriately fi
Try / catch
match run(args) {
Err(e) if e.to_string().contains("resumes the interactive TUI. Use `codewhale exec --continue") => {
eprintln!("route prompt continuations through `codewhale exec --continue <PROMPT>`");
}
r => r?,
} Prevention
- Remember: --continue without a prompt = TUI; with a prompt = use exec --continue.
- Keep one canonical wrapper that already routes correctly.
- Never append prompts to interactive-resume invocations.
When it happens
Trigger: Running `codewhale --continue "<prompt text>"` — global `--continue` plus a bare prompt argument (non-empty after the CLI's prompt-joining logic).
Common situations: Users mapping `--continue` onto exec-style usage from other CLI tools, or scripts appending a prompt to an interactive-resume command.
Understand the failure class
Background: "mutually exclusive" flag errors: what "can't supply both nx and xx", "--raw is not compatible with -i" and "cannot be used with" mean, and how to fix them — this error's family across 29 libraries.
Related errors
- `codewhale --resume ` resumes the interactive TUI. Use…
- --continue/--resume/--session-id apply to the interactive…
- Choose exactly one server mode: --mcp…
- must be placed before `exec`. Use: codewhale exec
- Fleet tool authority cannot be combined with exec --resume…
AI-assisted analysis of Hmbown/CodeWhale@73e0f67d83 (2026-09-22).
Data as JSON: /api/errors/78db82a80609784b.
Report an issue: GitHub.
Appendix: source
Thrown at crates/cli/src/lib.rs:2363
if let Some(session_id) = resume_session_id {
forwarded.push("--resume".to_string());
forwarded.push(session_id.to_string());
}
let prompt =
cli.prompt_flag
.iter()
.chain(cli.prompt.iter())
.fold(String::new(), |mut acc, part| {
if !acc.is_empty() {
acc.push(' ');
}
acc.push_str(part);
acc
});
if !prompt.is_empty() {
if cli.continue_session {
bail!(
"`codewhale --continue` resumes the interactive TUI. Use `codewhale exec --continue <PROMPT>` to continue a session non-interactively."
);
}
if let Some(session_id) = resume_session_id {
bail!(
"`codewhale --resume {session_id}` resumes the interactive TUI. Use `codewhale exec --resume {session_id} <PROMPT>` to continue a session non-interactively."
);
}
forwarded.push("--prompt".to_string());
forwarded.push(prompt);
}
Ok(forwarded)
}
fn resolve_runtime_for_dispatch(
store: &mut ConfigStore,
runtime_overrides: &CliRuntimeOverrides,View on GitHub (pinned to 73e0f67d83)