Agentic CLI for discovering and searching Vercel Templates
Project description
Vercel Templates Discovery
Agentic CLI for discovering, indexing, and searching Vercel Templates. No public API exists — this tool fills the gap for agents and developers who want a searchable, local catalog with install commands.
Quick start (Python)
# Install from PyPI (once published)
pip install vercel-templates-discovery
# Or install locally for development
pip install -e ".[dev]"
# Index the catalog
vercel-templates index
# 3. Search
vercel-templates search "AI chatbot"
vercel-templates search "ecommerce" --limit 3
# 4. Show details
vercel-templates show /templates/next.js/chatbot
# 5. Export to JSON
vercel-templates export --output templates.json
Quick start (TypeScript / WSL)
# Install globally from npm (once published)
npm install -g @kxnnymusic/vercel-templates-discovery
cd ts
npm install
# Build once, or run via tsx
npm run build
npm run typecheck:all
npm test
# Index the catalog
npx tsx src/cli.ts index
# Search / show
npx tsx src/cli.ts search "AI chatbot" --json
npx tsx src/cli.ts show /templates/next.js/chatbot --json
Why this exists
Vercel maintains a curated library of high-quality templates, but provides no SDK, CLI, or API for discovering them. This tool:
- Crawls the Vercel Templates gallery (~277 templates).
- Extracts metadata, GitHub URLs, and install commands.
- Stores everything in a local SQLite cache with full-text search.
- Exposes a simple CLI that agents can call or shell out to.
Architecture
vercel_templates/ # Python implementation
├── config.py # categories, cache path, constants
├── scraper.py # crawler + detail extractor + SQLite cache
└── cli.py # Typer CLI
ts/ # TypeScript / Node implementation
├── src/
│ ├── scraper.ts # crawler + detail extractor
│ ├── db.ts # SQLite cache + FTS5 search
│ ├── cli.ts # Commander CLI
│ ├── mcp-server.ts # stdio JSON-RPC MCP server
│ └── index.ts # library exports
├── tests/
│ └── scraper.test.ts # vitest tests
└── package.json
The scraper uses fetch + cheerio + regex to parse Vercel's server-rendered pages and Next.js flight payloads. Because the catalog is small, the entire index can be rebuilt in under a minute.
Commands
| Command | Description |
|---|---|
index |
Crawl and index the full catalog |
search QUERY |
Full-text search over titles, descriptions, tags |
show SLUG |
Show full details for a template |
export |
Dump the indexed catalog to JSON |
stats |
Show framework/category counts |
serve |
Start the REST API server |
REST API server
Run the server with:
vercel-templates serve
# or
vercel-templates serve --host 0.0.0.0 --port 8080
Endpoints:
| Endpoint | Description |
|---|---|
GET /health |
Health check |
GET /templates?q=...&limit=... |
Search or list templates |
GET /templates/{slug} |
Get one template by slug (e.g. /templates/next.js/chatbot) |
GET /categories |
List frameworks and use cases |
Agentic usage
The CLI is designed to be easy for agents to consume:
# JSON output for downstream parsing
vercel-templates search "AI chatbot" --json
vercel-templates show /templates/next.js/chatbot --json
MCP server
An MCP (Model Context Protocol) server is included for direct agent integration:
# Start the MCP server
python -m vercel_templates.mcp_server
# or
vercel-templates-mcp
Available tools:
search_templates(query, limit)— search the catalogget_template(slug)— get full details for a templatelist_categories()— list available categories/frameworks
Example MCP client config (Claude Desktop / Cursor):
{
"mcpServers": {
"vercel-templates": {
"command": "python",
"args": ["-m", "vercel_templates.mcp_server"]
}
}
}
Hermes skill
A Hermes skill wrapper is provided under skills/vercel-templates/. Copy or symlink the skill into your Hermes profile's skills/ directory:
# Windows native Hermes example
copy /Y skills\vercel-templates %LOCALAPPDATA%\hermes\skills\vercel-templates
# or Hermes profile path: ~/.hermes/profiles/default/skills/vercel-templates
The skill exposes the same three tools as the MCP server and can be used directly by Hermes agents.
Project status
See docs/PROJECT_PLAN.md for the roadmap, milestones, and backlog.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vercel_templates_discovery-0.2.1.tar.gz.
File metadata
- Download URL: vercel_templates_discovery-0.2.1.tar.gz
- Upload date:
- Size: 76.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9be9fd2f53982cab468bd8e94892264b30b9b3e9935d2d908a0e5c65dae2fc2
|
|
| MD5 |
fb51fb998f9985504e164087a8dcc9af
|
|
| BLAKE2b-256 |
4e26cf6864945a6e112e955ddaec3eb6fc2fd02a62b7953aaca2a92e696a967e
|
Provenance
The following attestation bundles were made for vercel_templates_discovery-0.2.1.tar.gz:
Publisher:
publish-pypi.yml on imKXNNY/vercel-templates-discovery
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vercel_templates_discovery-0.2.1.tar.gz -
Subject digest:
e9be9fd2f53982cab468bd8e94892264b30b9b3e9935d2d908a0e5c65dae2fc2 - Sigstore transparency entry: 2083209841
- Sigstore integration time:
-
Permalink:
imKXNNY/vercel-templates-discovery@04ad6dc8a3bee38d5d93d2045f59863696e7d608 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/imKXNNY
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@04ad6dc8a3bee38d5d93d2045f59863696e7d608 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vercel_templates_discovery-0.2.1-py3-none-any.whl.
File metadata
- Download URL: vercel_templates_discovery-0.2.1-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ad41c3ced9a9146d931922947a6befeb06d14f095862d57407214338f9f43be
|
|
| MD5 |
efc7807d899dad4f87c181a9aee9a2ca
|
|
| BLAKE2b-256 |
316c56241f92c947b120168bd63ea374f11fa669dd8cabda234f5ea052372275
|
Provenance
The following attestation bundles were made for vercel_templates_discovery-0.2.1-py3-none-any.whl:
Publisher:
publish-pypi.yml on imKXNNY/vercel-templates-discovery
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vercel_templates_discovery-0.2.1-py3-none-any.whl -
Subject digest:
0ad41c3ced9a9146d931922947a6befeb06d14f095862d57407214338f9f43be - Sigstore transparency entry: 2083209845
- Sigstore integration time:
-
Permalink:
imKXNNY/vercel-templates-discovery@04ad6dc8a3bee38d5d93d2045f59863696e7d608 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/imKXNNY
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@04ad6dc8a3bee38d5d93d2045f59863696e7d608 -
Trigger Event:
push
-
Statement type: