can1357/oh-my-pi · error
--plan-yolo-into requires --plan-yolo
Error message
--plan-yolo-into requires --plan-yolo
What it means
`--plan-yolo-into <role-pattern>` selects which model the plan-YOLO mode targets, so it is meaningless without `--plan-yolo` itself. main.ts throws this during argument parsing when the 'into' qualifier appears alone. It is a plain dependency check between two CLI flags.
Source
Thrown at packages/coding-agent/src/main.ts:1268
// model at the first edit. If its hand-off target can't be resolved or has
// no configured auth, warn and leave prewalk unarmed rather than aborting
// startup and locking the user out of the app (issue #6064).
if (resolved.error || !resolved.model) {
const target = parsed.prewalkInto ?? DEFAULT_PREWALK_TARGET;
process.stderr.write(
`${chalk.yellow(`Warning: prewalk disabled — ${resolved.error ?? `model "${target}" not found`}`)}\n`,
);
} else if (!modelRegistry.hasConfiguredAuth(resolved.model)) {
process.stderr.write(
`${chalk.yellow(`Warning: prewalk disabled — no API key for ${resolved.model.provider}/${resolved.model.id}`)}\n`,
);
} else {
options.prewalk = { target: resolved.model, thinkingLevel: resolved.thinkingLevel };
}
}
if (parsed.planYoloInto !== undefined && !parsed.planYolo) {
throw new Error("--plan-yolo-into requires --plan-yolo");
}
if (parsed.planYolo) {
const rolePattern = expandRoleAlias(parsed.planYoloInto ?? "@smol", activeSettings);
const resolved = resolveCliModel({ cliModel: rolePattern, modelRegistry, preferences: modelMatchPreferences });
if (resolved.warning) {
process.stderr.write(`${chalk.yellow(`Warning: ${resolved.warning}`)}\n`);
}
if (resolved.error || !resolved.model) {
throw new Error(resolved.error ?? `Model "${parsed.planYoloInto ?? "@smol"}" not found`);
}
if (!modelRegistry.hasConfiguredAuth(resolved.model)) {
throw new Error(`No API key for ${resolved.model.provider}/${resolved.model.id}`);
}
options.planYolo = { target: resolved.model, thinkingLevel: resolved.thinkingLevel };
}
// Thinking level
if (parsed.thinking) {View on GitHub (pinned to 9690622007)
Solutions
- Add `--plan-yolo` before `--plan-yolo-into`.
- If YOLO mode was not intended, drop `--plan-yolo-into` entirely.
- Note the default target is `@smol` when `--plan-yolo` is given without `--plan-yolo-into`.
Example fix
// before omp --plan-yolo-into @smol // after omp --plan-yolo --plan-yolo-into @smol
Defensive patterns
Strategy: validation
Validate before calling
const argv = process.argv;
if (argv.includes("--plan-yolo-into") && !argv.includes("--plan-yolo")) {
throw new Error("--plan-yolo-into requires --plan-yolo");
} Prevention
- Always pair qualifier flags with their base flag in scripts.
- Remember `--plan-yolo` alone defaults the target to `@smol`.
When it happens
Trigger: Invoking `omp --plan-yolo-into @smol` without `--plan-yolo`.
Common situations: Typo where the user forgot the base flag; copying a snippet that set the target model but dropped `--plan-yolo`; stale alias referencing an older flag combination.
Related errors
- unknown file type: {value}
- invalid size: {value}
- 2
- invalid --block-size argument '{0}'
- invalid --time-style argument {} Possible values are: - [p
AI-assisted analysis of can1357/oh-my-pi@9690622007 (2026-08-31).
Data as JSON: /api/errors/de5036e8067dfb1b.
Report an issue: GitHub.