cue-ai 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/README.md +82 -33
- package/bin/cue-review-progress +107 -0
- package/bin/cue-review-watch +98 -0
- package/dist/cue.js +7352 -3744
- package/package.json +16 -5
- package/profiles/_types.ts +9 -0
- package/profiles/backend/profile.yaml +2 -0
- package/profiles/blog-writer/profile.yaml +10 -0
- package/profiles/browser/profile.yaml +9 -2
- package/profiles/builder/profile.yaml +3 -6
- package/profiles/career/profile.yaml +13 -2
- package/profiles/claude-api/profile.yaml +1 -1
- package/profiles/commerce/profile.yaml +27 -3
- package/profiles/core/logo.png +0 -0
- package/profiles/core/profile.yaml +62 -2
- package/profiles/dash-merge-test/profile.yaml +109 -0
- package/profiles/designer/profile.yaml +2 -0
- package/profiles/designer-medusa-next/profile.yaml +4 -1
- package/profiles/designer-medusa-vite/profile.yaml +4 -1
- package/profiles/docs-writer/profile.yaml +3 -1
- package/profiles/eu-tender-research/README.md +48 -0
- package/profiles/eu-tender-research/logo.png +0 -0
- package/profiles/eu-tender-research/profile.yaml +108 -0
- package/profiles/finance/logo.png +0 -0
- package/profiles/finance/profile.yaml +46 -0
- package/profiles/frontend/profile.yaml +5 -9
- package/profiles/growth/profile.yaml +2 -3
- package/profiles/gstack/profile.yaml +15 -0
- package/profiles/higgsfield/profile.yaml +3 -0
- package/profiles/hyperframes/logo.png +0 -0
- package/profiles/hyperframes/profile.yaml +59 -0
- package/profiles/improver/profile.yaml +88 -0
- package/profiles/marketing/profile.yaml +0 -3
- package/profiles/medusa-dev/profile.yaml +2 -0
- package/profiles/medusa-next/profile.yaml +2 -3
- package/profiles/medusa-vite/profile.yaml +2 -3
- package/profiles/n8n/logo.png +0 -0
- package/profiles/n8n/profile.yaml +50 -0
- package/profiles/nextjs/profile.yaml +2 -3
- package/profiles/ops/profile.yaml +2 -0
- package/profiles/postizz/profile.yaml +13 -3
- package/profiles/python/profile.yaml +3 -0
- package/profiles/research/profile.yaml +3 -1
- package/profiles/schema.json +10 -0
- package/profiles/secops/profile.yaml +2 -0
- package/profiles/seo/profile.yaml +56 -0
- package/profiles/skill-writer/profile.yaml +8 -0
- package/profiles/ssh/profile.yaml +32 -0
- package/profiles/strapi/logo.png +0 -0
- package/profiles/strapi/profile.yaml +45 -0
- package/profiles/stripe/logo.png +0 -0
- package/profiles/stripe/profile.yaml +1 -0
- package/profiles/supabase/logo.png +0 -0
- package/profiles/supabase/profile.yaml +85 -0
- package/profiles/vercel/logo.png +0 -0
- package/profiles/vercel/profile.yaml +25 -1
- package/profiles/vite/profile.yaml +4 -3
- package/profiles/web-frontend-base/profile.yaml +5 -4
- package/profiles/webshop/profile.yaml +23 -5
- package/profiles/x-growth-bot/profile.yaml +44 -0
- package/resources/icons/generate-icons.py +128 -2
- package/resources/mcps/configs/claude.sanitized.json +42 -0
- package/resources/mcps/configs/codex.sanitized.json +7 -0
- package/resources/skills/skills/career/resume-version-manager/SKILL.md +351 -0
- package/resources/skills/skills/career/salary-negotiation-prep/SKILL.md +378 -0
- package/resources/skills/skills/content/pdf/SKILL.md +2 -0
- package/resources/skills/skills/content/postiz-cards/SKILL.md +48 -0
- package/resources/skills/skills/content/postiz-cards/scripts/analytics.sh +38 -0
- package/resources/skills/skills/content/postiz-cards/scripts/card.sh +42 -0
- package/resources/skills/skills/content/postiz-cards/scripts/lint.py +38 -0
- package/resources/skills/skills/design/headless-gif-demo/SKILL.md +1 -1
- package/resources/skills/skills/design/readme-svg-design/SKILL.md +1 -1
- package/resources/skills/skills/eu-funding/grant-outreach/SKILL.md +70 -0
- package/resources/skills/skills/eu-funding/hu-grant-finder/SKILL.md +114 -0
- package/resources/skills/skills/eu-funding/hu-grant-finder/evals.md +26 -0
- package/resources/skills/skills/eu-funding/ted-tender-search/SKILL.md +80 -0
- package/resources/skills/skills/eu-funding/ted-tender-search/evals.md +26 -0
- package/resources/skills/skills/eu-funding/ted-tender-search/scripts/ted-search.sh +46 -0
- package/resources/skills/skills/event-design/wedding-invitations/SKILL.md +1 -1
- package/resources/skills/skills/github/gx-agents/SKILL.md +96 -0
- package/resources/skills/skills/gstack/design-shotgun/SKILL.md +1 -1
- package/resources/skills/skills/marketing/ab-test-analyzer/SKILL.md +1 -1
- package/resources/skills/skills/marketing/ab-test-setup-and-analysis/SKILL.md +1 -1
- package/resources/skills/skills/marketing/account-structure-review/SKILL.md +1 -1
- package/resources/skills/skills/marketing/ad-copy-variant-generator/SKILL.md +1 -1
- package/resources/skills/skills/marketing/ad-extension-audit/SKILL.md +1 -1
- package/resources/skills/skills/marketing/ad-spend-allocator/SKILL.md +1 -1
- package/resources/skills/skills/marketing/anomaly-detection/SKILL.md +1 -1
- package/resources/skills/skills/marketing/attribution-model-comparison/SKILL.md +1 -1
- package/resources/skills/skills/marketing/audience-overlap-analysis/SKILL.md +7 -1
- package/resources/skills/skills/marketing/bid-strategy-recommendations/SKILL.md +7 -1
- package/resources/skills/skills/marketing/budget-scenario-planner/SKILL.md +6 -1
- package/resources/skills/skills/marketing/campaign-naming-convention-builder/SKILL.md +7 -1
- package/resources/skills/skills/marketing/channel-mix-optimizer/SKILL.md +7 -1
- package/resources/skills/skills/marketing/client-report-narratives/SKILL.md +6 -1
- package/resources/skills/skills/marketing/competitor-creative-analysis/SKILL.md +1 -1
- package/resources/skills/skills/marketing/competitor-teardown/SKILL.md +1 -1
- package/resources/skills/skills/marketing/content-repurposer/SKILL.md +1 -1
- package/resources/skills/skills/marketing/conversion-path-analysis/SKILL.md +1 -1
- package/resources/skills/skills/marketing/cpa-diagnostics/SKILL.md +1 -1
- package/resources/skills/skills/marketing/creative-fatigue-detection/SKILL.md +1 -1
- package/resources/skills/skills/marketing/day-hour-performance-breakdown/SKILL.md +1 -1
- package/resources/skills/skills/marketing/device-performance-split/SKILL.md +1 -1
- package/resources/skills/skills/marketing/e2e-seo-assistant/SKILL.md +1 -1
- package/resources/skills/skills/marketing/email-sequence-writer/SKILL.md +1 -1
- package/resources/skills/skills/marketing/frequency-cap-recommendations/SKILL.md +1 -1
- package/resources/skills/skills/marketing/geo-performance-analysis/SKILL.md +1 -1
- package/resources/skills/skills/marketing/google-ads-audit/SKILL.md +1 -1
- package/resources/skills/skills/marketing/icp-research-assistant/SKILL.md +1 -1
- package/resources/skills/skills/marketing/keyword-cannibalization-check/SKILL.md +1 -1
- package/resources/skills/skills/marketing/landing-page-audit/SKILL.md +1 -1
- package/resources/skills/skills/marketing/landing-page-audit-quick/SKILL.md +1 -1
- package/resources/skills/skills/marketing/linkedin-ads-audit/SKILL.md +1 -1
- package/resources/skills/skills/marketing/meta-ads-audit/SKILL.md +1 -1
- package/resources/skills/skills/marketing/pacing-monitor/SKILL.md +1 -1
- package/resources/skills/skills/marketing/performance-benchmarking/SKILL.md +1 -1
- package/resources/skills/skills/marketing/programmatic-seo-builder/SKILL.md +1 -1
- package/resources/skills/skills/marketing/quality-score-breakdown/SKILL.md +1 -1
- package/resources/skills/skills/marketing/reddit-ads-audit/SKILL.md +1 -1
- package/resources/skills/skills/marketing/retargeting-window-analysis/SKILL.md +1 -1
- package/resources/skills/skills/marketing/roas-forecasting/SKILL.md +1 -1
- package/resources/skills/skills/marketing/search-term-mining/SKILL.md +1 -1
- package/resources/skills/skills/marketing/utm-tracking-generator/SKILL.md +1 -1
- package/resources/skills/skills/marketing/wasted-spend-finder/SKILL.md +1 -1
- package/resources/skills/skills/marketing/weekly-account-summary/SKILL.md +1 -1
- package/resources/skills/skills/meta/awesome-list-submit/SKILL.md +4 -4
- package/resources/skills/skills/meta/cue-dashboard/SKILL.md +109 -0
- package/resources/skills/skills/meta/cue-developer/SKILL.md +161 -0
- package/resources/skills/skills/meta/cue-developer/evals/evals.json +57 -0
- package/resources/skills/skills/meta/cue-developer/references/architecture.md +65 -0
- package/resources/skills/skills/meta/cue-developer/references/build_and_test.md +72 -0
- package/resources/skills/skills/meta/cue-developer/references/contributing.md +75 -0
- package/resources/skills/skills/meta/cue-developer/references/conventions.md +57 -0
- package/resources/skills/skills/meta/cue-developer/references/first_time_setup.md +51 -0
- package/resources/skills/skills/meta/cue-developer/references/skill_and_mcp_authoring.md +84 -0
- package/resources/skills/skills/meta/cue-developer/references/troubleshooting.md +42 -0
- package/resources/skills/skills/meta/delegation-check/SKILL.md +148 -0
- package/resources/skills/skills/meta/delegation-check/specs/scan-algorithm.md +125 -0
- package/resources/skills/skills/meta/delegation-check/specs/separation-rules.md +190 -0
- package/resources/skills/skills/meta/focus/SKILL.md +62 -0
- package/resources/skills/skills/meta/help/SKILL.md +1 -1
- package/resources/skills/skills/meta/integrity-tags/SKILL.md +2 -0
- package/resources/skills/skills/meta/next-steps/SKILL.md +124 -0
- package/resources/skills/skills/meta/next-steps/evals/eval-set.json +92 -0
- package/resources/skills/skills/meta/profile-from-docs/SKILL.md +141 -0
- package/resources/skills/skills/meta/ralph-loop/SKILL.md +83 -0
- package/resources/skills/skills/meta/ralph-loop/scripts/loop.sh +73 -0
- package/resources/skills/skills/meta/skill-simplify/SKILL.md +136 -0
- package/resources/skills/skills/meta/skill-simplify/phases/01-analysis.md +173 -0
- package/resources/skills/skills/meta/skill-simplify/phases/02-optimize.md +104 -0
- package/resources/skills/skills/meta/skill-simplify/phases/03-check.md +145 -0
- package/resources/skills/skills/meta/smart-loader/scripts/smart-lookup.sh +13 -4
- package/resources/skills/skills/meta/verify-council/SKILL.md +182 -0
- package/resources/skills/skills/meta/verify-council/references/lane-prompts.md +103 -0
- package/resources/skills/skills/meta/verify-council/references/workflow.js +217 -0
- package/resources/skills/skills/nvidia/aiq-research/SKILL.md +1 -1
- package/resources/skills/skills/nvidia/cuopt-developer/SKILL.md +16 -1
- package/resources/skills/skills/nvidia/cuopt-developer/resources/contributing.md +2 -2
- package/resources/skills/skills/nvidia/cuopt-developer/resources/numerical_debugging.md +128 -0
- package/resources/skills/skills/nvidia/cuopt-developer/resources/python_bindings.md +2 -9
- package/resources/skills/skills/nvidia/cuopt-developer/resources/vrp_skills.md +166 -0
- package/resources/skills/skills/nvidia/cuopt-install/SKILL.md +2 -10
- package/resources/skills/skills/nvidia/cuopt-numerical-optimization-api-c/SKILL.md +3 -23
- package/resources/skills/skills/nvidia/cuopt-numerical-optimization-api-c/resources/examples.md +40 -20
- package/resources/skills/skills/nvidia/cuopt-numerical-optimization-api-python/SKILL.md +5 -1
- package/resources/skills/skills/nvidia/skill-evolution/SKILL.md +4 -5
- package/resources/skills/skills/research/trendradar/SKILL.md +1 -1
- package/resources/skills/skills/ssh/ssh-config/SKILL.md +94 -0
- package/resources/skills/skills/ssh/ssh-copy/SKILL.md +92 -0
- package/resources/skills/skills/ssh/ssh-harden/SKILL.md +108 -0
- package/resources/skills/skills/ssh/ssh-keys/SKILL.md +82 -0
- package/resources/skills/skills/ssh/ssh-paste-image/LICENSE +28 -0
- package/resources/skills/skills/ssh/ssh-paste-image/SKILL.md +149 -0
- package/resources/skills/skills/ssh/ssh-paste-image/scripts/build.sh +29 -0
- package/resources/skills/skills/ssh/ssh-paste-image/scripts/client/go.mod +3 -0
- package/resources/skills/skills/ssh/ssh-paste-image/scripts/client/main.go +79 -0
- package/resources/skills/skills/ssh/ssh-paste-image/scripts/daemon/ccimgd.service +12 -0
- package/resources/skills/skills/ssh/ssh-paste-image/scripts/daemon/com.ccimgd.plist +20 -0
- package/resources/skills/skills/ssh/ssh-paste-image/scripts/daemon/go.mod +3 -0
- package/resources/skills/skills/ssh/ssh-paste-image/scripts/daemon/main.go +98 -0
- package/resources/skills/skills/ssh/ssh-tunnel/SKILL.md +96 -0
- package/resources/skills/skills/strapi/building-with-strapi/SKILL.md +112 -0
- package/resources/skills/skills/strapi/strapi-cli/SKILL.md +93 -0
- package/resources/skills/skills/strapi/strapi-content-api/SKILL.md +115 -0
- package/resources/skills/skills/strapi/strapi-deploy/SKILL.md +89 -0
- package/resources/skills/skills/strapi/strapi-mcp-setup/SKILL.md +101 -0
- package/resources/skills/skills/strapi/strapi-plugins/SKILL.md +97 -0
- package/resources/skills/skills/tools/context7/SKILL.md +101 -0
- package/resources/skills/skills/tools/opensrc/SKILL.md +1 -1
- package/resources/skills/skills/tools/portless/SKILL.md +186 -0
- package/resources/skills/skills/xbot/operate/SKILL.md +229 -0
- package/src/commands/_index.ts +8 -0
- package/src/commands/ai-score.e2e.test.ts +11 -4
- package/src/commands/ai.ts +3 -4
- package/src/commands/auto-detect.ts +1 -1
- package/src/commands/cli.test.ts +1 -2
- package/src/commands/cli.ts +1 -1
- package/src/commands/cloud.ts +1 -1
- package/src/commands/current.ts +1 -4
- package/src/commands/dash.test.ts +110 -0
- package/src/commands/dash.ts +194 -0
- package/src/commands/dashboard.ts +26 -0
- package/src/commands/diff.ts +1 -1
- package/src/commands/discover.test.ts +1 -1
- package/src/commands/discover.ts +90 -40
- package/src/commands/doctor.test.ts +58 -0
- package/src/commands/doctor.ts +79 -3
- package/src/commands/eval-behavior.ts +1 -1
- package/src/commands/eval.ts +2 -2
- package/src/commands/evolve.ts +4 -3
- package/src/commands/failures.test.ts +1 -1
- package/src/commands/features-batch1.test.ts +6 -1
- package/src/commands/icon.ts +1 -5
- package/src/commands/import-profile.ts +1 -1
- package/src/commands/init.ts +50 -7
- package/src/commands/install-sh.e2e.test.ts +65 -0
- package/src/commands/launch-handoff.e2e.test.ts +88 -0
- package/src/commands/launch.e2e.test.ts +8 -1
- package/src/commands/launch.test.ts +29 -0
- package/src/commands/launch.ts +185 -131
- package/src/commands/lock.ts +0 -1
- package/src/commands/marketplace.ts +0 -4
- package/src/commands/materialize.ts +1 -1
- package/src/commands/mem.ts +341 -0
- package/src/commands/optimizer.ts +0 -3
- package/src/commands/playground.ts +1 -2
- package/src/commands/profile-draft-skill.ts +1 -1
- package/src/commands/replay-whatif.ts +1 -6
- package/src/commands/score.ts +2 -2
- package/src/commands/security.test.ts +88 -0
- package/src/commands/security.ts +74 -28
- package/src/commands/shell.test.ts +65 -4
- package/src/commands/shell.ts +67 -7
- package/src/commands/skills-test.ts +0 -1
- package/src/commands/skills.ts +28 -2
- package/src/commands/sources.ts +1 -2
- package/src/commands/status.ts +2 -6
- package/src/commands/submit-profile.ts +1 -1
- package/src/commands/suggest.ts +35 -10
- package/src/commands/trigger-gaps.test.ts +50 -0
- package/src/commands/trigger-gaps.ts +63 -29
- package/src/commands/update.ts +1 -1
- package/src/commands/validate.ts +16 -4
- package/src/commands/watch-live.ts +1 -1
- package/src/commands/workspace.ts +1 -1
- package/src/index.ts +26 -10
- package/src/lib/active-sessions.ts +1 -1
- package/src/lib/agent-adapters.test.ts +100 -0
- package/src/lib/agent-adapters.ts +2 -2
- package/src/lib/analytics.test.ts +88 -0
- package/src/lib/analytics.ts +82 -1
- package/src/lib/auto-detect.test.ts +10 -4
- package/src/lib/auto-detect.ts +19 -23
- package/src/lib/brand-icons.ts +0 -1
- package/src/lib/cache.ts +2 -3
- package/src/lib/claude-mem-env.test.ts +148 -0
- package/src/lib/claude-mem-env.ts +172 -0
- package/src/lib/combo-history.test.ts +53 -0
- package/src/lib/combo-history.ts +83 -0
- package/src/lib/companion-detect.test.ts +108 -0
- package/src/lib/companion-detect.ts +140 -0
- package/src/lib/companion-fetch.ts +4 -6
- package/src/lib/conditional-skills.test.ts +1 -1
- package/src/lib/config-paths.test.ts +53 -0
- package/src/lib/config-paths.ts +33 -0
- package/src/lib/dashboard-server.test.ts +351 -0
- package/src/lib/dashboard-server.ts +1476 -27
- package/src/lib/debug-log.test.ts +66 -0
- package/src/lib/debug-log.ts +45 -0
- package/src/lib/mcp-catalog.test.ts +102 -0
- package/src/lib/mcp-catalog.ts +193 -0
- package/src/lib/pair-suggestions.test.ts +111 -0
- package/src/lib/pair-suggestions.ts +98 -5
- package/src/lib/permissions.test.ts +76 -0
- package/src/lib/permissions.ts +125 -0
- package/src/lib/picker.test.ts +1106 -1
- package/src/lib/picker.ts +1230 -142
- package/src/lib/plugin-discovery.ts +126 -0
- package/src/lib/pr-poster.ts +1 -1
- package/src/lib/pr-throttle.ts +2 -6
- package/src/lib/profile-linter.test.ts +67 -1
- package/src/lib/profile-linter.ts +59 -14
- package/src/lib/profile-loader.test.ts +21 -0
- package/src/lib/profile-loader.ts +22 -3
- package/src/lib/profile-metrics.ts +2 -6
- package/src/lib/profile-names.test.ts +58 -0
- package/src/lib/repos.test.ts +57 -0
- package/src/lib/repos.ts +167 -0
- package/src/lib/resolver-npx.ts +10 -1
- package/src/lib/runtime-materializer.test.ts +200 -3
- package/src/lib/runtime-materializer.ts +129 -20
- package/src/lib/shared-profiles.ts +2 -3
- package/src/lib/skill-clis.test.ts +113 -0
- package/src/lib/skill-clis.ts +232 -0
- package/src/lib/skill-dependencies.ts +9 -1
- package/src/lib/skill-deps.ts +1 -1
- package/src/lib/skill-linter.ts +1 -1
- package/src/lib/skill-quality.ts +0 -1
- package/src/lib/skill-sandbox.test.ts +1 -1
- package/src/lib/skills-lock.test.ts +1 -1
- package/src/lib/telemetry-consent.ts +3 -5
- package/src/lib/telemetry-report.test.ts +2 -2
- package/src/lib/token-budget.ts +111 -0
- package/src/lib/trigger-gaps.test.ts +70 -0
- package/src/lib/trigger-gaps.ts +48 -6
- package/src/lib/tui/data.ts +1 -5
- package/src/lib/workflow-store.ts +150 -0
- package/src/lib/workspace-secrets.ts +0 -4
- package/src/lib/workspaces.ts +1 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: strapi-cli
|
|
3
|
+
description: 'Use when user says "Strapi CLI", "create a Strapi app", "strapi develop", "build/start Strapi", or "export/import Strapi data". Scaffold and run a Strapi v5 project.'
|
|
4
|
+
tags: [strapi, cli, cms, scaffolding, headless-cms]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Strapi CLI
|
|
8
|
+
|
|
9
|
+
Scaffold, run, and manage a Strapi v5 project from the command line.
|
|
10
|
+
|
|
11
|
+
## Use This Skill For
|
|
12
|
+
|
|
13
|
+
- Creating a new Strapi project
|
|
14
|
+
- Running the dev server, building, and starting in production
|
|
15
|
+
- Exporting / importing / transferring content between environments
|
|
16
|
+
- Generating APIs, types, and listing routes/services
|
|
17
|
+
- Managing admin users from the terminal
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
- Node.js LTS and a package manager (`yarn` recommended; `npm` works but
|
|
22
|
+
hides prompts for interactive commands like `admin:create-user`)
|
|
23
|
+
- Scaffolder: `create-strapi` (run via `npx`, no global install)
|
|
24
|
+
- In-project CLI: `@strapi/strapi`, invoked as `npm run strapi`,
|
|
25
|
+
`yarn strapi`, or `npx strapi`
|
|
26
|
+
|
|
27
|
+
## Create a Project
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx create-strapi@latest my-strapi-project
|
|
31
|
+
cd my-strapi-project
|
|
32
|
+
npm run develop # admin panel → http://localhost:1337/admin
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`strapi new`, `strapi install`, and `strapi watch-admin` from v4 were
|
|
36
|
+
removed in v5. Use `create-strapi` to scaffold and `develop` for watch mode.
|
|
37
|
+
|
|
38
|
+
## Command Reference
|
|
39
|
+
|
|
40
|
+
The local `strapi` binary takes a category of subcommands. Prefix with your
|
|
41
|
+
package manager (`npm run strapi <cmd>` / `yarn strapi <cmd>`).
|
|
42
|
+
|
|
43
|
+
### Development
|
|
44
|
+
|
|
45
|
+
| Command | What it does |
|
|
46
|
+
|---|---|
|
|
47
|
+
| `strapi develop` | Dev server with file watcher + auto-restart. Content-Type Builder is available here. Add `--no-watch-admin` to disable admin hot reload. |
|
|
48
|
+
| `strapi start` | Production-style run. Content-Type Builder is disabled (no restarts). |
|
|
49
|
+
| `strapi build` | Build the admin panel for production. |
|
|
50
|
+
| `strapi console` | Open a REPL with the `strapi` instance loaded. |
|
|
51
|
+
|
|
52
|
+
### Data management
|
|
53
|
+
|
|
54
|
+
| Command | What it does |
|
|
55
|
+
|---|---|
|
|
56
|
+
| `strapi export` | Export content + config to `.tar` (optionally `.gz`, `.enc`). |
|
|
57
|
+
| `strapi import` | Import an export archive or unpacked directory (`-f <file>`). |
|
|
58
|
+
| `strapi transfer` | Stream data directly between two Strapi instances. |
|
|
59
|
+
|
|
60
|
+
### Code generation
|
|
61
|
+
|
|
62
|
+
| Command | What it does |
|
|
63
|
+
|---|---|
|
|
64
|
+
| `strapi generate` | Interactive generator: API, controller, service, content-type, plugin, policy, middleware. |
|
|
65
|
+
| `strapi ts:generate-types` | Regenerate TypeScript types from the schema. |
|
|
66
|
+
| `strapi openapi generate` | Emit an OpenAPI spec for your content API. |
|
|
67
|
+
|
|
68
|
+
### Cloud
|
|
69
|
+
|
|
70
|
+
| Command | What it does |
|
|
71
|
+
|---|---|
|
|
72
|
+
| `strapi login` / `logout` | Authenticate with Strapi Cloud. |
|
|
73
|
+
| `strapi deploy` | Deploy the project to Strapi Cloud. |
|
|
74
|
+
|
|
75
|
+
### Listing & admin
|
|
76
|
+
|
|
77
|
+
- `strapi routes:list`, `policies:list`, `middlewares:list`,
|
|
78
|
+
`content-types:list`, `controllers:list`, `services:list`
|
|
79
|
+
- `strapi admin:create-user`, `admin:reset-user-password`,
|
|
80
|
+
`admin:list-users` (use `yarn`, not `npm`, so prompts render)
|
|
81
|
+
|
|
82
|
+
## Rules
|
|
83
|
+
|
|
84
|
+
- Use `develop` while modeling content; `start` for production runs only.
|
|
85
|
+
- Run interactive admin commands with `yarn`, never `npm` (npm swallows the
|
|
86
|
+
prompts).
|
|
87
|
+
- Treat exports as backups before a risky migration or upgrade.
|
|
88
|
+
- Never commit the generated `.env`, `APP_KEYS`, or admin tokens.
|
|
89
|
+
|
|
90
|
+
## Next Step
|
|
91
|
+
|
|
92
|
+
After the server is up, model content with `building-with-strapi`, or wire
|
|
93
|
+
an AI client with `strapi-mcp-setup`.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: strapi-content-api
|
|
3
|
+
description: 'Use when consuming a Strapi v5 backend over HTTP: REST endpoints, the populate/filters/sort/pagination params, GraphQL setup, API tokens, and permissions.'
|
|
4
|
+
tags: [strapi, rest-api, graphql, content-api, headless-cms]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Strapi Content API
|
|
8
|
+
|
|
9
|
+
Query a Strapi v5 backend from a storefront, app, or script over REST or
|
|
10
|
+
GraphQL.
|
|
11
|
+
|
|
12
|
+
## Use This Skill For
|
|
13
|
+
|
|
14
|
+
- Calling the auto-generated REST endpoints
|
|
15
|
+
- Shaping responses with `populate`, `fields`, `filters`, `sort`, pagination
|
|
16
|
+
- Setting up and querying GraphQL
|
|
17
|
+
- Authenticating with API tokens and granting the right permissions
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
- A running Strapi instance (default `http://localhost:1337`)
|
|
22
|
+
- For protected data: an API token from admin → Settings → API Tokens
|
|
23
|
+
- For GraphQL: the `@strapi/plugin-graphql` package installed
|
|
24
|
+
|
|
25
|
+
## REST Endpoints
|
|
26
|
+
|
|
27
|
+
Strapi generates REST routes per content-type. Use the `pluralApiId` for
|
|
28
|
+
collection types and `singularApiId` for single types.
|
|
29
|
+
|
|
30
|
+
| Method | Collection route | Action |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| GET | `/api/:pluralApiId` | List documents |
|
|
33
|
+
| POST | `/api/:pluralApiId` | Create a document |
|
|
34
|
+
| GET | `/api/:pluralApiId/:documentId` | Get one document |
|
|
35
|
+
| PUT | `/api/:pluralApiId/:documentId` | Update a document |
|
|
36
|
+
| DELETE | `/api/:pluralApiId/:documentId` | Delete a document |
|
|
37
|
+
|
|
38
|
+
Single types drop the `documentId` segment (e.g. `GET /api/homepage`).
|
|
39
|
+
Entries are addressed by their 24-char `documentId`, not numeric `id`.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# list, then fetch one
|
|
43
|
+
curl http://localhost:1337/api/restaurants
|
|
44
|
+
curl http://localhost:1337/api/restaurants/abc123documentid
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
A list response wraps results in `{ data, meta }`, where `meta.pagination`
|
|
48
|
+
carries page info.
|
|
49
|
+
|
|
50
|
+
## Query Parameters
|
|
51
|
+
|
|
52
|
+
Nothing populates by default; relations, media, components, and dynamic
|
|
53
|
+
zones come back only when you ask, and only if the role has find permission
|
|
54
|
+
on them.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# populate relations + pick fields
|
|
58
|
+
curl "http://localhost:1337/api/restaurants?populate=*"
|
|
59
|
+
curl "http://localhost:1337/api/restaurants?populate[chef][fields][0]=name&fields[0]=title"
|
|
60
|
+
|
|
61
|
+
# filter, sort, paginate
|
|
62
|
+
curl "http://localhost:1337/api/restaurants?filters[city][\$eq]=Paris"
|
|
63
|
+
curl "http://localhost:1337/api/restaurants?sort=title:asc&pagination[page]=1&pagination[pageSize]=10"
|
|
64
|
+
|
|
65
|
+
# draft & publish
|
|
66
|
+
curl "http://localhost:1337/api/restaurants?status=published"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Common filter operators: `$eq`, `$ne`, `$lt`, `$gt`, `$contains`,
|
|
70
|
+
`$containsi`, `$in`, `$null`. Combine with `$and` / `$or`.
|
|
71
|
+
|
|
72
|
+
## GraphQL
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
yarn add @strapi/plugin-graphql # or: npm install @strapi/plugin-graphql
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
One endpoint serves everything: `/graphql` (default). The playground is at
|
|
79
|
+
the same URL in dev. Dynamic zones are union types, so query their fields
|
|
80
|
+
with inline fragments (`... on ComponentCategoryName`).
|
|
81
|
+
|
|
82
|
+
```graphql
|
|
83
|
+
query {
|
|
84
|
+
restaurants(filters: { city: { eq: "Paris" } }, sort: "title:asc") {
|
|
85
|
+
documentId
|
|
86
|
+
title
|
|
87
|
+
chef { name }
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Authentication & Permissions
|
|
93
|
+
|
|
94
|
+
- **Public role**: grant find/findOne per content-type in admin → Settings
|
|
95
|
+
→ Users & Permissions → Roles for unauthenticated reads.
|
|
96
|
+
- **API tokens**: send `Authorization: Bearer <token>` for read-only,
|
|
97
|
+
full-access, or custom-scoped server-to-server calls.
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
curl -H "Authorization: Bearer $STRAPI_TOKEN" http://localhost:1337/api/orders
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Rules
|
|
104
|
+
|
|
105
|
+
- Address entries by `documentId`.
|
|
106
|
+
- Add `populate`/`fields` explicitly and grant matching permissions, or
|
|
107
|
+
relations return empty.
|
|
108
|
+
- Never ship a full-access token to a browser client; use the public role or
|
|
109
|
+
a narrowly scoped read-only token.
|
|
110
|
+
- URL-encode filter operators (`$eq`) in shells.
|
|
111
|
+
|
|
112
|
+
## Next Step
|
|
113
|
+
|
|
114
|
+
For AI clients that manage content directly instead of raw HTTP, set up
|
|
115
|
+
`strapi-mcp-setup`.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: strapi-deploy
|
|
3
|
+
description: 'Use when deploying a Strapi v5 backend: Strapi Cloud via the CLI, or self-hosting with NODE_ENV=production build/start, pm2, env vars, and a production database.'
|
|
4
|
+
tags: [strapi, deployment, strapi-cloud, self-host, pm2]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Strapi Deploy
|
|
8
|
+
|
|
9
|
+
Deploy a Strapi v5 project to Strapi Cloud or your own server.
|
|
10
|
+
|
|
11
|
+
## Use This Skill For
|
|
12
|
+
|
|
13
|
+
- Deploying to Strapi Cloud from the CLI
|
|
14
|
+
- Self-hosting: production build, start, process management, env config
|
|
15
|
+
- Moving content between environments
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
- A built project (`npm run build`) that runs locally
|
|
20
|
+
- For Cloud: a Strapi Cloud account and the project-local `strapi` CLI
|
|
21
|
+
- For self-host: Node.js LTS on the server, a production database, and a
|
|
22
|
+
process manager (`pm2` recommended)
|
|
23
|
+
|
|
24
|
+
## Option A: Strapi Cloud
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm run strapi login # or: yarn strapi login
|
|
28
|
+
npm run strapi deploy
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Cloud handles the build, database, and hosting. Use this when you want the
|
|
32
|
+
fastest path and do not need to manage infrastructure.
|
|
33
|
+
|
|
34
|
+
## Option B: Self-Host
|
|
35
|
+
|
|
36
|
+
### 1. Configure for production
|
|
37
|
+
|
|
38
|
+
Set production env vars (never commit them): `NODE_ENV=production`,
|
|
39
|
+
`APP_KEYS`, `API_TOKEN_SALT`, `ADMIN_JWT_SECRET`, `JWT_SECRET`, and the
|
|
40
|
+
database connection (`DATABASE_*`). Point `config/database.ts` at a real
|
|
41
|
+
database (PostgreSQL/MySQL), not SQLite, for production.
|
|
42
|
+
|
|
43
|
+
### 2. Build
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
NODE_ENV=production npm run build # or: yarn build
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
On Windows, wrap with cross-env: `cross-env NODE_ENV=production npm run build`.
|
|
50
|
+
|
|
51
|
+
### 3. Start
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
NODE_ENV=production npm run start # or: yarn start
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 4. Keep it running with pm2
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm install -g pm2
|
|
61
|
+
pm2 start npm --name strapi -- run start
|
|
62
|
+
pm2 save
|
|
63
|
+
pm2 startup # generate the boot script
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Put a reverse proxy (nginx/Traefik) in front for TLS. If you self-host on
|
|
67
|
+
Coolify, the `coolify` skill covers the container + proxy + env workflow.
|
|
68
|
+
|
|
69
|
+
## Moving Content Between Environments
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# back up before deploy
|
|
73
|
+
npm run strapi export -- --file backup.tar.gz
|
|
74
|
+
|
|
75
|
+
# or stream straight to another instance
|
|
76
|
+
npm run strapi transfer -- --to https://prod.example.com/admin
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Rules
|
|
80
|
+
|
|
81
|
+
- Production runs with `NODE_ENV=production`; SQLite is for local dev only.
|
|
82
|
+
- All secrets come from env on the server, never the repo.
|
|
83
|
+
- Build before start; a stale or missing admin build serves a broken panel.
|
|
84
|
+
- Export (or transfer) as a backup before every production deploy.
|
|
85
|
+
|
|
86
|
+
## Next Step
|
|
87
|
+
|
|
88
|
+
After deploy, verify the live API with `strapi-content-api`, or wire the
|
|
89
|
+
production MCP endpoint with `strapi-mcp-setup`.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: strapi-mcp-setup
|
|
3
|
+
description: 'Use when connecting an AI client to Strapi over MCP: the built-in content-management MCP server and the Kapa-powered Strapi Docs MCP server. Covers enabling, tokens, wiring.'
|
|
4
|
+
tags: [strapi, mcp, ai, content-management, claude-code]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Strapi MCP Setup
|
|
8
|
+
|
|
9
|
+
Wire an AI client (Claude Code, Cursor, Claude Desktop) to Strapi's two MCP
|
|
10
|
+
servers.
|
|
11
|
+
|
|
12
|
+
## The Two Servers
|
|
13
|
+
|
|
14
|
+
| Server | Purpose | Auth | Endpoint |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
| **strapi-mcp** | Create/read/update/delete/publish content in *your* Strapi | Admin API token | `<your-strapi>/mcp` |
|
|
17
|
+
| **strapi-docs** | Query the Strapi documentation for accurate, current answers | None | `https://strapi-docs.mcp.kapa.ai` |
|
|
18
|
+
|
|
19
|
+
The `strapi` cue profile wires both already (`mcps: [strapi-docs, strapi-mcp]`).
|
|
20
|
+
This skill covers turning them on and authenticating.
|
|
21
|
+
|
|
22
|
+
## Prerequisites
|
|
23
|
+
|
|
24
|
+
- For **strapi-mcp**: a running Strapi **v5.47.0+** instance and an Admin API
|
|
25
|
+
token. The content tools available depend on that token's permissions.
|
|
26
|
+
- For **strapi-docs**: nothing, it is hosted and unauthenticated.
|
|
27
|
+
- Optional manual wiring uses `npx mcp-remote`.
|
|
28
|
+
|
|
29
|
+
## strapi-mcp (content management)
|
|
30
|
+
|
|
31
|
+
### 1. Enable the server
|
|
32
|
+
|
|
33
|
+
Add the `mcp` block to your Strapi server config and restart:
|
|
34
|
+
|
|
35
|
+
```ts title="config/server.ts"
|
|
36
|
+
export default ({ env }) => ({
|
|
37
|
+
host: env('HOST', '0.0.0.0'),
|
|
38
|
+
port: env.int('PORT', 1337),
|
|
39
|
+
app: { keys: env.array('APP_KEYS') },
|
|
40
|
+
mcp: { enabled: true },
|
|
41
|
+
});
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The endpoint becomes available at `/mcp` (e.g. `http://localhost:1337/mcp`).
|
|
45
|
+
It uses Streamable HTTP, is stateless, and only accepts POST (GET/DELETE
|
|
46
|
+
return 405).
|
|
47
|
+
|
|
48
|
+
### 2. Create an Admin token
|
|
49
|
+
|
|
50
|
+
Admin panel → **Settings → API Tokens → Create new token**. Scope it to the
|
|
51
|
+
content actions you want the AI to perform. Copy the value once.
|
|
52
|
+
|
|
53
|
+
### 3. Connect Claude Code
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
claude mcp add strapi-mcp --transport http http://localhost:1337/mcp \
|
|
57
|
+
-H "Authorization: Bearer YOUR_ADMIN_TOKEN"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Restart Claude Code, then run `/mcp` to confirm `strapi-mcp` is connected.
|
|
61
|
+
|
|
62
|
+
### Via the cue profile
|
|
63
|
+
|
|
64
|
+
The profile's registry entry reads two env vars. Set them (profile `env:` or
|
|
65
|
+
your shell) before materializing:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
export STRAPI_URL="http://localhost:1337"
|
|
69
|
+
export STRAPI_ADMIN_TOKEN="paste-admin-token-here"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The entry expands to an HTTP server at `${STRAPI_URL}/mcp` with the bearer
|
|
73
|
+
header. Permission changes (revoking/editing the token) take effect on the
|
|
74
|
+
next request, there is no session to restart.
|
|
75
|
+
|
|
76
|
+
## strapi-docs (documentation)
|
|
77
|
+
|
|
78
|
+
Zero-config. The cue profile wires it as an HTTP MCP at
|
|
79
|
+
`https://strapi-docs.mcp.kapa.ai`. To add it elsewhere manually:
|
|
80
|
+
|
|
81
|
+
```json title=".cursor/mcp.json or .vscode/mcp.json (servers→type http)"
|
|
82
|
+
{ "mcpServers": { "strapi-docs": { "url": "https://strapi-docs.mcp.kapa.ai" } } }
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Tip: prefix doc questions with `Use the strapi-docs MCP server to answer:` so
|
|
86
|
+
the model queries live docs instead of stale training data.
|
|
87
|
+
|
|
88
|
+
## Rules
|
|
89
|
+
|
|
90
|
+
- Scope the Admin token to the minimum actions the AI needs; it gates every
|
|
91
|
+
content tool.
|
|
92
|
+
- Never commit the Admin token; pass it through env (`STRAPI_ADMIN_TOKEN`).
|
|
93
|
+
- strapi-mcp needs the server running and v5.47+; until then it errors,
|
|
94
|
+
strapi-docs still works standalone.
|
|
95
|
+
- The content MCP is Beta; verify destructive actions (delete/unpublish)
|
|
96
|
+
before letting an agent run them unattended.
|
|
97
|
+
|
|
98
|
+
## Next Step
|
|
99
|
+
|
|
100
|
+
Once connected, use `building-with-strapi` for the data model the MCP tools
|
|
101
|
+
operate on, or `strapi-content-api` to consume the same content over HTTP.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: strapi-plugins
|
|
3
|
+
description: 'Use when developing a Strapi v5 plugin: scaffolding with @strapi/sdk-plugin, the server + admin panel structure, registering it, and building/publishing.'
|
|
4
|
+
tags: [strapi, plugins, sdk-plugin, backend, admin-panel]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Strapi Plugins
|
|
8
|
+
|
|
9
|
+
Build a Strapi v5 plugin to extend the server, the admin panel, or both.
|
|
10
|
+
|
|
11
|
+
## Use This Skill For
|
|
12
|
+
|
|
13
|
+
- Scaffolding a new plugin with the Plugin SDK
|
|
14
|
+
- Understanding the server-side vs admin-side structure
|
|
15
|
+
- Registering a local plugin and building it for publish
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
- A Strapi v5 project to host the plugin during development
|
|
20
|
+
- The Plugin SDK: `@strapi/sdk-plugin` (run via `npx` / `yarn dlx`)
|
|
21
|
+
- For installing community plugins instead of writing one, use the
|
|
22
|
+
Marketplace npx command shown on each plugin's page
|
|
23
|
+
|
|
24
|
+
## Scaffold
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx @strapi/sdk-plugin@latest init my-strapi-plugin
|
|
28
|
+
# or: yarn dlx @strapi/sdk-plugin init my-strapi-plugin
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
This generates a plugin package with separate server and admin entry points.
|
|
32
|
+
Keep each concern in its own folder (the generated layout) rather than one
|
|
33
|
+
entry file.
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
my-strapi-plugin/
|
|
37
|
+
├── admin/src/ admin panel UI (React) — index.ts register()/bootstrap()
|
|
38
|
+
├── server/src/ controllers, services, routes, content-types, register/bootstrap
|
|
39
|
+
├── strapi-server.ts server entry
|
|
40
|
+
├── strapi-admin.ts admin entry
|
|
41
|
+
└── package.json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Plugin SDK Commands
|
|
45
|
+
|
|
46
|
+
| Command | What it does |
|
|
47
|
+
|---|---|
|
|
48
|
+
| `@strapi/sdk-plugin init <name>` | Scaffold a new plugin package |
|
|
49
|
+
| `strapi-plugin build` | Build the plugin for publishing |
|
|
50
|
+
| `strapi-plugin watch` | Rebuild on change during development |
|
|
51
|
+
| `strapi-plugin verify` | Check the package is publish-ready |
|
|
52
|
+
|
|
53
|
+
You can also scaffold individual pieces inside a host project with
|
|
54
|
+
`strapi generate plugin`.
|
|
55
|
+
|
|
56
|
+
## Register a Local Plugin
|
|
57
|
+
|
|
58
|
+
Enable the plugin in the host project's plugins config:
|
|
59
|
+
|
|
60
|
+
```ts title="config/plugins.ts"
|
|
61
|
+
export default {
|
|
62
|
+
'my-plugin': {
|
|
63
|
+
enabled: true,
|
|
64
|
+
resolve: './src/plugins/my-strapi-plugin', // local path
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Server code reaches Strapi through `strapi` (e.g.
|
|
70
|
+
`strapi.documents(...)`, `strapi.plugin('my-plugin').service('x')`). Admin
|
|
71
|
+
code registers menu links, settings pages, and injection zones in
|
|
72
|
+
`admin/src/index.ts`.
|
|
73
|
+
|
|
74
|
+
## Build & Publish
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
cd my-strapi-plugin
|
|
78
|
+
npm run build # strapi-plugin build
|
|
79
|
+
npm publish # to NPM, then optionally submit to the Marketplace
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Upgrading the SDK across majors (e.g. v5 → v6) can change config; check the
|
|
83
|
+
plugin's create-a-plugin guide before bumping.
|
|
84
|
+
|
|
85
|
+
## Rules
|
|
86
|
+
|
|
87
|
+
- Split server and admin concerns into their folders; do not cram everything
|
|
88
|
+
into one entry file.
|
|
89
|
+
- Use the Document Service from server code, not raw DB access, unless you
|
|
90
|
+
need the lower level.
|
|
91
|
+
- `enabled: true` plus a `resolve` path is required for local plugins to load.
|
|
92
|
+
- Run `verify` before publishing to catch a malformed package.
|
|
93
|
+
|
|
94
|
+
## Next Step
|
|
95
|
+
|
|
96
|
+
Model the content your plugin operates on with `building-with-strapi`, or ship
|
|
97
|
+
the project with `strapi-deploy`.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context7
|
|
3
|
+
description: Fetch up-to-date, version-specific library/API docs to avoid outdated or hallucinated APIs. Use when the user says "use context7", "latest docs for X", or codes against a fast-moving library.
|
|
4
|
+
allowed-tools: Bash(ctx7:*), Bash(npx:*)
|
|
5
|
+
category: tools
|
|
6
|
+
tags: [tools, documentation, context7, mcp, libraries]
|
|
7
|
+
metadata:
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
homepage: https://context7.com
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Up-to-date library docs with Context7
|
|
13
|
+
|
|
14
|
+
Context7 pulls version-specific documentation and real code examples from a
|
|
15
|
+
library's source and drops them into context. It kills the two failure modes of
|
|
16
|
+
training-data answers: outdated APIs, and hallucinated methods that don't exist.
|
|
17
|
+
|
|
18
|
+
Two surfaces, same data. Use whichever is wired:
|
|
19
|
+
|
|
20
|
+
- **MCP** (`context7` server, ships in `core`): call `resolve-library-id`, then
|
|
21
|
+
`query-docs`. No shell needed.
|
|
22
|
+
- **CLI** (`ctx7`): same lookups from the terminal.
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
The `context7` MCP ships in cue's `core` profile (no API key needed). For the
|
|
27
|
+
standalone CLI:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install -g ctx7 # or run on demand with: npx ctx7 <cmd>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
For higher rate limits, get a free key at https://context7.com/dashboard and set
|
|
34
|
+
`CONTEXT7_API_KEY` in your environment.
|
|
35
|
+
|
|
36
|
+
## When to reach for it
|
|
37
|
+
|
|
38
|
+
Pull docs before writing code against any library whose API may have moved since
|
|
39
|
+
your training cutoff: frameworks (Next.js, Remix), SDKs (Supabase, Stripe,
|
|
40
|
+
OpenAI), infra (Cloudflare Workers, Vercel), CSS (Tailwind). If the user names a
|
|
41
|
+
version like "Next.js 15 middleware", Context7 matches that version.
|
|
42
|
+
|
|
43
|
+
## Step 1: Resolve the library id
|
|
44
|
+
|
|
45
|
+
A Context7 id looks like `/vercel/next.js` or `/supabase/supabase`. If the user
|
|
46
|
+
already gave one, skip to Step 2.
|
|
47
|
+
|
|
48
|
+
Via MCP: call `resolve-library-id` with the library name plus the question.
|
|
49
|
+
|
|
50
|
+
Via CLI:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
ctx7 library "next.js" "app router middleware"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Step 2: Fetch the docs
|
|
57
|
+
|
|
58
|
+
Via MCP: call `query-docs` with the resolved `libraryId` plus the question.
|
|
59
|
+
|
|
60
|
+
Via CLI:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
ctx7 docs /vercel/next.js "add middleware that checks a JWT cookie"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Read the returned snippets, then write the implementation against them, not
|
|
67
|
+
against memory.
|
|
68
|
+
|
|
69
|
+
## Example
|
|
70
|
+
|
|
71
|
+
User: "Show me the Supabase email/password sign-up API. use context7"
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Step 1 — resolve (skip if the id is known)
|
|
75
|
+
ctx7 library "supabase" "email password sign-up"
|
|
76
|
+
# → /supabase/supabase
|
|
77
|
+
|
|
78
|
+
# Step 2 — fetch version-specific docs
|
|
79
|
+
ctx7 docs /supabase/supabase "email and password sign-up"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Then write the `supabase.auth.signUp(...)` call straight from the returned
|
|
83
|
+
snippet.
|
|
84
|
+
|
|
85
|
+
## Rules
|
|
86
|
+
|
|
87
|
+
- **Resolve before querying.** A bare library name needs `resolve-library-id`
|
|
88
|
+
first; `query-docs` takes a Context7 id, not a name.
|
|
89
|
+
- **Pass the version when the user gives one.** "Next.js 14" and "Next.js 15"
|
|
90
|
+
return different docs; include it in the query.
|
|
91
|
+
- **Prefer the MCP when it is loaded** (it is in `core`); fall back to the
|
|
92
|
+
`ctx7` CLI only when the MCP tools are not available.
|
|
93
|
+
- **Quote, do not paraphrase from memory.** The point of Context7 is the fetched
|
|
94
|
+
snippet; write code against what it returns, not what you recall.
|
|
95
|
+
- **No key is fine.** It works unauthenticated at lower rate limits; only add
|
|
96
|
+
`CONTEXT7_API_KEY` if you hit limits.
|
|
97
|
+
|
|
98
|
+
## Next step
|
|
99
|
+
|
|
100
|
+
Name the library plus task ("Supabase email/password sign-up", "Cloudflare
|
|
101
|
+
Worker caching JSON for 5 min") and run Step 1 to resolve its id.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: opensrc
|
|
3
|
-
description: Fetch dependency source code
|
|
3
|
+
description: Fetch dependency source code so agents read real implementations, not just types and docs — clones npm/PyPI/crates.io/GitHub packages at the right version and caches them locally. Use when the user says "fetch source for", "read the source of", "get the implementation of", "how does X work internally", or "opensrc path", or whenever a task needs to inspect a dependency's actual code beyond its public types.
|
|
4
4
|
allowed-tools: Bash(opensrc:*)
|
|
5
5
|
category: tools
|
|
6
6
|
tags: [tools, source-fetching, dependencies, npm, pypi, crates]
|