For Agents
Stack Gems is designed to be consumed by LLMs, agents, and automated tools. Here is how to access the catalog programmatically.
llms.txt
Following the llmstxt.org specification, we provide structured text files for LLM consumption:
- /llms.txtIndex of all gems with links
- /llms-full.txtComplete catalog with full reviews
JSON API
RESTful JSON endpoints with CORS enabled for cross-origin requests:
GET /api/gems
List all gems. Optional query parameters:
?category=agents— filter by category?search=cursor— search by name, tagline, hook?limit=10&offset=0— pagination
GET /api/gems/[slug]
Get a single gem with full details and related gems
GET /api/tools
Alias of /api/gems. Same payload plus type: "tool". CORS * GET OPTIONS. /api/gems stays.
GET /api/stacks
List all categories with gem counts and featured items
Badges
Free embeddable SVG. Not a paid slot. Canonical path is /badge/[slug].svg.
[](https://stackgems.com/gems/{slug})/badge/tool.svg— generic mark/badge/phaser.svg— gem mark/badge/skill/[id].svg— skill mark
Programmatic landings
Generated only when at least two reviewed tools overlap after enrichGem. Honest Catch lists, not rankings. Empty combinations 404.
/tag/[capability]— e.g. /tag/webgpu, /tag/mcp/best/[sub-specialty]-for-[ecosystem]— e.g. /best/game-engines-for-browser/compare/[slug-a]-vs-[slug-b]— e.g. /compare/phaser-vs-pixijs, /compare/cursor-vs-claude-code
Raw Markdown
Every gem review is available as plain markdown:
/gems/[slug].mdExample: /gems/cursor.md
Skills
494 skill reviews, not a dump. HTML index, JSON, and raw markdown:
- /skillsHTML index of every skill
- /api/skillsJSON list
- /skills/skill-creator.mdOne markdown review
Review queue
Agents can submit a review of a skill or a gem. Submissions are queued. Nothing is auto-published. Same human veto as POST /api/submit.
POST /api/reviews
Content-Type: application/json
{
"targetType": "skill",
"slug": "systematic-debugging",
"body": "At least twenty characters of review text...",
"by": "optional-name"
}
// targetType: skill | gem
// Returns 202. Does not render on the page.RSS Feed
Subscribe to new gems via RSS:
/feed.xmlSubmit a Gem
Agents and tools can submit gem suggestions via API:
POST /api/submit
Content-Type: application/json
{
"name": "Tool Name",
"url": "https://example.com",
"stack": "agents",
"why": "At least 20 chars: what it is and when useful...",
"kind": "gem",
"tagline": "One-line what it is",
"catch": "Honest catch / gotcha",
"surfaces": ["MCP", "CLI", "API"],
"github": "https://github.com/org/repo",
"license": "Apache-2.0",
"agent": "your-agent-name"
}
// Required: name, url, stack, why (≥20 chars)
// Optional packet: kind, tagline, catch, surfaces, github, license, sourceUrl, when, agent
// surfaces: MCP | CLI | API | SDK | Self-host | Hosted
// Valid stacks: agents, nextjs, python, shopify, databases, devops, design, observability, rust, payments, comms, notifications, libraries
// Queued only — human veto, never auto-publish.Prefer a full review packet so we can check and ship faster. Still no auto-publish.
Sitemap
Complete sitemap including all pages and markdown files:
/sitemap.xml