upstash/context7 · info

No matching skills found for your dependencies

Error message

No matching skills found for your dependencies

What it means

Warned at step 2 of `ctx7 skills suggest`: the Context7 backend call succeeded (access token was fine, data.error was unset) but returned zero skills matching the project's detected dependencies. A yellow spinner warning with an early return — the interactive selection/install phase is never reached.

Source

Thrown at packages/cli/src/commands/skill.ts:864

  const accessToken = await getValidAccessToken();

  let data;
  try {
    data = await suggestSkills(deps, accessToken);
  } catch {
    searchSpinner.fail(pc.red("Failed to connect to Context7"));
    return;
  }

  if (data.error) {
    searchSpinner.fail(pc.red(`Error: ${data.message || data.error}`));
    return;
  }

  const skills = data.skills;

  if (skills.length === 0) {
    searchSpinner.warn(pc.yellow("No matching skills found for your dependencies"));
    return;
  }

  searchSpinner.succeed(`Found ${skills.length} relevant skill(s)`);
  trackEvent("suggest_results", { depCount: deps.length, skillCount: skills.length });
  log.blank();

  const nameWithRepo = (s: SkillSearchResult) => `${s.name} ${pc.dim(`(${s.project})`)}`;
  const nameWithRepoLen = (s: SkillSearchResult) => `${s.name} (${s.project})`.length;
  const maxNameLen = Math.max(...skills.map(nameWithRepoLen));
  const popularityColWidth = 13;
  const trustColWidth = 8;
  const maxMatchedLen = Math.max(...skills.map((s) => s.matchedDep.length));
  const indexWidth = skills.length.toString().length;

  const choices = skills.map((s, index) => {
    const indexStr = pc.dim(`${(index + 1).toString().padStart(indexWidth)}.`);
    const rawLen = nameWithRepoLen(s);

View on GitHub (pinned to 5284672feb)

Solutions

  1. Fall back to manual search with broader terms: `ctx7 skills search <keyword>`
  2. Retry after adding the mainstream frameworks of your stack to package.json — suggest matches on detected deps
  3. Check the detected dependencies in the 'Found N dependencies' line to confirm your key libraries were actually detected
  4. If you expected a match, search the exact library name to verify whether any skill exists at all

Example fix

# before
$ ctx7 skills suggest
No matching skills found for your dependencies

# after
$ ctx7 skills search testing   # find skills manually by keyword
Defensive patterns

Strategy: fallback

Validate before calling

// Ensure the dep list you care about is actually present in the manifest before suggesting
import { readFile } from "node:fs/promises";
const pkg = JSON.parse(await readFile("package.json", "utf8"));
const depCount = Object.keys({ ...pkg.dependencies, ...pkg.devDependencies }).length;
if (depCount === 0) {
  console.error("No dependencies in package.json — suggest cannot match anything");
}

Prevention

When it happens

Trigger: `ctx7 skills suggest` in a project whose dependencies (as detected) have no corresponding skills in the Context7 registry yet; very new/niche libraries (e.g. an internal package name) that no skill author has covered; a manifest dominated by unrelated tooling so the matched dep set is effectively unmatched.

Common situations: Early-stage or niche stacks; internal company packages that obviously have no public skills; users expecting a suggestion for every dependency and reading this as a failure rather than an empty result set.

Related errors


AI-assisted analysis of upstash/context7@5284672feb (2026-08-18). Data as JSON: /api/errors/31f089121edffec7. Report an issue: GitHub.