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
- Fall back to manual search with broader terms: `ctx7 skills search <keyword>`
- Retry after adding the mainstream frameworks of your stack to package.json — suggest matches on detected deps
- Check the detected dependencies in the 'Found N dependencies' line to confirm your key libraries were actually detected
- 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
- Read the 'Found N dependencies' line to confirm your key libraries were detected
- Design scripts to fall back to `ctx7 skills search <keyword>` when suggest returns zero matches
- Treat an empty match set as normal for niche stacks, not an auth or network problem
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
- No skills found in ${repo}
- No skills found matching "${query}"
- No skills installed
- No dependencies detected
- This skill contains potentially malicious content and cannot
AI-assisted analysis of upstash/context7@5284672feb (2026-08-18).
Data as JSON: /api/errors/31f089121edffec7.
Report an issue: GitHub.