upstash/context7 · info
Installation cancelled
Error message
Installation cancelled
What it means
The catch block around the skill multi-select prompt shown when installing from a repository that has more than one skill and neither --all was passed nor only one skill existed. @inquirer checkbox prompts throw ExitPromptError on Ctrl+C/Esc; the CLI maps any throw to 'Installation cancelled' and returns without installing.
Source
Thrown at packages/cli/src/commands/skill.ts:386
headerPad + pc.dim("Popularity".padEnd(popularityColWidth)) + pc.dim("Trust");
try {
selectedSkills = await checkboxWithHover({
message: `Select skills to install:\n${headerLine}`,
choices,
pageSize: 15,
loop: false,
theme: {
style: {
message: (text: string, status: string) => {
if (status === "done") return pc.dim(text.split("\n")[0]);
return pc.bold(text);
},
},
},
});
} catch {
log.warn("Installation cancelled");
return;
}
}
}
if (selectedSkills.length === 0) {
log.warn("No skills selected");
return;
}
const targets = await promptForInstallTargets(options);
if (!targets) {
log.warn("Installation cancelled");
return;
}
const targetDirs = getTargetDirs(targets);
View on GitHub (pinned to 5284672feb)
Solutions
- Re-run and select skills, or use `--all` to install every skill in the repo without the prompt.
- Name the skill directly: `context7 skill add <repo> <skill>` bypasses the multi-select.
- Ensure an interactive TTY when you want the selection UI.
Defensive patterns
Strategy: try-catch
Validate before calling
if (!process.stdin.isTTY) {
console.error("Interactive skill selection requires a TTY; pass --all or name the skill explicitly.");
process.exit(1);
} Type guard
function isPromptAbort(err: unknown): boolean {
return err instanceof Error && err.name === "ExitPromptError";
} Try / catch
try {
selectedSkills = await checkbox<Skill>({ message: "Select skills", choices });
} catch (err) {
if (isPromptAbort(err)) {
log.warn("Installation cancelled");
return;
}
throw err;
} Prevention
- Use --all or `skill add <repo> <name>` to avoid the multi-select entirely.
- Only catch ExitPromptError; rethrow other errors so render bugs are visible.
- Check for a TTY before showing checkbox prompts.
When it happens
Trigger: Pressing Ctrl+C or Esc at the 'select skills to install' checkbox; an empty checkbox submission is handled separately ('No skills selected'), so this warning specifically means the prompt threw.
Common situations: User browses a repo's skills then bails; non-interactive shell where the checkbox prompt cannot render; accidental Esc during selection.
Related errors
- Remove cancelled
- Setup cancelled
- No skills selected
- Cancelled
- This skill contains potentially malicious content and cannot
AI-assisted analysis of upstash/context7@5284672feb (2026-08-18).
Data as JSON: /api/errors/3543dba3cb705147.
Report an issue: GitHub.