{"record":{"id":"3543dba3cb705147","repo":"upstash/context7","slug":"installation-cancelled","errorCode":null,"errorMessage":"Installation cancelled","messagePattern":"Installation cancelled","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"packages/cli/src/commands/skill.ts","lineNumber":386,"sourceCode":"        headerPad + pc.dim(\"Popularity\".padEnd(popularityColWidth)) + pc.dim(\"Trust\");\n\n      try {\n        selectedSkills = await checkboxWithHover({\n          message: `Select skills to install:\\n${headerLine}`,\n          choices,\n          pageSize: 15,\n          loop: false,\n          theme: {\n            style: {\n              message: (text: string, status: string) => {\n                if (status === \"done\") return pc.dim(text.split(\"\\n\")[0]);\n                return pc.bold(text);\n              },\n            },\n          },\n        });\n      } catch {\n        log.warn(\"Installation cancelled\");\n        return;\n      }\n    }\n  }\n\n  if (selectedSkills.length === 0) {\n    log.warn(\"No skills selected\");\n    return;\n  }\n\n  const targets = await promptForInstallTargets(options);\n  if (!targets) {\n    log.warn(\"Installation cancelled\");\n    return;\n  }\n\n  const targetDirs = getTargetDirs(targets);\n","sourceCodeStart":368,"sourceCodeEnd":404,"githubUrl":"https://github.com/upstash/context7/blob/4416fb855b8f752be735e34f943b5d0762701aad/packages/cli/src/commands/skill.ts#L368-L404","documentation":"A warning logged when the interactive multi-select prompt inside `skill install` throws (typically because the user pressed Ctrl+C / Esc to abort the prompt). The command catches the exception, logs 'Installation cancelled', and returns early without installing anything.","triggerScenarios":"User aborts the interactive skill-selection prompt during `opencode skill install` (Ctrl+C or Esc), causing the prompt library to throw, which the `catch` block converts into this warning.","commonSituations":"User changes their mind mid-prompt; non-interactive CI terminal where prompts cannot render and abort immediately; terminal without TTY support interrupting the prompt library.","solutions":["Re-run the command and complete the selection prompt to proceed with installation","Run in an interactive TTY-enabled terminal; prompts cannot run in non-interactive shells","Pass flags that skip the interactive prompt if available (e.g. --all or an explicit skill list)","No harm was done: nothing was installed, so simply retry when ready"],"exampleFix":"// before (non-interactive CI fails at prompt)\nopencode skill install org/skills\n// after\nopencode skill install org/skills --all   # or run locally in an interactive terminal","handlingStrategy":"try-catch","validationCode":"if (!process.stdin.isTTY) {\n  console.error('Interactive prompt requires a TTY; use explicit flags instead.');\n  process.exit(1);\n}","typeGuard":null,"tryCatchPattern":"try {\n  selectedSkills = await prompt(...);\n} catch {\n  console.warn('Installation cancelled');\n  return;\n}","preventionTips":["Do not press Ctrl+C/Esc unless you intend to cancel","Run the CLI in an interactive terminal","Use non-interactive flags (e.g. --all) in scripts/CI"],"tags":["cli","user-cancelled","interactive-prompt"],"backgroundTag":"user-cancelled-operation","analyzedSha":"4416fb855b8f752be735e34f943b5d0762701aad","analyzedAt":"2026-09-16T20:28:07.148Z","contentChangedAt":"2026-09-16T20:28:07.148Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}