{
  "version": "1.8",
  "generated": "2026-09-15",
  "count": 226,
  "ecosystems": [
    "Claude",
    "Claude Code",
    "ChatGPT",
    "Codex",
    "OpenCode",
    "Cursor",
    "Gemini",
    "Perplexity",
    "Microsoft 365 Copilot",
    "GitHub Copilot",
    "Antigravity",
    "Kiro",
    "Pi"
  ],
  "description": "SkillsAllYouNeed — open registry of AI skills for Claude, Claude Code, ChatGPT, Codex, OpenCode, Cursor, Gemini, Perplexity, Microsoft 365 Copilot, GitHub Copilot, Antigravity, Kiro, and Pi.",
  "license": "CC BY 4.0",
  "source": "https://kishormorol.github.io/SkillsAllYouNeed/",
  "skills": [
    {
      "id": "cl-artifacts",
      "name": "Artifacts",
      "ecosystem": "Claude",
      "category": "Visual",
      "status": "Stable",
      "description": "Standalone code or document outputs that render live in a dedicated side panel — HTML, React, SVG, Markdown, or Mermaid.",
      "trigger": "“Build me a React calculator” · “Make me an SVG diagram”",
      "example": "A request for an interactive component opens a side panel with a runnable preview the user can iterate on.",
      "source": "https://www.anthropic.com/news/artifacts",
      "howto": "Open claude.ai and make your request — Claude renders the output in a side panel automatically. No toggle needed."
    },
    {
      "id": "cl-visualizer",
      "name": "Visualizer",
      "ecosystem": "Claude",
      "category": "Visual",
      "status": "Stable",
      "description": "Inline SVG diagrams, charts, and interactive widgets streamed directly into the body of a chat reply.",
      "trigger": "“Show me a chart of…” · “Draw a flow diagram of…”",
      "example": "A complexity question is answered with an inline annotated SVG instead of plain prose.",
      "source": "https://www.anthropic.com/news/visualizer",
      "howto": "Ask Claude to \"show\" or \"draw\" something. It streams an inline SVG or chart directly into the reply."
    },
    {
      "id": "cl-code-exec",
      "name": "Code Execution",
      "ecosystem": "Claude",
      "category": "Code",
      "status": "Stable",
      "description": "Sandboxed Linux container that runs code and produces real files (.docx, .pptx, .xlsx, .pdf, images).",
      "trigger": "“Run this Python” · “Generate a PPTX from this outline”",
      "example": "Claude executes a pandas notebook against an uploaded CSV and returns a real .xlsx report.",
      "source": "https://www.anthropic.com/news/code-execution",
      "howto": "Attach a file or ask Claude to run code. It opens a sandboxed Linux container and returns real downloadable output files."
    },
    {
      "id": "cl-skills",
      "name": "Skills",
      "ecosystem": "Claude",
      "category": "Agentic",
      "status": "Stable",
      "description": "Modular instruction packs Claude loads on demand — docx, pptx, xlsx, pdf, frontend‑design, brainstorming, skill‑creator and more.",
      "trigger": "Triggered automatically by request type",
      "example": "“Make me a deck about Q2” loads the pptx skill, which knows how to produce a real, editable presentation.",
      "source": "https://www.anthropic.com/news/skills",
      "howto": "Skills load automatically based on your request type — just ask (e.g. \"make a deck\" loads the pptx skill). No manual toggle."
    },
    {
      "id": "cl-projects",
      "name": "Projects",
      "ecosystem": "Claude",
      "category": "Memory",
      "status": "Stable",
      "description": "Persistent workspaces with custom instructions and a shared knowledge base of uploaded files.",
      "trigger": "Create from the sidebar; pin chats inside",
      "example": "A “Q2 Planning” project keeps the brief, the deck, and prior chats together with consistent custom instructions.",
      "source": "https://www.anthropic.com/news/projects",
      "howto": "claude.ai sidebar → New Project → add custom instructions and upload knowledge files. All chats inside share the same context."
    },
    {
      "id": "cl-memory",
      "name": "Memory",
      "ecosystem": "Claude",
      "category": "Memory",
      "status": "Stable",
      "description": "Persistent, user‑editable facts that travel across every conversation.",
      "trigger": "“Remember that I…” · settings → Memory",
      "example": "Claude recalls your stack, tone preferences, and timezone in every new chat without re‑priming.",
      "source": "https://www.anthropic.com/news/memory",
      "howto": "Say \"remember that I…\" or go to Settings → Memory to view, edit, or delete stored facts."
    },
    {
      "id": "cl-past-search",
      "name": "Past Chat Search",
      "ecosystem": "Claude",
      "category": "Memory",
      "status": "Stable",
      "description": "Built‑in conversation_search and recent_chats tools let Claude reference prior conversations.",
      "trigger": "“What did we decide about… last week?”",
      "example": "Claude finds a prior thread and quotes the conclusion verbatim in a new chat.",
      "source": "https://www.anthropic.com/news/past-search",
      "howto": "Ask \"what did we discuss about X?\" — Claude automatically uses conversation_search to find relevant prior threads."
    },
    {
      "id": "cl-web",
      "name": "Web Search",
      "ecosystem": "Claude",
      "category": "Web",
      "status": "Stable",
      "description": "Search the live web for current information, with attributed sources.",
      "trigger": "Any question with a freshness need",
      "example": "“What's the latest in the case of X v. Y?” returns a synthesised answer with cited sources.",
      "source": "https://www.anthropic.com/news/web-search",
      "howto": "Ask any time-sensitive question. Claude decides when to search; no toggle needed. Cited sources appear in the reply."
    },
    {
      "id": "cl-mcp",
      "name": "MCP Connectors",
      "ecosystem": "Claude",
      "category": "Integration",
      "status": "Stable",
      "description": "Third‑party app integrations — Google Drive, Gmail, Slack, GitHub, Asana, Notion, Linear, HubSpot, Zapier and more.",
      "trigger": "Settings → Connectors → enable",
      "example": "“Summarise this morning's Linear updates and email Maria a digest” chains MCP servers end‑to‑end.",
      "source": "https://www.anthropic.com/news/connectors",
      "howto": "Settings → Connectors → enable a connector (e.g. Google Drive). Then reference it naturally in your prompt."
    },
    {
      "id": "cl-styles",
      "name": "Styles",
      "ecosystem": "Claude",
      "category": "Document",
      "status": "Stable",
      "description": "Custom output personalities — concise, formal, code‑first — applied per chat or globally.",
      "trigger": "Sidebar → choose or author a Style",
      "example": "A “Brutally Concise” style strips every preamble from every reply.",
      "source": "https://www.anthropic.com/news/styles",
      "howto": "Sidebar → Styles → choose a preset or click + to author your own. The style applies to all replies in that chat."
    },
    {
      "id": "cl-imagegen",
      "name": "Image generation",
      "ecosystem": "Claude",
      "category": "Visual",
      "status": "Beta",
      "description": "Image creation through connected services (e.g. via MCP), surfaced inline in Claude.",
      "trigger": "“Generate an image of…”",
      "example": "A request for a hero illustration returns a rendered PNG inside the conversation.",
      "source": "https://www.anthropic.com/news/imagegen",
      "howto": "Connect an image-generation MCP server via Settings → Connectors, then say \"generate an image of…\"."
    },
    {
      "id": "cl-voice",
      "name": "Voice mode",
      "ecosystem": "Claude",
      "category": "Agentic",
      "status": "Beta",
      "description": "Spoken back‑and‑forth conversation on the mobile app.",
      "trigger": "Microphone icon (mobile)",
      "example": "A walking conversation about a draft, with Claude responding in natural voice.",
      "source": "https://www.anthropic.com/news/voice",
      "howto": "Open the Claude iOS or Android app and tap the microphone icon to start a spoken conversation."
    },
    {
      "id": "cc-cli",
      "name": "Terminal CLI",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Agentic coding from the command line — read, write, run, commit, all inside your terminal.",
      "trigger": "$ claude",
      "example": "Ask for a refactor and Claude Code edits files in place, runs tests, and shows a diff before committing.",
      "source": "https://www.anthropic.com/claude-code",
      "howto": "Install: `npm install -g @anthropic-ai/claude-code` then run `claude` inside any project directory."
    },
    {
      "id": "cc-plan",
      "name": "Plan Mode",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Read‑only exploration phase that produces a plan before any change is made to your repo.",
      "trigger": "Shift+Tab in interactive mode",
      "example": "On a large refactor request, Claude maps the call graph first, then proposes a step‑by‑step diff plan.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/plan-mode",
      "howto": "In interactive mode press Shift+Tab to enter Plan Mode. Claude maps the codebase before touching any files."
    },
    {
      "id": "cc-subagents",
      "name": "Subagents",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Spawn specialised child agents (verifier, researcher, formatter) with their own scoped context.",
      "trigger": "From within a plan or hook",
      "example": "A verifier subagent reviews the main agent's output in a fresh context window and reports back.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/subagents",
      "howto": "Reference the Agent tool in a prompt or hook — Claude Code spawns and coordinates child agents automatically."
    },
    {
      "id": "cc-hooks",
      "name": "Hooks",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Lifecycle scripts — PreToolUse, PostToolUse, SessionStart — that fire deterministically around agent steps.",
      "trigger": ".claude/hooks/*",
      "example": "A PostToolUse hook runs eslint --fix every time the agent writes a JS file.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/hooks",
      "howto": "Create `.claude/hooks/` in your repo. Add shell scripts named after lifecycle events, e.g. `PostToolUse.sh`."
    },
    {
      "id": "cc-slash",
      "name": "Slash Commands",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Reusable, parameterised prompt templates invoked with /command.",
      "trigger": "/test · /commit · custom /…",
      "example": "/review @file generates a structured code review every time without re‑writing the prompt.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/slash-commands",
      "howto": "Type `/command` in the prompt. Store custom commands as Markdown files in `.claude/commands/`."
    },
    {
      "id": "cc-claude-md",
      "name": "CLAUDE.md",
      "ecosystem": "Claude Code",
      "category": "Memory",
      "status": "Stable",
      "description": "Repo‑level instruction file Claude Code reads on every session to learn your conventions.",
      "trigger": "Drop a CLAUDE.md at repo root",
      "example": "A CLAUDE.md pins your test runner, module aliases, and the “no any types” rule across all sessions.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/memory",
      "howto": "Create a `CLAUDE.md` file at your repo root. Claude Code reads it at the start of every session automatically."
    },
    {
      "id": "cc-mcp",
      "name": "MCP Servers",
      "ecosystem": "Claude Code",
      "category": "Integration",
      "status": "Stable",
      "description": "Connect to external tools via Model Context Protocol — databases, ticket trackers, search APIs.",
      "trigger": "claude mcp add …",
      "example": "A Postgres MCP lets Claude Code run SELECT queries against your dev database during a debug session.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/mcp",
      "howto": "Run `claude mcp add <name> <command>` or edit `~/.claude/mcp.json`. Restart Claude Code to load new servers."
    },
    {
      "id": "cc-vscode",
      "name": "VS Code Extension",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Claude Code rendered as a side panel inside Visual Studio Code with diff‑aware UI.",
      "trigger": "Install from the marketplace",
      "example": "A diff appears inline in the editor; you accept or reject hunks visually.",
      "source": "https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code",
      "howto": "Install \"Claude Code\" from the VS Code Marketplace. A panel appears in the sidebar — open it to start."
    },
    {
      "id": "cc-jetbrains",
      "name": "JetBrains Plugin",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Claude Code inside IntelliJ, PyCharm, GoLand, WebStorm, and the rest of the JetBrains family.",
      "trigger": "Install from JetBrains Marketplace",
      "example": "Trigger Claude on a failing test from the gutter; it proposes a patch in‑line.",
      "source": "https://plugins.jetbrains.com/plugin/claude-code",
      "howto": "Install \"Claude Code\" from JetBrains Marketplace. Open the tool window from the right sidebar."
    },
    {
      "id": "cc-slack",
      "name": "Claude Code for Slack",
      "ecosystem": "Claude Code",
      "category": "Integration",
      "status": "Beta",
      "description": "Kick off coding tasks from any Slack channel; results post back as threaded replies.",
      "trigger": "@claude in any channel",
      "example": "A bug report in #frontend is handed to @claude, which opens a PR and links it back in‑thread.",
      "source": "https://www.anthropic.com/news/claude-code-slack",
      "howto": "Install the Claude Code Slack app from the Anthropic integrations page, then @mention Claude in any channel."
    },
    {
      "id": "cc-actions",
      "name": "GitHub Actions",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Run Claude Code inside CI/CD pipelines — review PRs, triage issues, generate release notes.",
      "trigger": "anthropic/claude-code-action in workflow",
      "example": "Every PR gets an automated review comment with concrete change suggestions.",
      "source": "https://github.com/anthropics/claude-code-action",
      "howto": "Add `uses: anthropics/claude-code-action@v1` to a step in your `.github/workflows/*.yml` file."
    },
    {
      "id": "gpt-canvas",
      "name": "Canvas",
      "ecosystem": "ChatGPT",
      "category": "Document",
      "status": "Stable",
      "description": "Side‑panel collaborative document and code editor with inline review comments.",
      "trigger": "“Open this in canvas”",
      "example": "A draft essay is opened in canvas where ChatGPT can suggest targeted edits to specific paragraphs.",
      "source": "https://openai.com/index/introducing-canvas/",
      "howto": "Say \"open this in canvas\" or click the canvas icon in the toolbar. ChatGPT opens a collaborative side editor."
    },
    {
      "id": "gpt-customs",
      "name": "Custom GPTs",
      "ecosystem": "ChatGPT",
      "category": "Agentic",
      "status": "Stable",
      "description": "User‑authored assistants with custom instructions, knowledge files, and tool selection.",
      "trigger": "Explore GPTs → Create",
      "example": "A “Tax FAQ” GPT with the firm's policy PDFs answers staff questions in a consistent voice.",
      "source": "https://openai.com/index/introducing-gpts/",
      "howto": "chatgpt.com → Explore GPTs → + Create → configure name, instructions, knowledge files, and tools."
    },
    {
      "id": "gpt-actions",
      "name": "Actions",
      "ecosystem": "ChatGPT",
      "category": "Integration",
      "status": "Stable",
      "description": "REST API calls from a Custom GPT, declared via an OpenAPI schema and authenticated per‑call.",
      "trigger": "Authored in GPT builder → Actions",
      "example": "A travel GPT calls a flight‑search API live during the chat to return real itineraries.",
      "source": "https://platform.openai.com/docs/actions",
      "howto": "In GPT Builder → Configure → Actions → paste your OpenAPI 3.1 schema. Add an auth method if required."
    },
    {
      "id": "gpt-dalle",
      "name": "DALL·E 3",
      "ecosystem": "ChatGPT",
      "category": "Visual",
      "status": "Stable",
      "description": "Native image generation built into the chat surface, with iterative editing.",
      "trigger": "“Generate an image of…”",
      "example": "A brief is turned into a hero image, then nudged with “same composition, warmer light”.",
      "source": "https://openai.com/dall-e-3",
      "howto": "Say \"generate an image of…\" — DALL·E 3 is built in. No setup required. Iterate with follow-up prompts."
    },
    {
      "id": "gpt-ada",
      "name": "Advanced Data Analysis",
      "ecosystem": "ChatGPT",
      "category": "Data",
      "status": "Stable",
      "description": "Python sandbox for working with uploaded files — pandas, matplotlib, scikit‑learn, ffmpeg.",
      "trigger": "Upload a file or “run python”",
      "example": "A CSV upload is profiled, cleaned, and charted, with each step shown as runnable code.",
      "source": "https://openai.com/blog/advanced-data-analysis",
      "howto": "Upload a file (CSV, Excel, PDF) or say \"run python\". The sandbox activates and returns charts or cleaned data."
    },
    {
      "id": "gpt-browse",
      "name": "Browsing",
      "ecosystem": "ChatGPT",
      "category": "Web",
      "status": "Stable",
      "description": "Built‑in web search and page fetch, citing sources in‑line.",
      "trigger": "Any freshness‑sensitive question",
      "example": "A research question returns a synthesised answer with footnote‑style citations.",
      "source": "https://openai.com/blog/browsing",
      "howto": "Ask any time-sensitive question. ChatGPT browses automatically when it detects a freshness need."
    },
    {
      "id": "gpt-memory",
      "name": "Memory",
      "ecosystem": "ChatGPT",
      "category": "Memory",
      "status": "Stable",
      "description": "Persistent facts the model remembers across chats; user‑editable from settings.",
      "trigger": "“Remember that I…”",
      "example": "The model recalls your industry and writing voice across new conversations.",
      "source": "https://openai.com/blog/memory",
      "howto": "Say \"remember that I…\" or go to Settings → Personalization → Manage memories to view or delete stored facts."
    },
    {
      "id": "gpt-projects",
      "name": "Projects",
      "ecosystem": "ChatGPT",
      "category": "Memory",
      "status": "Stable",
      "description": "Folders that group chats with their own custom instructions and shared files.",
      "trigger": "Sidebar → New Project",
      "example": "A “Thesis” project keeps every draft, reference PDF, and reviewer chat in one place.",
      "source": "https://openai.com/blog/projects",
      "howto": "chatgpt.com sidebar → New Project → name it → add custom instructions and upload shared files."
    },
    {
      "id": "gpt-connectors",
      "name": "Connectors",
      "ecosystem": "ChatGPT",
      "category": "Integration",
      "status": "Stable",
      "description": "First‑party integrations with Google Drive, GitHub, Outlook, SharePoint, Box, Dropbox, Gmail, Linear and more.",
      "trigger": "Settings → Connectors",
      "example": "“Find the Q3 deck in my Drive and summarise the financial section” pulls live from Drive.",
      "source": "https://openai.com/blog/connectors",
      "howto": "Settings → Connectors → connect Google Drive, GitHub, Outlook, etc. Reference them naturally in prompts."
    },
    {
      "id": "gpt-voice",
      "name": "Voice Mode (Advanced)",
      "ecosystem": "ChatGPT",
      "category": "Agentic",
      "status": "Stable",
      "description": "Real‑time, low‑latency voice conversation with intonation and interruption.",
      "trigger": "Voice icon (mobile/desktop)",
      "example": "A hands‑free brainstorm in the car; ChatGPT pauses when interrupted and picks up where it left off.",
      "source": "https://openai.com/blog/voice-mode",
      "howto": "Mobile or desktop app → tap the waveform icon. Advanced Voice Mode responds in natural speech with low latency."
    },
    {
      "id": "gpt-store",
      "name": "GPT Store",
      "ecosystem": "ChatGPT",
      "category": "Agentic",
      "status": "Stable",
      "description": "Public marketplace of Custom GPTs published by other users and partners.",
      "trigger": "Explore GPTs",
      "example": "A user installs a public “Code Tutor” GPT instead of building their own.",
      "source": "https://openai.com/blog/gpt-store",
      "howto": "chatgpt.com → Explore GPTs → search the marketplace and click Use to install any published GPT."
    },
    {
      "id": "gpt-sora",
      "name": "Sora",
      "ecosystem": "ChatGPT",
      "category": "Visual",
      "status": "Beta",
      "description": "Video generation, where regionally available, surfaced from inside the chat surface.",
      "trigger": "“Generate a video of…”",
      "example": "A scene description returns a short generated video clip rendered into the chat.",
      "source": "https://openai.com/sora",
      "howto": "chatgpt.com → Sora tab (where available) → describe your scene → select duration and aspect ratio."
    },
    {
      "id": "gpt-operator",
      "name": "Operator / Agent Mode",
      "ecosystem": "ChatGPT",
      "category": "Agentic",
      "status": "Beta",
      "description": "Browser‑driving agent that completes multi‑step tasks on the live web on the user's behalf.",
      "trigger": "Operator surface · agent toggle",
      "example": "“Book me a window seat on the cheapest direct flight” is carried out across multiple airline sites.",
      "source": "https://openai.com/operator",
      "howto": "operator.chatgpt.com (Plus/Pro) → describe the web task → Operator drives a real browser to complete it."
    },
    {
      "id": "gpt-tasks",
      "name": "Tasks / Scheduled",
      "ecosystem": "ChatGPT",
      "category": "Agentic",
      "status": "Stable",
      "description": "Recurring or scheduled prompts that fire on a cadence and post their result back to the chat.",
      "trigger": "“Every Monday at 9am, …”",
      "example": "A weekly Monday brief summarising the user's calendar and inbox arrives on its own.",
      "source": "https://openai.com/blog/tasks",
      "howto": "Say \"every Monday at 9am, send me a brief on…\" — ChatGPT schedules it automatically. Manage in Settings → Tasks."
    },
    {
      "id": "cl-research",
      "name": "Research",
      "ecosystem": "Claude",
      "category": "Agentic",
      "status": "Stable",
      "description": "Multi‑step agentic research across the live web, returning a structured report with citations.",
      "trigger": "Research mode toggle in the composer",
      "example": "“Research the state of small‑molecule GLP‑1 agonists.” returns a multi‑section brief with linked sources.",
      "source": "https://www.anthropic.com/news/research",
      "howto": "Toggle \"Research mode\" in the Claude composer → ask your question. Claude browses and returns a multi-section cited report."
    },
    {
      "id": "cl-computer-use",
      "name": "Computer Use",
      "ecosystem": "Claude",
      "category": "Agentic",
      "status": "Beta",
      "description": "Claude controls a real browser or desktop on the user's behalf via screenshots and mouse/keyboard input.",
      "trigger": "Claude in Chrome · Computer Use API",
      "example": "“File this expense in Concur” is carried out by Claude visibly driving the browser.",
      "source": "https://www.anthropic.com/news/computer-use",
      "howto": "Enable in Settings, or call the API with `tools:[{type:\"computer_use_20250124\"}]` and header `anthropic-beta: computer-use-2025-01-24`."
    },
    {
      "id": "cl-files",
      "name": "Files in chat",
      "ecosystem": "Claude",
      "category": "Document",
      "status": "Stable",
      "description": "Drag‑and‑drop PDFs, DOCX, XLSX, images, audio, and code; the full content is parsed into context.",
      "trigger": "Drag onto the composer · paperclip icon",
      "example": "A 200‑page PDF is dropped in, and Claude answers questions citing specific page numbers.",
      "source": "https://www.anthropic.com/news/files",
      "howto": "Drag any file onto the Claude composer or click the paperclip icon. Supports PDF, DOCX, XLSX, images, audio, and code."
    },
    {
      "id": "cl-imagine",
      "name": "Imagine",
      "ecosystem": "Claude",
      "category": "Visual",
      "status": "Beta",
      "description": "Generates interactive UI — sliders, forms, calculators — on the fly from a single prompt, inline.",
      "trigger": "“Imagine a UI for…” · Imagine surface",
      "example": "“Imagine a mortgage calculator with PMI” renders a working widget inside the reply.",
      "source": "https://www.anthropic.com/news/imagine",
      "howto": "Say \"Imagine a UI for…\" in Claude. The Imagine surface renders a live interactive widget inline in the reply."
    },
    {
      "id": "cl-widgets",
      "name": "Inline widgets",
      "ecosystem": "Claude",
      "category": "Visual",
      "status": "Stable",
      "description": "First‑party UI cards — recipe, map, weather, message composer, places, image search, sports — rendered inline.",
      "trigger": "Triggered by intent (e.g. recipe or weather query)",
      "example": "“Weekend in Lisbon” surfaces a places card with photos and a map alongside the prose answer.",
      "source": "https://www.anthropic.com/news/widgets",
      "howto": "Just ask a question that triggers a widget — e.g. \"weekend in Paris\" or \"nearest coffee shops\". No setup needed."
    },
    {
      "id": "cl-excel",
      "name": "Claude for Excel",
      "ecosystem": "Claude",
      "category": "Data",
      "status": "Beta",
      "description": "Spreadsheet agent installed inside Microsoft Excel — edits formulas, builds models, explains cells.",
      "trigger": "Excel add‑in · Claude side panel",
      "example": "“Build a 5‑year DCF from this revenue tab” is executed in the workbook with auditable formulas.",
      "source": "https://www.anthropic.com/excel",
      "howto": "Install the Claude add-in from the Microsoft Excel Add-ins store → open the Claude side panel inside Excel."
    },
    {
      "id": "cl-chrome",
      "name": "Claude in Chrome",
      "ecosystem": "Claude",
      "category": "Agentic",
      "status": "Beta",
      "description": "Browser extension that lets Claude read the active tab, drive forms, and complete multi‑tab workflows.",
      "trigger": "Chrome extension toolbar",
      "example": "“Reorder the same coffee as last Tuesday” completes the basket and checkout without further prompting.",
      "source": "https://www.anthropic.com/chrome",
      "howto": "Install the Claude Chrome extension from the Chrome Web Store → click the Claude icon in the browser toolbar."
    },
    {
      "id": "cl-cowork",
      "name": "Cowork",
      "ecosystem": "Claude",
      "category": "Agentic",
      "status": "Beta",
      "description": "Desktop file and task automation aimed at non‑developers — batch rename, reorganize, OCR, summarise.",
      "trigger": "Cowork app · right‑click “Ask Claude”",
      "example": "“Move every invoice older than 90 days into /Archive” runs as a vetted file action on the user's Mac.",
      "source": "https://www.anthropic.com/cowork",
      "howto": "Download the Cowork desktop app → right-click any file or folder → select \"Ask Claude\"."
    },
    {
      "id": "cl-incognito",
      "name": "Incognito Conversations",
      "ecosystem": "Claude",
      "category": "Memory",
      "status": "Stable",
      "description": "Chats that bypass Memory and aren't retained after the window closes — useful for sensitive drafts.",
      "trigger": "Sidebar → New incognito chat",
      "example": "A salary negotiation draft is iterated on without polluting the user's persistent memory.",
      "source": "https://www.anthropic.com/news/incognito",
      "howto": "Claude sidebar → New incognito chat. The session is not stored and does not write to Memory."
    },
    {
      "id": "cc-output-styles",
      "name": "Output Styles",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Configurable agent voice and format presets that pin Claude Code's tone and verbosity per project.",
      "trigger": "/output-style · settings file",
      "example": "A “diff‑only, no preamble” style strips every explanation in a busy repo.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/output-styles",
      "howto": "Run `/output-style` in a session or set `output_style` in `.claude/settings.json` for a project-wide default."
    },
    {
      "id": "cc-permissions",
      "name": "Permission Modes",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Plan / Accept‑Edits / Bypass / Auto — fine‑grained control over what the agent may do without prompting.",
      "trigger": "Shift+Tab cycles modes",
      "example": "Accept‑Edits lets Claude make file changes freely, but still requires approval to run shell commands.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/permissions",
      "howto": "Press Shift+Tab to cycle modes: Plan → Accept-Edits → Bypass → Auto. The current mode is shown in the prompt."
    },
    {
      "id": "cc-background",
      "name": "Background Tasks",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Long‑running tasks spawned with & that continue while you keep working; they report back on completion.",
      "trigger": "Append & to any task prompt",
      "example": "“Run the full test suite & ” returns control immediately and posts the result when finished.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/background",
      "howto": "Append `&` to any task: `\"run the full test suite &\"`. Claude Code returns control immediately and notifies you on completion."
    },
    {
      "id": "cc-skills",
      "name": "Claude Code Skills",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Reusable agent skills identical in shape to Claude.ai Skills, scoped to a repo or user profile.",
      "trigger": "~/.claude/skills/ · .claude/skills/",
      "example": "A `release-notes` skill always assembles the changelog the way the team likes it.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/skills",
      "howto": "Add `.md` skill files to `~/.claude/skills/` (global) or `.claude/skills/` (per-repo). Invoke with `/skill-name`."
    },
    {
      "id": "cc-cost",
      "name": "Usage & Cost tracking",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "/cost shows tokens and dollars spent per session; /compact reduces context; /clear resets the window.",
      "trigger": "/cost · /compact · /clear",
      "example": "At the end of a long session, /cost reports a $1.42 spend and which tools consumed the most tokens.",
      "source": "https://docs.anthropic.com/en/docs/claude-code/usage",
      "howto": "Type `/cost` at any point in a session to see token usage and dollar spend. Use `/compact` to trim context."
    },
    {
      "id": "cc-plugins",
      "name": "Plugins & Marketplaces",
      "ecosystem": "Claude Code",
      "category": "Integration",
      "status": "Stable",
      "description": "Shareable bundles of skills, agents, hooks, MCP servers, and LSP servers, installed from marketplaces such as Anthropic's official claude-plugins-official catalog or the reviewed community marketplace.",
      "trigger": "/plugin · /plugin install name@marketplace · /plugin marketplace add owner/repo",
      "howto": "Run `/plugin` and open the Discover tab, or install directly with `/plugin install github@claude-plugins-official`. Add other catalogs with `/plugin marketplace add owner/repo`. Plugin skills are namespaced as `/plugin-name:skill-name`; test your own plugin with `claude --plugin-dir ./my-plugin`.",
      "example": "Run `/plugin install commit-commands@claude-code-plugins` after adding the `anthropics/claude-code` marketplace, then use `/commit-commands:commit` to stage changes and create a commit.",
      "source": "https://code.claude.com/docs/en/discover-plugins"
    },
    {
      "id": "cc-checkpointing",
      "name": "Checkpointing & Rewind",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Automatic snapshots of Claude's file edits before each prompt, so you can restore code, conversation, or both to an earlier point, or summarize part of the conversation to free context.",
      "trigger": "/rewind · press Esc twice with an empty prompt",
      "howto": "Run `/rewind` (or double-Esc) and pick a prompt, then choose Restore code and conversation, Restore conversation, Restore code, or a Summarize option. Edits made by bash commands, most subagents, and outside tools are not tracked, so keep using git for durable history.",
      "example": "After an approach breaks the build, run `/rewind`, select the prompt before it, and choose Restore code to revert Claude's edits while keeping the discussion.",
      "source": "https://code.claude.com/docs/en/checkpointing"
    },
    {
      "id": "cc-headless",
      "name": "Non-interactive Mode (claude -p)",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Run Claude Code from scripts and CI through the Agent SDK CLI — pipe input in, get text, JSON, schema-validated, or streamed output back, and continue sessions across calls.",
      "trigger": "claude -p \"task\" · --output-format json · --continue / --resume",
      "howto": "Run `claude -p \"your task\"` and pre-approve tools with `--allowedTools \"Read,Edit,Bash\"` or a `--permission-mode`. Use `--output-format json` (optionally with `--json-schema`) or `stream-json` for machine-readable output. Add `--bare` in CI to skip local hooks, plugins, MCP servers, and CLAUDE.md.",
      "example": "In a build script, run `git diff main | claude -p \"report typos as filename:line\"` so Claude acts as a project-specific linter.",
      "source": "https://code.claude.com/docs/en/headless"
    },
    {
      "id": "cc-sandbox",
      "name": "Bash Sandbox",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "OS-enforced filesystem and network isolation for every Bash command and its child processes, so Claude can run most commands without asking while staying inside boundaries you define. Runs on macOS, Linux, and WSL2.",
      "trigger": "/sandbox · or \"sandbox\": {\"enabled\": true} in settings",
      "howto": "Run `/sandbox`, choose auto-allow (sandboxed commands run without prompting) or regular permissions, and review the resolved config. macOS uses the built-in Seatbelt framework; on Linux and WSL2 install `bubblewrap` and `socat`. Commands that can't be sandboxed fall back to a \"Bash command (unsandboxed)\" permission prompt.",
      "example": "Enable auto-allow so Claude runs the test suite and build freely in the project directory, while any attempt to reach a non-allowed host still asks first.",
      "source": "https://code.claude.com/docs/en/sandboxing"
    },
    {
      "id": "cc-statusline",
      "name": "Status Line",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Customizable bar at the bottom of Claude Code that runs your shell script with JSON session data — model, directory, context usage, cost — and shows whatever it prints.",
      "trigger": "/statusline describe what to show · \"statusLine\" in settings.json",
      "howto": "Run `/statusline show model name and context percentage with a progress bar` and Claude Code writes the script and updates settings. To configure by hand, set `\"statusLine\": {\"type\": \"command\", \"command\": \"~/.claude/statusline.sh\"}` in `~/.claude/settings.json`; the script reads fields such as `.model.display_name` and `.context_window.used_percentage` from stdin.",
      "example": "Use `/statusline` to show the git branch on one line and a color-coded context bar with session cost on a second line.",
      "source": "https://code.claude.com/docs/en/statusline"
    },
    {
      "id": "gpt-pulse",
      "name": "Pulse",
      "ecosystem": "ChatGPT",
      "category": "Agentic",
      "status": "Beta",
      "description": "Proactive daily brief that draws on Memory, Projects, and Connectors to deliver an unprompted morning digest.",
      "trigger": "Pulse opt‑in · sidebar",
      "example": "Each morning a card lists overnight calendar changes, key emails, and follow‑ups Pulse thinks you'll want.",
      "source": "https://openai.com/blog/pulse",
      "howto": "Opt in via the ChatGPT sidebar → Pulse. Set your preferred delivery time and topics. It delivers each morning unprompted."
    },
    {
      "id": "gpt-study",
      "name": "Study Mode",
      "ecosystem": "ChatGPT",
      "category": "Document",
      "status": "Stable",
      "description": "Socratic‑tutor mode that withholds answers and instead guides the user through derivations and checks.",
      "trigger": "Tools menu → Study Mode",
      "example": "A linear‑algebra question is met with leading sub‑questions instead of a direct solution.",
      "source": "https://openai.com/blog/study-mode",
      "howto": "Tools menu → Study Mode, or ask \"quiz me on…\" / \"explain this without giving the answer\"."
    },
    {
      "id": "gpt-record",
      "name": "Record Mode",
      "ecosystem": "ChatGPT",
      "category": "Data",
      "status": "Stable",
      "description": "Live meeting recording with real‑time transcription and a structured notes summary at the end.",
      "trigger": "Record button (desktop / mobile)",
      "example": "A 30‑minute call yields a transcript, action items, and a one‑paragraph executive summary.",
      "source": "https://openai.com/blog/record-mode",
      "howto": "Click the Record button in the desktop or mobile app during or after a meeting. A summary is generated when you stop."
    },
    {
      "id": "gpt-shopping",
      "name": "Shopping Research",
      "ecosystem": "ChatGPT",
      "category": "Web",
      "status": "Beta",
      "description": "Comparison shopping with structured product cards — specs, prices, reviews surfaced inline.",
      "trigger": "“Compare A vs B vs C” · product intent",
      "example": "“Best sub‑$2,000 OLED TV for a bright room” returns a compact comparison card with pros and cons.",
      "source": "https://openai.com/blog/shopping",
      "howto": "Ask \"compare X vs Y vs Z\" or phrase a product intent question. ChatGPT returns structured comparison cards."
    },
    {
      "id": "gpt-library",
      "name": "Library",
      "ecosystem": "ChatGPT",
      "category": "Visual",
      "status": "Stable",
      "description": "Personal gallery of generated images and creations, organised by chat, with re‑edit and download.",
      "trigger": "Sidebar → Library",
      "example": "Every DALL·E 3 image from the past month is browseable in a grid and re‑openable in canvas.",
      "source": "https://openai.com/blog/library",
      "howto": "chatgpt.com sidebar → Library. All DALL·E images are browseable by date; click any to re-open in canvas."
    },
    {
      "id": "gpt-realtime",
      "name": "Realtime API",
      "ecosystem": "ChatGPT",
      "category": "Agentic",
      "status": "Stable",
      "description": "Developer‑facing voice‑to‑voice low‑latency API powering custom real‑time agents.",
      "trigger": "WebSocket / WebRTC endpoint",
      "example": "A customer‑support voice agent responds with sub‑second latency and natural barge‑in.",
      "source": "https://platform.openai.com/docs/guides/realtime",
      "howto": "Connect via WebSocket: `wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview` with your API key as a Bearer token."
    },
    {
      "id": "gpt-assistants",
      "name": "Assistants API",
      "ecosystem": "ChatGPT",
      "category": "Agentic",
      "status": "Deprecated",
      "description": "Predecessor to the Responses API — a server‑side primitive for stateful tool‑using agents.",
      "trigger": "POST /v1/assistants (legacy)",
      "example": "Existing Assistants deployments remain accessible but new builds should target Responses.",
      "source": "https://platform.openai.com/docs/assistants/migration",
      "howto": "Existing builds: `POST /v1/assistants` (legacy). For new builds, migrate to the Responses API instead."
    },
    {
      "id": "gpt-responses",
      "name": "Responses API",
      "ecosystem": "ChatGPT",
      "category": "Code",
      "status": "Stable",
      "description": "Successor to Chat Completions designed for agentic flows — stateful, tool‑aware, multi‑turn.",
      "trigger": "POST /v1/responses",
      "example": "A multi‑tool agent loop is expressed as a single Responses call instead of a hand‑rolled state machine.",
      "source": "https://platform.openai.com/docs/guides/responses",
      "howto": "`POST /v1/responses` with a `tools` array. The stateful successor to Assistants for new agentic builds."
    },
    {
      "id": "gpt-structured",
      "name": "Structured Outputs",
      "ecosystem": "ChatGPT",
      "category": "Data",
      "status": "Stable",
      "description": "Strict JSON‑Schema‑enforced outputs that never violate the supplied schema.",
      "trigger": "response_format: { type: \"json_schema\" }",
      "example": "A pricing extractor returns a guaranteed‑valid object that parses cleanly into a typed struct.",
      "source": "https://platform.openai.com/docs/guides/structured-outputs",
      "howto": "Add `response_format:{type:\"json_schema\",json_schema:{name:\"...\",schema:{...}}}` to your API call."
    },
    {
      "id": "api-anthropic-computer",
      "name": "Anthropic Computer Use API",
      "ecosystem": "Claude",
      "category": "API",
      "status": "Beta",
      "description": "API surface that exposes Computer Use — screenshots in, mouse/keyboard out — to any application.",
      "trigger": "Beta tool: computer-use-2025-01",
      "example": "A vendor builds a QA bot that drives a staging site end‑to‑end through the Computer Use API.",
      "source": "https://docs.anthropic.com/en/docs/build-with-claude/computer-use",
      "howto": "Request with `tools:[{type:\"computer_use_20250124\",name:\"computer\",display_width_px:1024,display_height_px:768}]` + header `anthropic-beta: computer-use-2025-01-24`."
    },
    {
      "id": "api-anthropic-files",
      "name": "Anthropic Files API",
      "ecosystem": "Claude",
      "category": "API",
      "status": "Stable",
      "description": "Upload, reuse, and reference files across Messages and Batch requests without re‑transmitting bytes.",
      "trigger": "POST /v1/files",
      "example": "A 40 MB transcript is uploaded once and referenced by ID in dozens of downstream summarisation calls.",
      "source": "https://docs.anthropic.com/en/api/files",
      "howto": "`POST /v1/files` multipart with your file → use the returned `file_id` in a `document` content block on future requests."
    },
    {
      "id": "api-anthropic-batch",
      "name": "Anthropic Message Batches API",
      "ecosystem": "Claude",
      "category": "API",
      "status": "Stable",
      "description": "Submit thousands of Messages requests as a batch at substantially reduced cost and 24‑hour SLA.",
      "trigger": "POST /v1/messages/batches",
      "example": "An overnight classification job of 100k records is submitted as a single batch at 50% price.",
      "source": "https://docs.anthropic.com/en/api/message-batches",
      "howto": "`POST /v1/messages/batches` with a `requests` array (up to 10,000 items). Poll the returned batch `id` for status."
    },
    {
      "id": "api-anthropic-cache",
      "name": "Anthropic Prompt Caching",
      "ecosystem": "Claude",
      "category": "API",
      "status": "Stable",
      "description": "Cache long system prompts and documents across calls to slash latency and per‑token cost.",
      "trigger": "cache_control: {type: \"ephemeral\"}",
      "example": "A 50k‑token system prompt is cached once and reused across a thousand follow‑up turns.",
      "source": "https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching",
      "howto": "Add `\"cache_control\":{\"type\":\"ephemeral\"}` to any content block. First request populates the cache; subsequent calls hit it."
    },
    {
      "id": "api-anthropic-pdf",
      "name": "Anthropic PDF support",
      "ecosystem": "Claude",
      "category": "API",
      "status": "Stable",
      "description": "Native PDF understanding in the Messages API — text and visual layout, no separate OCR step.",
      "trigger": "document content block · application/pdf",
      "example": "A multi‑column scientific paper is summarised with figure references preserved.",
      "source": "https://docs.anthropic.com/en/docs/build-with-claude/pdf-support",
      "howto": "Send a `document` content block: `{type:\"document\",source:{type:\"base64\",media_type:\"application/pdf\",data:\"<base64>\"}}` ."
    },
    {
      "id": "api-anthropic-mcp-conn",
      "name": "Anthropic MCP Connector API",
      "ecosystem": "Claude",
      "category": "API",
      "status": "Stable",
      "description": "Server‑side connector hosting that lets Claude reach MCP servers without the client managing transport.",
      "trigger": "mcp_servers: […] on Messages",
      "example": "An app gives Claude a hosted Jira MCP without shipping any custom transport code.",
      "source": "https://docs.anthropic.com/en/docs/agents-and-tools/mcp",
      "howto": "Add `mcp_servers:[{\"type\":\"url\",\"url\":\"https://your-mcp.com\",\"name\":\"my-tool\"}]` to your Messages API request body."
    },
    {
      "id": "api-openai-realtime",
      "name": "OpenAI Realtime API",
      "ecosystem": "ChatGPT",
      "category": "API",
      "status": "Stable",
      "description": "Bi‑directional voice‑to‑voice API with sub‑second latency and interruption support.",
      "trigger": "WebRTC or WebSocket session",
      "example": "A drive‑thru voice ordering kiosk responds in real time, with natural barge‑in.",
      "source": "https://platform.openai.com/docs/guides/realtime",
      "howto": "Connect: `new WebSocket('wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview',['realtime','openai-insecure-api-key.KEY'])`."
    },
    {
      "id": "api-openai-batch",
      "name": "OpenAI Batch API",
      "ecosystem": "ChatGPT",
      "category": "API",
      "status": "Stable",
      "description": "Asynchronous batch submission of completions and embeddings at half the per‑token price.",
      "trigger": "POST /v1/batches",
      "example": "A million‑row labelling pass is submitted as a JSONL file and returned within the SLA window.",
      "source": "https://platform.openai.com/docs/guides/batch",
      "howto": "`POST /v1/batches` with a JSONL file of `{custom_id, method, url, body}` objects. Poll `GET /v1/batches/{id}` for status."
    },
    {
      "id": "api-openai-vision",
      "name": "OpenAI Vision API",
      "ecosystem": "ChatGPT",
      "category": "API",
      "status": "Stable",
      "description": "Multimodal image understanding through the Responses and Chat APIs — inline image_url inputs.",
      "trigger": "input_image content block",
      "example": "A receipt photo is OCR'd, line‑itemised, and posted into an expenses system in one call.",
      "source": "https://platform.openai.com/docs/guides/vision",
      "howto": "Include `{type:\"image_url\",image_url:{url:\"data:image/jpeg;base64,...\"}}` in the `content` array of a user message."
    },
    {
      "id": "api-openai-fine-tuning",
      "name": "OpenAI Fine‑Tuning",
      "ecosystem": "ChatGPT",
      "category": "API",
      "status": "Stable",
      "description": "Supervised fine‑tuning and preference fine‑tuning surfaces for tailoring models to a domain.",
      "trigger": "POST /v1/fine_tuning/jobs",
      "example": "A medical‑coding model is tuned on a curated corpus and outperforms zero‑shot on the firm's task.",
      "source": "https://platform.openai.com/docs/guides/fine-tuning",
      "howto": "Upload a JSONL training file via `POST /v1/files`, then `POST /v1/fine_tuning/jobs` with the file ID and base model name."
    },
    {
      "id": "gm-gems",
      "name": "Gems",
      "ecosystem": "Gemini",
      "category": "Agentic",
      "status": "Stable",
      "description": "Custom AI experts with a persona, instructions, and optional knowledge files — Gemini’s equivalent of Custom GPTs.",
      "trigger": "Sidebar → Gem manager → New Gem",
      "example": "A “Research Assistant” Gem is configured to always cite primary sources and respond in academic register.",
      "source": "https://gemini.google.com/gems",
      "howto": "gemini.google.com → Gem manager (sidebar) → New Gem → give it a name, persona instructions, and optional knowledge files."
    },
    {
      "id": "gm-deep-research",
      "name": "Deep Research",
      "ecosystem": "Gemini",
      "category": "Agentic",
      "status": "Stable",
      "description": "Multi‑step autonomous research agent that browses the web, synthesises sources, and returns a cited long‑form report.",
      "trigger": "“Deep Research” button · research X in depth",
      "example": "A competitive landscape question returns a 10‑page report with 40 cited sources, generated in minutes.",
      "source": "https://blog.google/products/gemini/google-gemini-deep-research",
      "howto": "Click the \"Deep Research\" button above the Gemini composer, then ask your research question. A cited multi-page report is returned."
    },
    {
      "id": "gm-live",
      "name": "Live (Multimodal Live)",
      "ecosystem": "Gemini",
      "category": "Agentic",
      "status": "Beta",
      "description": "Real‑time, low‑latency voice and video conversation — point your camera and talk to Gemini about what it sees.",
      "trigger": "Microphone / camera icon in the mobile app",
      "example": "A user holds their phone up to a broken circuit board and describes the fault aloud; Gemini diagnoses it live.",
      "source": "https://deepmind.google/technologies/gemini/live",
      "howto": "Open Gemini on iOS or Android → tap the camera/microphone icon to enter Live mode. Point and speak."
    },
    {
      "id": "gm-imagegen",
      "name": "Image Generation (Imagen 3)",
      "ecosystem": "Gemini",
      "category": "Visual",
      "status": "Stable",
      "description": "Native high‑fidelity image generation powered by Imagen 3, available directly in the chat surface.",
      "trigger": "“Generate an image of…” · “Create a picture of…”",
      "example": "A product‑mockup prompt returns a photorealistic render with accurate text and fine details.",
      "source": "https://deepmind.google/technologies/imagen",
      "howto": "Say \"generate an image of…\" or \"create a picture of…\" in Gemini. Imagen 3 is built in — no setup required."
    },
    {
      "id": "gm-veo",
      "name": "Veo 2 Video Generation",
      "ecosystem": "Gemini",
      "category": "Visual",
      "status": "Beta",
      "description": "AI‑powered video generation from text prompts, surfaced inside Gemini Advanced for eligible users.",
      "trigger": "“Generate a video of…”",
      "example": "A nature‑documentary‑style prompt returns an 8‑second clip with cinematic camera movement.",
      "source": "https://deepmind.google/technologies/veo",
      "howto": "Gemini Advanced → say \"generate a video of…\" (regional availability varies). Select duration and style if prompted."
    },
    {
      "id": "gm-canvas",
      "name": "Canvas",
      "ecosystem": "Gemini",
      "category": "Document",
      "status": "Stable",
      "description": "Side‑panel collaborative editing surface for long‑form documents and code — with inline revision and one‑click copy.",
      "trigger": "Canvas icon in the toolbar · open in Canvas",
      "example": "A 2,000‑word report draft is opened in Canvas; the user highlights a paragraph and asks Gemini to shorten it.",
      "source": "https://workspace.google.com/blog/gemini-canvas",
      "howto": "Click the Canvas icon in the Gemini toolbar or say \"open in canvas\". Gemini opens a collaborative document editor."
    },
    {
      "id": "gm-files",
      "name": "Files in chat",
      "ecosystem": "Gemini",
      "category": "Document",
      "status": "Stable",
      "description": "Upload and analyse documents (PDF, DOCX), images, audio, and video directly in the conversation.",
      "trigger": "Paperclip icon · drag‑and‑drop into chat",
      "example": "A 100‑page PDF contract is uploaded and summarised with key obligations extracted as a bullet list.",
      "source": "https://support.google.com/gemini/answer/file-upload",
      "howto": "Click the paperclip icon in the Gemini composer or drag and drop a file. Supports PDF, DOCX, images, audio, and video."
    },
    {
      "id": "gm-notebooklm",
      "name": "NotebookLM",
      "ecosystem": "Gemini",
      "category": "Document",
      "status": "Stable",
      "description": "Document‑grounded research assistant that answers only from your uploaded sources and can generate Audio Overviews (podcast‑style summaries).",
      "trigger": "notebooklm.google.com · upload sources",
      "example": "A researcher uploads 15 papers; NotebookLM answers questions with inline citations and generates a podcast episode summary.",
      "source": "https://notebooklm.google.com",
      "howto": "notebooklm.google.com → New notebook → upload sources (PDFs, URLs, Docs) → ask questions or generate an Audio Overview."
    },
    {
      "id": "gm-web-search",
      "name": "Web Search",
      "ecosystem": "Gemini",
      "category": "Web",
      "status": "Stable",
      "description": "Real‑time Google Search grounding — Gemini queries the live web and cites its sources inline.",
      "trigger": "Any freshness‑sensitive question",
      "example": "“What did the Fed announce today?” returns a synthesised answer with linked news sources.",
      "source": "https://support.google.com/gemini/answer/web-search",
      "howto": "Ask any time-sensitive question. Google Search grounding is on by default — cited sources appear inline in the reply."
    },
    {
      "id": "gm-code-exec",
      "name": "Code Execution",
      "ecosystem": "Gemini",
      "category": "Code",
      "status": "Stable",
      "description": "Python sandbox that runs code, produces charts, and manipulates uploaded files — powered by a Colab‑style kernel.",
      "trigger": "Run this code · upload a CSV and ask to analyse",
      "example": "An uploaded sales spreadsheet is cleaned with pandas, then a matplotlib chart is generated and returned.",
      "source": "https://ai.google.dev/gemini-api/docs/code-execution",
      "howto": "Upload a file or ask Gemini to run code. It executes Python in a Colab-style sandbox and returns results or charts."
    },
    {
      "id": "gm-data-analysis",
      "name": "Data Analysis",
      "ecosystem": "Gemini",
      "category": "Data",
      "status": "Stable",
      "description": "Conversational data analysis over uploaded spreadsheets and CSVs — summary statistics, charts, and trend commentary.",
      "trigger": "Upload a file → Analyse this data",
      "example": "A marketing CSV is profiled with descriptive stats, an outlier is flagged, and a revenue‑trend chart is produced.",
      "source": "https://workspace.google.com/blog/gemini-data-analysis",
      "howto": "Upload a CSV or spreadsheet → ask \"summarise this\" or \"show me a trend chart\". Gemini uses pandas and matplotlib internally."
    },
    {
      "id": "gm-workspace",
      "name": "Workspace AI (Gemini for Workspace)",
      "ecosystem": "Gemini",
      "category": "Integration",
      "status": "Stable",
      "description": "Gemini embedded across Google Docs, Sheets, Slides, Gmail, and Meet — drafting, summarising, and formatting inside each app.",
      "trigger": "Help me write · Summarise in Docs / Gmail · side panel in Sheets / Slides",
      "example": "“Summarise this email thread and draft a follow‑up” runs inside Gmail, returning a reply draft in seconds.",
      "source": "https://workspace.google.com/blog/gemini-for-workspace",
      "howto": "In Google Docs, Gmail, or Sheets → click \"Help me write\" or open the Gemini side panel. No extra install needed."
    },
    {
      "id": "gm-extensions",
      "name": "Google Extensions",
      "ecosystem": "Gemini",
      "category": "Integration",
      "status": "Stable",
      "description": "First‑party connectors to Google Search, Maps, YouTube, Hotels, Flights, and Workspace that Gemini queries during a conversation.",
      "trigger": "Settings → Extensions → enable; or implicit from context",
      "example": "“Find me a 4‑star hotel near the Colosseum for next Friday” uses the Hotels extension to return live results.",
      "source": "https://support.google.com/gemini/answer/extensions",
      "howto": "gemini.google.com → Settings → Extensions → enable the Google apps you want (Search, Maps, YouTube, Workspace, etc.)."
    },
    {
      "id": "gm-astra",
      "name": "Project Astra",
      "ecosystem": "Gemini",
      "category": "Agentic",
      "status": "Beta",
      "description": "Real‑time multimodal agent that uses the phone camera as a continuous input stream — see, hear, and act on the live world.",
      "trigger": "Astra mode in Gemini mobile app",
      "example": "A user pans across a whiteboard diagram; Astra explains each component and suggests improvements verbally.",
      "source": "https://deepmind.google/technologies/gemini/project-astra",
      "howto": "Open Gemini on mobile → tap the Astra button → point your camera and speak. Astra responds to what it sees in real time."
    },
    {
      "id": "gm-memory",
      "name": "Memory",
      "ecosystem": "Gemini",
      "category": "Memory",
      "status": "Beta",
      "description": "Persistent cross‑conversation facts Gemini learns and recalls to personalise future responses.",
      "trigger": "“Remember that I…” · settings → Memory",
      "example": "Gemini recalls that a user prefers metric units and a formal tone across every new conversation.",
      "source": "https://support.google.com/gemini/answer/memory",
      "howto": "Say \"remember that I…\" in Gemini, or go to gemini.google.com → Settings → Memory to view or delete stored facts."
    },
    {
      "id": "gm-projects",
      "name": "Projects",
      "ecosystem": "Gemini",
      "category": "Memory",
      "status": "Stable",
      "description": "Persistent workspaces that group related chats and shared context — Gemini remembers the background across all conversations inside a project.",
      "trigger": "Sidebar → New Project",
      "example": "A “Thesis” project keeps all research chats, uploaded PDFs, and draft notes under one persistent context.",
      "source": "https://support.google.com/gemini/answer/projects",
      "howto": "gemini.google.com sidebar → New Project → name it and add background context. All chats inside share persistent memory."
    },
    {
      "id": "api-google-gemini",
      "name": "Gemini API",
      "ecosystem": "Gemini",
      "category": "API",
      "status": "Stable",
      "description": "Google AI Studio API giving programmatic access to Gemini models — function calling, multimodal inputs, streaming, and long‑context up to 1M tokens.",
      "trigger": "POST /v1beta/models/gemini-*:generateContent",
      "example": "An app sends a 500‑page PDF and a question in one API call; the model answers with references to specific pages.",
      "source": "https://ai.google.dev/gemini-api/docs",
      "howto": "`POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=YOUR_KEY` with a JSON body."
    },
    {
      "id": "api-google-grounding",
      "name": "Grounding with Google Search (API)",
      "ecosystem": "Gemini",
      "category": "API",
      "status": "Stable",
      "description": "API‑level Google Search grounding that injects live web results into model responses with inline citations.",
      "trigger": "tools: [{googleSearch:{}}] in the API request",
      "example": "A product‑comparison request returns a structured answer sourced from current web pages, with cited URLs.",
      "source": "https://ai.google.dev/gemini-api/docs/grounding",
      "howto": "Add `\"tools\":[{\"google_search\":{}}]` to your Gemini API request body. Grounding uses your existing API key — no extra auth."
    },
    {
      "id": "api-google-vertex",
      "name": "Vertex AI Gemini",
      "ecosystem": "Gemini",
      "category": "API",
      "status": "Stable",
      "description": "Enterprise‑grade Gemini access via Google Cloud — private endpoints, VPC‑SC, audit logs, and SLA‑backed throughput.",
      "trigger": "google.cloud.aiplatform",
      "example": "A regulated financial firm routes all model calls through Vertex for compliance logging and data residency.",
      "source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/overview",
      "howto": "`pip install google-cloud-aiplatform` → `vertexai.init(project=...,location=...)` → `GenerativeModel(\"gemini-2.0-flash\").generate_content(...)`."
    },
    {
      "id": "api-google-files",
      "name": "Gemini Files API",
      "ecosystem": "Gemini",
      "category": "API",
      "status": "Stable",
      "description": "Upload large files (up to 2 GB) once and reference them by URI across multiple API calls without re‑uploading.",
      "trigger": "POST /upload/v1beta/files",
      "example": "A 90‑minute audio interview is uploaded once; multiple summarise / transcribe calls reference the same file URI.",
      "source": "https://ai.google.dev/gemini-api/docs/files",
      "howto": "`POST https://generativelanguage.googleapis.com/upload/v1beta/files` with your file. Use the returned `uri` in a `file_data` part."
    },
    {
      "id": "api-google-code-exec",
      "name": "Code Execution API",
      "ecosystem": "Gemini",
      "category": "API",
      "status": "Stable",
      "description": "API‑level sandboxed Python execution tool that lets Gemini models run generated code and return results programmatically.",
      "trigger": "tools: [{codeExecution:{}}] in the API request",
      "example": "A model generates a data‑cleaning script, executes it against an uploaded CSV, and returns cleaned data in the same response.",
      "source": "https://ai.google.dev/gemini-api/docs/code-execution",
      "howto": "Add `\"tools\":[{\"code_execution\":{}}]` to your Gemini API request. The model generates and runs Python, returning results inline."
    },
    {
      "id": "gm-chrome",
      "name": "Gemini in Chrome",
      "ecosystem": "Gemini",
      "category": "Integration",
      "status": "Beta",
      "description": "Browser‑integrated Gemini assistant accessible from the Chrome address bar and side panel for page summarisation and Q&A.",
      "trigger": "Omnibox → @gemini · Ctrl+Shift+Space side panel",
      "example": "On a long news article, opening the side panel returns a three‑bullet summary and lets the user ask follow‑up questions.",
      "source": "https://blog.google/products/chrome/google-chrome-gemini",
      "howto": "Chrome address bar → type `@gemini` and press Tab, or press Ctrl+Shift+Space to open the Gemini side panel."
    },
    {
      "id": "gm-spark",
      "name": "Gemini Spark",
      "ecosystem": "Gemini",
      "category": "Agentic",
      "status": "Stable",
      "description": "Personal AI agent in the Gemini apps that automates workflows and manages tasks — such as triaging newsletters or following a developing story — on a schedule or in response to events, asking before sensitive actions.",
      "trigger": "Gemini web, Mac, or mobile app → Switch to Spark → describe the task",
      "howto": "Click Switch to Spark and describe the task; add a schedule to run it at a set time or when an event happens. Gemini confirms before sending messages, changing data, buying, or submitting forms, and asks you to take control for passwords or payments. Requires Google AI Pro or Ultra, a personal account, age 18+, and Keep Activity; not available in the EEA, UK, Switzerland, or Nigeria.",
      "example": "Ask Spark to summarize and archive newsletters every morning and unsubscribe from lists you never open, confirming before each unsubscribe.",
      "source": "https://support.google.com/gemini/answer/16596215"
    },
    {
      "id": "gm-scheduled-actions",
      "name": "Scheduled Actions",
      "ecosystem": "Gemini",
      "category": "Agentic",
      "status": "Stable",
      "description": "Prompts that Gemini runs automatically at a time and frequency you choose, delivering recurring digests, reports, and reminders.",
      "trigger": "Include timing in a prompt, e.g. 'every weekday at 8am…' · Settings & help → Scheduled actions",
      "howto": "Enter a prompt with when and how often it should run and submit; Gemini replies with a summary of the schedule. Edit, pause, resume, or delete it under Settings & help → Scheduled actions. Up to 10 can be active; with a Google AI plan, content is prepared within the hour before delivery.",
      "example": "Ask 'Every weekday at 7am, give me a digest of my calendar, top emails, and the weather with outfit ideas'.",
      "source": "https://support.google.com/gemini/answer/16316416"
    },
    {
      "id": "cl-extended-thinking",
      "name": "Extended Thinking",
      "ecosystem": "Claude",
      "category": "Agentic",
      "status": "Beta",
      "description": "Claude reasons through complex problems step‑by‑step using an explicit thinking budget before producing its final answer, surfacing its chain‑of‑thought as a collapsible block.",
      "trigger": "Enabled automatically for difficult reasoning tasks on claude.ai; toggle via the 'Extended thinking' switch in model settings",
      "howto": "In Claude.ai, open the model selector and enable the 'Extended thinking' toggle. For API access, set thinking: {type:'enabled', budget_tokens:8000} in your request. Claude will emit a thinking block before the response.",
      "example": "Asked to find the flaw in a multi‑step math proof, Claude works through each step in its thinking block, catches the sign error in step 4, and returns a corrected proof.",
      "source": "https://www.anthropic.com/research/claude-think"
    },
    {
      "id": "cl-knowledge-work-plugins",
      "name": "Knowledge Work Plugins",
      "ecosystem": "Claude",
      "category": "Integration",
      "status": "Stable",
      "description": "Anthropic's open-source, Apache-2.0 role plugins (anthropics/knowledge-work-plugins) for Claude Cowork, also compatible with Claude Code — productivity, sales, customer support, product management, marketing, legal, finance, data, enterprise search, and bio-research — each bundling skills, connectors, and slash commands.",
      "trigger": "Install from claude.com/plugins in Cowork · `claude plugin install sales@knowledge-work-plugins` in Claude Code",
      "howto": "In Cowork, install plugins from claude.com/plugins. In Claude Code, run `claude plugin marketplace add anthropics/knowledge-work-plugins`, then `claude plugin install sales@knowledge-work-plugins`. Skills fire when relevant and commands such as `/sales:call-prep` or `/data:write-query` become available. Customize the files for your company's tools and process.",
      "example": "Install the finance plugin, connect your data warehouse, and run `/finance:reconciliation` to reconcile accounts for month-end close.",
      "source": "https://github.com/anthropics/knowledge-work-plugins"
    },
    {
      "id": "gpt-deep-research",
      "name": "Deep Research",
      "ecosystem": "ChatGPT",
      "category": "Web",
      "status": "Stable",
      "description": "Autonomous multi‑step web research agent that browses dozens of sources, synthesises findings, and delivers a cited long‑form research report.",
      "trigger": "\"Research …\" button in ChatGPT · Deep Research mode selector",
      "howto": "In ChatGPT, click the Deep Research button (or select it from the attachment menu). Describe your research question in detail. ChatGPT will show a live progress panel while it searches and reads sources, then produce a structured report with inline citations.",
      "example": "Asked to compare the latest LLM benchmarks across frontier models, ChatGPT browses recent papers and leaderboards, then returns a 2 000‑word structured report with a comparison table and source list.",
      "source": "https://openai.com/index/introducing-deep-research"
    },
    {
      "id": "pp-pro-search",
      "name": "Pro Search",
      "ecosystem": "Perplexity",
      "category": "Web",
      "status": "Stable",
      "description": "Enhanced search mode that triggers multi‑step clarification and deeper source analysis before answering, producing longer, more thorough responses with cited sources.",
      "trigger": "Pro Search button · 'Explain in depth…' queries · automatic for complex questions",
      "howto": "Click the 'Pro Search' toggle in the Perplexity query bar, or phrase your question to be detailed enough that Perplexity automatically activates it. The response will include a source panel with numbered citations.",
      "example": "Asking 'What are the practical differences between RAG and fine‑tuning for production LLM apps?' triggers Pro Search, which reads multiple blog posts and papers before delivering a structured comparison.",
      "source": "https://www.perplexity.ai/hub/blog/pro-search"
    },
    {
      "id": "pp-spaces",
      "name": "Spaces",
      "ecosystem": "Perplexity",
      "category": "Memory",
      "status": "Stable",
      "description": "Collaborative workspaces that persist conversation threads, uploaded files, and custom AI personas — shareable with a team.",
      "trigger": "Spaces tab → New Space · Invite members",
      "howto": "Click 'Spaces' in the sidebar and create a new space. Upload reference documents, set a custom AI persona/system prompt, and invite collaborators. All searches and threads inside a space are scoped to the shared context.",
      "example": "A research team creates a Space for a literature review project, uploads 30 PDFs, and each member asks questions that draw on the same document set.",
      "source": "https://www.perplexity.ai/hub/blog/introducing-spaces"
    },
    {
      "id": "pp-pages",
      "name": "Perplexity Pages",
      "ecosystem": "Perplexity",
      "category": "Document",
      "status": "Stable",
      "description": "One‑click conversion of a Perplexity research thread into a shareable, richly formatted web page with sections, images, and citations.",
      "trigger": "'Share as Page' button after a search · Pages tab",
      "howto": "After a Perplexity search produces a detailed answer, click 'Share as Page'. A formatted public page is created at perplexity.ai/page/… that you can share via link. You can edit the title and sections before publishing.",
      "example": "After researching the history of transformer models, the user clicks 'Share as Page' and gets a polished article with an auto‑generated header image that they post to a company newsletter.",
      "source": "https://www.perplexity.ai/hub/blog/perplexity-pages"
    },
    {
      "id": "pp-focus",
      "name": "Focus Mode",
      "ecosystem": "Perplexity",
      "category": "Web",
      "status": "Stable",
      "description": "Source‑scoped search that restricts results to a specific domain: Reddit, academic papers, YouTube, news, or your own files.",
      "trigger": "Focus selector (All / Academic / YouTube / Reddit / Social / Writing / My Files)",
      "howto": "Before submitting a query, click the Focus selector in the query bar and choose a domain. 'Academic' limits to arXiv, PubMed, and peer‑reviewed sources. 'Reddit' searches community discussions. 'My Files' limits to your uploaded documents.",
      "example": "A user researching side effects of a drug selects 'Academic' focus, ensuring Perplexity only cites journal articles rather than web forums.",
      "source": "https://www.perplexity.ai/hub/getting-started"
    },
    {
      "id": "pp-assistant",
      "name": "Perplexity Assistant",
      "ecosystem": "Perplexity",
      "category": "Agentic",
      "status": "Beta",
      "description": "Mobile and desktop AI assistant that goes beyond search — booking, form‑filling, and multi‑app task execution using device permissions.",
      "trigger": "Perplexity mobile app → Assistant tab · 'Do …' commands",
      "howto": "In the Perplexity mobile app, open the Assistant tab. Grant the requested device permissions. Describe a real‑world task such as 'Book a table for 2 at an Italian restaurant near me tonight'. The assistant will browse, confirm details, and complete the action.",
      "example": "User says 'Add the top 3 news stories today to my calendar as reminders'; the assistant reads news summaries and creates calendar events without the user touching the calendar app.",
      "source": "https://www.perplexity.ai/hub/blog/perplexity-assistant"
    },
    {
      "id": "pp-comet",
      "name": "Comet Browser",
      "ecosystem": "Perplexity",
      "category": "Web",
      "status": "Stable",
      "description": "Perplexity's AI browser with an embedded assistant that can understand the current page, search, compare tabs, and conduct full browsing sessions.",
      "trigger": "Open Comet → ask in the assistant sidebar",
      "howto": "Install and open Comet. Use the assistant sidebar while browsing, or ask it to research, compare, summarise, and move across tabs while keeping the current browsing context.",
      "example": "A user comparing CRM tools opens several pricing pages and asks Comet to extract seat limits, automation features, and contract terms into one sourced table.",
      "source": "https://www.perplexity.ai/hub/blog/introducing-comet"
    },
    {
      "id": "pp-comet-assistant",
      "name": "Comet Assistant",
      "ecosystem": "Perplexity",
      "category": "Agentic",
      "status": "Stable",
      "description": "Browser-native assistant with tools for perceiving and interacting with web environments, built for multi-step page tasks rather than one-off answers.",
      "trigger": "Ask Comet Assistant to do a web task",
      "howto": "Inside Comet, describe the outcome you want instead of each click. Review any confirmation prompts before it takes sensitive actions such as submitting forms or changing account state.",
      "example": "Asked to plan a work trip, Comet Assistant searches flights and hotels across tabs, narrows choices, and leaves the final booking confirmation for the user.",
      "source": "https://www.perplexity.ai/hub/blog/the-new-comet-assistant"
    },
    {
      "id": "pp-agent-api",
      "name": "Agent API",
      "ecosystem": "Perplexity",
      "category": "API",
      "status": "Stable",
      "description": "Web-grounded answers with built-in citations in one call, plus access to third-party models from OpenAI, Anthropic, Google, and xAI with web_search, fetch_url, and finance_search tools and ready-made presets.",
      "trigger": "POST https://api.perplexity.ai/v1/agent · client.responses.create()",
      "howto": "Set `PERPLEXITY_API_KEY`, install `perplexityai` (Python) or `@perplexity-ai/perplexity_ai` (TypeScript), and call `client.responses.create(model=..., input=...)`. The endpoint also accepts `POST /v1/responses` for OpenAI compatibility; enable tools such as `web_search` or `fetch_url` for grounded, cited output.",
      "example": "Call `client.responses.create()` with a third-party model and the `web_search` tool to get a cited summary of this week's semiconductor earnings.",
      "source": "https://docs.perplexity.ai/docs/agent-api/quickstart"
    },
    {
      "id": "pp-search-api",
      "name": "Search API",
      "ecosystem": "Perplexity",
      "category": "API",
      "status": "Stable",
      "description": "Raw, ranked web search results for developers — multi-query requests, domain, language, and country filters, and controllable content extraction — without a generated answer.",
      "trigger": "POST https://api.perplexity.ai/search · client.search.create()",
      "howto": "Call `client.search.create(query=..., max_results=5)` (1–20 results, up to 5 queries per request). Narrow results with `search_domain_filter`, `search_language_filter`, and `country`, and tune extraction with `search_context_size` or token budgets. Each result has `title`, `url`, `snippet`, `date`, and `last_updated`.",
      "example": "Run `client.search.create(query=[\"RAG evaluation\", \"LLM reranking\"], search_domain_filter=[\"arxiv.org\"])` to feed fresh papers into your own pipeline.",
      "source": "https://docs.perplexity.ai/docs/search/quickstart"
    },
    {
      "id": "mc-365",
      "name": "Copilot in Microsoft 365",
      "ecosystem": "Microsoft 365 Copilot",
      "category": "Integration",
      "status": "Stable",
      "description": "AI assistant embedded natively in Word, Excel, PowerPoint, Outlook, and Teams — drafts, summarises, rewrites, and analyses content in context.",
      "trigger": "Copilot button or M365 Chat pane in any Office app · Alt+I in Word",
      "howto": "In any Microsoft 365 app with a Copilot licence, click the Copilot button in the ribbon. Describe what you need: 'Summarise this email thread', 'Create a first draft from these bullet points', or 'Explain the trend in column B'. Copilot has full document context.",
      "example": "In Outlook, selecting a 40‑message thread and clicking 'Summarise thread' returns a three‑bullet digest with action items, letting the user reply in seconds.",
      "source": "https://www.microsoft.com/en-us/microsoft-365/copilot"
    },
    {
      "id": "mc-designer",
      "name": "Copilot Designer",
      "ecosystem": "Microsoft 365 Copilot",
      "category": "Visual",
      "status": "Stable",
      "description": "AI image‑generation tool integrated into Microsoft 365 and Bing, powered by DALL·E 4, for creating graphics from text prompts.",
      "trigger": "designer.microsoft.com · Copilot Image Creator in Bing · Insert → AI Image in PowerPoint",
      "howto": "Go to designer.microsoft.com or use the Bing image creator. Describe the image you want. For PowerPoint, use Insert → AI Image and describe the graphic; it appears directly on the slide.",
      "example": "A marketer types 'flat‑style illustration of a person at a laptop with glowing charts, teal colour scheme' and gets four polished options to use in a presentation.",
      "source": "https://designer.microsoft.com"
    },
    {
      "id": "mc-pages",
      "name": "Copilot Pages",
      "ecosystem": "Microsoft 365 Copilot",
      "category": "Document",
      "status": "Stable",
      "description": "Persistent, editable collaborative documents created from Copilot chat responses — a living canvas that teams can extend and share.",
      "trigger": "'Edit in Pages' button in Copilot chat · copilot.microsoft.com Pages tab",
      "howto": "In Microsoft Copilot Chat (copilot.microsoft.com or in Teams), after getting a useful response click 'Edit in Pages'. A new Page is created that you and colleagues can continue editing. Changes sync in real time for all editors.",
      "example": "After Copilot drafts a project brief from bullet points, the PM clicks 'Edit in Pages', shares the link with the team, and everyone refines it together in real time.",
      "source": "https://blogs.microsoft.com/blog/2024/09/16/introducing-microsoft-copilot-pages"
    },
    {
      "id": "mc-notebook",
      "name": "Copilot Notebook",
      "ecosystem": "Microsoft 365 Copilot",
      "category": "Code",
      "status": "Stable",
      "description": "Long‑context document workspace in Microsoft Copilot that accepts up to 18 000 words of input, ideal for detailed analysis and iterative drafting.",
      "trigger": "Notebook tab in copilot.microsoft.com",
      "howto": "Open copilot.microsoft.com and click the Notebook tab. Paste in a long document, dataset, or set of notes (up to ~18 000 words) and then ask questions or request rewrites. The context persists for the session so you can iterate freely.",
      "example": "A consultant pastes a 12 000‑word RFP into Notebook and asks Copilot to extract all scoring criteria, then to draft responses for each criterion.",
      "source": "https://support.microsoft.com/en-us/topic/what-is-copilot-notebook"
    },
    {
      "id": "mc-studio-agents",
      "name": "Copilot Studio Agents",
      "ecosystem": "Microsoft 365 Copilot",
      "category": "Agentic",
      "status": "Stable",
      "description": "Low-code environment for building custom Copilot agents with knowledge, topics, actions, channels, governance, and enterprise deployment controls.",
      "trigger": "Copilot Studio → Create → New agent",
      "howto": "Open Copilot Studio, create an agent, add instructions and knowledge sources, configure actions or topics, test it in the chat pane, then publish it to the target channel.",
      "example": "An operations team builds an internal PTO agent that answers policy questions, checks SharePoint documents, and routes edge cases to HR.",
      "source": "https://learn.microsoft.com/en-us/microsoft-copilot-studio/fundamentals-what-is-copilot-studio"
    },
    {
      "id": "mc-studio-skills",
      "name": "Copilot Studio Skills",
      "ecosystem": "Microsoft 365 Copilot",
      "category": "Integration",
      "status": "Stable",
      "description": "Reusable pro-code skills that extend Copilot Studio agents with organization-specific capabilities deployed into the tenant.",
      "trigger": "Copilot Studio agent → Skills → Add skill",
      "howto": "Create and deploy the skill with pro-code tooling, then configure it inside a Copilot Studio agent so the agent can invoke that skill during conversations.",
      "example": "A finance agent gets a custom purchase-order skill that validates vendor IDs and creates draft approvals in the company's internal system.",
      "source": "https://learn.microsoft.com/en-us/microsoft-copilot-studio/configuration-add-skills"
    },
    {
      "id": "mc-agent-flows",
      "name": "Agent Flows",
      "ecosystem": "Microsoft 365 Copilot",
      "category": "Integration",
      "status": "Stable",
      "description": "Copilot Studio automation flows that connect agent conversations to deterministic triggers, actions, and business processes.",
      "trigger": "Copilot Studio → Agent flows → Create flow",
      "howto": "Create an agent flow in Copilot Studio with a natural-language description or the visual designer. Choose triggers, add actions, test the flow, and connect it to the agent.",
      "example": "A sales-support agent uses an agent flow to create a CRM follow-up task whenever a customer asks for renewal pricing.",
      "source": "https://learn.microsoft.com/en-us/microsoft-copilot-studio/flows-overview"
    },
    {
      "id": "mc-researcher",
      "name": "Researcher Agent",
      "ecosystem": "Microsoft 365 Copilot",
      "category": "Web",
      "status": "Stable",
      "description": "Deep-reasoning agent for complex, multi-step research that combines the web with the files, emails, meetings, and chats you can access, and delivers a structured, source-cited report with visuals.",
      "trigger": "Microsoft 365 Copilot app → Chat → Agents → Researcher",
      "howto": "Open Researcher under Agents in Copilot Chat, ask a specific question, and say whether to use work content, the web, or both. Answer its clarifying questions to steer the research; it takes longer than standard chat and respects your existing permissions and compliance policies.",
      "example": "Ask Researcher to compare three vendors using recent web coverage and your team's meeting notes, and get a cited report with key findings and next steps.",
      "source": "https://learn.microsoft.com/en-us/microsoft-365/copilot/researcher-agent"
    },
    {
      "id": "mc-analyst",
      "name": "Analyst Agent",
      "ecosystem": "Microsoft 365 Copilot",
      "category": "Data",
      "status": "Stable",
      "description": "Data-analysis agent that consolidates data from spreadsheets, CSV files, and other sources, calculates statistics, finds trends and outliers, and returns a plain-language report with charts and tables.",
      "trigger": "microsoft365.com → Agents → Analyst · attach files with the + icon",
      "howto": "Sign in to microsoft365.com with a work or school account, open Analyst under Agents, attach data from your device or OneDrive with the + icon, and ask a question. If Analyst is missing, your administrator may not have enabled it.",
      "example": "Upload quarterly sales files and ask 'Compare sales data by region and quarter and highlight key trends' to get a summary with charts.",
      "source": "https://support.microsoft.com/en-us/microsoft-365-copilot/get-started-with-analyst-in-microsoft-365-copilot"
    },
    {
      "id": "ghc-completions",
      "name": "Code Completion",
      "ecosystem": "GitHub Copilot",
      "category": "Code",
      "status": "Stable",
      "description": "AI‑powered inline code suggestions inside VS Code, JetBrains, Xcode, and other IDEs — ghost‑text predictions, multi‑line completions, and next‑edit suggestions that adapt to your codebase context.",
      "trigger": "Start typing in any supported IDE; Copilot suggests completions inline automatically",
      "howto": "Install the Copilot extension in your IDE, sign in with a GitHub account, and start typing. Copilot provides inline suggestions that you accept with Tab. Use Ctrl+Enter (or Cmd+Enter on macOS) to see alternative suggestions in a dedicated panel.",
      "example": "Type a function signature in a Python file and Copilot instantly suggests the full implementation matching the existing code style and nearby imports.",
      "source": "https://docs.github.com/en/copilot/concepts/completions/code-suggestions"
    },
    {
      "id": "ghc-chat",
      "name": "Copilot Chat",
      "ecosystem": "GitHub Copilot",
      "category": "Code",
      "status": "Stable",
      "description": "Conversational assistant with context attachments and environment-specific slash commands across supported GitHub and editor surfaces, plus MCP-powered skills on GitHub.",
      "trigger": "Open Copilot Chat · type @ to attach context · type / to list commands available in the current environment",
      "howto": "Ask a question in Copilot Chat, attach relevant context with @, and use the slash commands shown by the current environment. Common GitHub commands include /clear, /delete, /new, and /rename.",
      "example": "Type /new to start a conversation, then use @ to attach an issue or pull request before entering your question.",
      "source": "https://docs.github.com/en/copilot/reference/chat-cheat-sheet"
    },
    {
      "id": "ghc-cli",
      "name": "Copilot CLI",
      "ecosystem": "GitHub Copilot",
      "category": "Agentic",
      "status": "Stable",
      "description": "Command-line interface for asking Copilot questions and assigning coding tasks from a terminal, with interactive plan mode, autonomous autopilot, and programmatic use.",
      "trigger": "Run copilot in a trusted code directory · press Shift+Tab to cycle to autopilot during an interactive session",
      "howto": "Install Copilot CLI, navigate to a trusted code directory, run copilot, approve the directory, and use /login if prompted. Select autopilot with Shift+Tab for well-defined multi-step work; press Ctrl+C to stop it.",
      "example": "Run copilot in a repository, ask it to write tests for a module, and select autopilot so it continues until the task completes, reaches a blocker or continuation limit, or is stopped.",
      "source": "https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/overview"
    },
    {
      "id": "ghc-cloud-agent",
      "name": "Cloud Agent",
      "ecosystem": "GitHub Copilot",
      "category": "Agentic",
      "status": "Stable",
      "description": "Background coding agent that can research a repository, plan changes, fix bugs, implement incremental features, improve tests and documentation, and work on a branch for review.",
      "trigger": "Start a Copilot session from a supported GitHub or IDE surface · mention @copilot in an existing pull-request comment to request changes",
      "howto": "Start a session with a task prompt. Copilot works in the background and makes changes on a branch. Review the diff, iterate, and either request a pull request in the prompt or create one from the session logs when finished.",
      "example": "From a GitHub issue, start a session asking Copilot to improve test coverage, review the resulting branch diff, iterate if needed, and create a pull request.",
      "source": "https://docs.github.com/en/copilot/concepts/agents/cloud-agent/about-cloud-agent"
    },
    {
      "id": "ghc-code-review",
      "name": "Code Review",
      "ecosystem": "GitHub Copilot",
      "category": "Code",
      "status": "Stable",
      "description": "Reviews code in any language from multiple angles, provides feedback, identifies issues, and suggests fixes that can be applied directly.",
      "trigger": "Request a Copilot code review from a supported surface · enable automatic pull-request reviews",
      "howto": "Request a review, inspect Copilot's feedback, and apply suggested changes when appropriate. Supported surfaces include GitHub.com, GitHub CLI, GitHub Mobile, VS Code, Visual Studio, Xcode, and JetBrains IDEs.",
      "example": "Request Copilot review on a pull request, inspect an identified issue, and apply its suggested fix.",
      "source": "https://docs.github.com/en/copilot/concepts/agents/code-review"
    },
    {
      "id": "ghc-agent-skills",
      "name": "Agent Skills",
      "ecosystem": "GitHub Copilot",
      "category": "Agentic",
      "status": "Stable",
      "description": "Folders of instructions, scripts, and resources that Copilot loads when relevant to a specialized task, supported by cloud agent, code review, Copilot CLI, the Copilot app, and agent mode in VS Code and JetBrains IDEs.",
      "trigger": "Add a skill folder under .github/skills, .claude/skills, or .agents/skills · Copilot loads it when the task matches",
      "howto": "Create a folder with a `SKILL.md` in `.github/skills`, `.claude/skills`, or `.agents/skills` for a project, or in `~/.copilot/skills` or `~/.agents/skills` for personal use. Reuse community skills such as `anthropics/skills`, or discover them with `gh skill` in GitHub CLI.",
      "example": "Add `.github/skills/release-notes/SKILL.md` describing your changelog format, and Copilot follows it whenever you ask it to draft release notes.",
      "source": "https://docs.github.com/en/copilot/concepts/agents/about-agent-skills"
    },
    {
      "id": "ghc-custom-instructions",
      "name": "Custom Instructions",
      "ecosystem": "GitHub Copilot",
      "category": "Memory",
      "status": "Stable",
      "description": "Repository-wide, path-specific, and agent instruction files that add project context, conventions, and preferences to Copilot requests.",
      "trigger": ".github/copilot-instructions.md · .github/instructions/NAME.instructions.md · AGENTS.md",
      "howto": "Put repository-wide guidance in `.github/copilot-instructions.md` and path-specific guidance in `.github/instructions/NAME.instructions.md`. On GitHub, Copilot also reads agent instructions from `AGENTS.md`, `CLAUDE.md`, or `GEMINI.md`. Support varies by surface; Xcode and Eclipse read only the repository-wide file.",
      "example": "Add 'Use pnpm, not npm, and write tests with Vitest' to `.github/copilot-instructions.md`, and Copilot follows it in chat and agent responses for that repository.",
      "source": "https://docs.github.com/en/copilot/concepts/prompting/response-customization"
    },
    {
      "id": "ghc-custom-agents",
      "name": "Custom Agents",
      "ecosystem": "GitHub Copilot",
      "category": "Agentic",
      "status": "Stable",
      "description": "Specialized versions of the Copilot agent defined as Markdown agent profiles with their own prompt, tools, and MCP servers, usable in cloud agent on GitHub.com and in IDEs, the Copilot app, and Copilot CLI.",
      "trigger": "Add .github/agents/NAME.agent.md · select the agent when assigning a task or issue",
      "howto": "Create `.github/agents/NAME.md` (or `.agent.md`) with YAML frontmatter such as `name`, `description`, `tools`, `model`, and `mcp-servers`, then write the prompt below it (max 30,000 characters). Share across an organization from `/agents/` in its `.github` or `.github-private` repository.",
      "example": "Define a `docs-writer` agent limited to read and edit tools with a style-guide prompt, then assign it an issue so it updates documentation without touching code.",
      "source": "https://docs.github.com/en/copilot/concepts/agents/cloud-agent/about-custom-agents"
    },
    {
      "id": "ghc-memory",
      "name": "Copilot Memory",
      "ecosystem": "GitHub Copilot",
      "category": "Memory",
      "status": "Beta",
      "description": "Public-preview memory that stores repository facts (conventions, architecture decisions, build commands) and user preferences, shared across Copilot cloud agent, code review, and Copilot CLI.",
      "trigger": "On by default for individual accounts · enabled by policy for organizations and enterprises",
      "howto": "Individual users get Copilot Memory by default; organization and enterprise admins must enable the policy first, after which users can opt out. Stored facts and preferences that go unused are deleted automatically after 28 days, and the timer resets when Copilot validates and uses one.",
      "example": "After code review learns that a repository builds with `make ci`, cloud agent reuses that fact on its next task in the same repository.",
      "source": "https://docs.github.com/en/copilot/concepts/agents/copilot-memory"
    },
    {
      "id": "ghc-spaces",
      "name": "Copilot Spaces",
      "ecosystem": "GitHub Copilot",
      "category": "Memory",
      "status": "Stable",
      "description": "Curated context collections — repositories, code, pull requests, issues, notes, transcripts, images, and uploads — that ground Copilot answers, usable in Copilot Chat on GitHub and in IDEs through the GitHub MCP server.",
      "trigger": "Create a space on GitHub · use it in Copilot Chat · or access it in your IDE via the GitHub MCP server",
      "howto": "Create a space, add the repositories, issues, files, and notes that matter for a topic, and chat with Copilot inside it. Share organization spaces with admin, editor, or viewer access, or keep personal spaces private, shared with specific users, or public (view-only). Anyone with a Copilot license, including Copilot Free, can create spaces.",
      "example": "Build an 'Onboarding' space with the architecture doc, key services, and open good-first-issues, so new teammates can ask Copilot grounded questions.",
      "source": "https://docs.github.com/en/copilot/concepts/context/spaces"
    },
    {
      "id": "ghc-awesome-copilot",
      "name": "Awesome Copilot",
      "ecosystem": "GitHub Copilot",
      "category": "Agentic",
      "status": "Stable",
      "description": "GitHub's MIT-licensed community collection (github/awesome-copilot) of custom agents, instructions, skills, hooks, workflows, and plugins, searchable at awesome-copilot.github.com and installable as a Copilot plugin marketplace.",
      "trigger": "`copilot plugin install <plugin-name>@awesome-copilot`",
      "howto": "The awesome-copilot marketplace is usually pre-registered in Copilot CLI and VS Code, so run `copilot plugin install <plugin-name>@awesome-copilot`. On older setups, first run `copilot plugin marketplace add github/awesome-copilot`. Browse agents, instructions, and skills on the website and inspect third-party items before installing.",
      "example": "Search the site for a Terraform agent, install its plugin, and Copilot gains a specialist agent plus matching instructions for infrastructure code.",
      "source": "https://github.com/github/awesome-copilot"
    },
    {
      "id": "ag-projects",
      "name": "Projects & Worktrees",
      "ecosystem": "Antigravity",
      "category": "Agentic",
      "status": "Stable",
      "description": "Project workspaces with native Git worktrees, project-scoped security settings and permissions, and access to multiple folders in one conversation.",
      "trigger": "Create or open a Project · configure folders, settings, permissions, or an isolated worktree",
      "howto": "Create a Project, add the folders the agent needs, choose a security preset, and attach any required permission grants. Use a Git worktree when the agent should operate in an isolated background folder.",
      "example": "A developer gives one Project access to two related repositories and starts risky refactoring work in an isolated Git worktree.",
      "source": "https://antigravity.google/docs/features#projects"
    },
    {
      "id": "ag-cli",
      "name": "Antigravity CLI (agy)",
      "ecosystem": "Antigravity",
      "category": "Agentic",
      "status": "Stable",
      "description": "Keyboard-driven terminal interface with default, accept-edits, and plan modes, plus SSH, headless operation, artifact review, and settings shared with Antigravity 2.0.",
      "trigger": "Run agy in a workspace · press Shift+Tab to cycle default, accept-edits, and plan modes",
      "howto": "Install with `curl -fsSL https://antigravity.google/cli/install.sh | bash`, run `agy` in a project directory, and confirm workspace trust on first launch. Press Shift+Tab to choose default, accept-edits, or plan mode.",
      "example": "Run `agy` over SSH, select plan mode with Shift+Tab, and ask it to outline a multi-file refactor before approving implementation.",
      "source": "https://antigravity.google/docs/cli/getting-started"
    },
    {
      "id": "ag-scheduler",
      "name": "Scheduled Tasks",
      "ecosystem": "Antigravity",
      "category": "Agentic",
      "status": "Stable",
      "description": "Time-based triggers that periodically send scheduled messages to project agents while you are away, using Gemini 3.5 Flash.",
      "trigger": "Create a scheduled project message · set the minute on which it should repeat",
      "howto": "Create a scheduled message for a Project, define the task, and set its periodic time trigger. Antigravity starts a conversation on the configured minute while you are away.",
      "example": "A maintainer schedules a project agent to check open pull requests for merge conflicts at a recurring time and report the result.",
      "source": "https://antigravity.google/docs/features#scheduled-tasks"
    },
    {
      "id": "ag-artifacts",
      "name": "Artifacts & Co‑steering",
      "ecosystem": "Antigravity",
      "category": "Agentic",
      "status": "Stable",
      "description": "Review interface for implementation plans, code diffs, architecture diagrams, and visual media, with line-level comments and file-by-file approval or rejection.",
      "trigger": "Open a generated artifact in the CLI review pane",
      "howto": "Open the artifact review, navigate with the arrow keys, press p to preview, add inline comments, and use y or n to approve or reject a file. Shift+A approves all files and Shift+R rejects all files.",
      "example": "Review a generated code diff, comment on a specific line, reject that file, and approve the remaining files before applying edits locally.",
      "source": "https://antigravity.google/docs/cli-artifacts"
    },
    {
      "id": "ag-skills",
      "name": "Agent Skills",
      "ecosystem": "Antigravity",
      "category": "Agentic",
      "status": "Stable",
      "description": "SKILL.md folders the agent discovers by name and description, loading full instructions, scripts, and examples only when a skill is relevant to the task.",
      "trigger": "Add a skill under .agents/skills/ · the agent activates it when the task matches its description",
      "howto": "Create `<workspace-root>/.agents/skills/<skill-folder>/SKILL.md` for a workspace, or `~/.gemini/config/skills/<skill-folder>/` globally. The frontmatter needs a `description` (`name` is optional). The legacy `.agent/skills` path is still supported.",
      "example": "Add a `deploy` skill describing your release steps; when you ask the agent to ship, it reads the skill and follows those steps instead of guessing.",
      "source": "https://antigravity.google/docs/skills/"
    },
    {
      "id": "ag-rules",
      "name": "Rules",
      "ecosystem": "Antigravity",
      "category": "Memory",
      "status": "Stable",
      "description": "Markdown rule files that constrain the agent to your stack, style, and conventions, applied always, on @-mention, by model decision, or by file glob.",
      "trigger": "Customizations panel → Rules → + Global or + Workspace · @mention a manual rule",
      "howto": "Put global rules in `~/.gemini/GEMINI.md` and workspace rules in `.agents/rules` (legacy `.agent/rules` still works). Choose an activation mode — Manual, Always On, Model Decision, or Glob (for example `*.js`). Each rule file is limited to 12,000 characters.",
      "example": "Create a Glob rule for `*.ts` requiring strict null checks and named exports, and the agent applies it whenever it edits TypeScript files.",
      "source": "https://antigravity.google/docs/rules-workflows/"
    },
    {
      "id": "ag-plugins",
      "name": "Plugins",
      "ecosystem": "Antigravity",
      "category": "Integration",
      "status": "Stable",
      "description": "Namespaced bundles that group skills, rules, MCP servers, and hooks into a single package, available as Google-created bundled plugins or custom folders.",
      "trigger": "Customizations page → bundled plugins · or add a folder under .agents/plugins/",
      "howto": "Enable bundled plugins from the Customizations page, or create a plugin folder with a `plugin.json` manifest plus optional `skills/`, `rules/`, `mcp_config.json`, and `hooks.json`. Place it in `.agents/plugins/` for a workspace or `~/.gemini/config/plugins/` globally; Antigravity discovers it automatically.",
      "example": "Package your team's review skill, TypeScript rules, and a Jira MCP server as one plugin so every workspace gets the same setup.",
      "source": "https://antigravity.google/docs/plugins/"
    },
    {
      "id": "ag-hooks",
      "name": "Hooks",
      "ecosystem": "Antigravity",
      "category": "Integration",
      "status": "Stable",
      "description": "Scripts that run at agent lifecycle points — PreToolUse, PostToolUse, PreInvocation, PostInvocation, and Stop — to gate tool calls, inject context, or control whether execution continues.",
      "trigger": "Add hooks.json to .agents/ (workspace) or ~/.gemini/config/ (global)",
      "howto": "Create `hooks.json` in your customization directory and map events to shell commands with timeouts. Each hook receives JSON on stdin (tool details, workspace paths, metadata) and returns JSON on stdout; a PreToolUse hook can return `deny` or `ask`, and PostInvocation can use `terminationBehavior` to force continuation or termination.",
      "example": "Add a PreToolUse hook that returns `deny` whenever a shell command touches production credentials.",
      "source": "https://antigravity.google/docs/hooks/"
    },
    {
      "id": "ag-mcp",
      "name": "MCP Servers",
      "ecosystem": "Antigravity",
      "category": "Integration",
      "status": "Stable",
      "description": "Connect local (stdio) or remote Model Context Protocol servers from an MCP Store or a JSON config, across the Antigravity app, IDE, and CLI.",
      "trigger": "CLI: /mcp · IDE: … menu → MCP Servers · or edit mcp_config.json",
      "howto": "Install from the MCP UI (Settings > Customizations in Antigravity 2.0, the agent panel … menu in the IDE, or `/mcp` in the CLI), or edit `~/.gemini/config/mcp_config.json` globally or `.agents/mcp_config.json` per workspace. Each server under `mcpServers` uses `command` with `args`/`env` for stdio, or `serverUrl` with `headers` for remote.",
      "example": "Add a remote server with `serverUrl` and an Authorization header so the agent can query your internal issue tracker.",
      "source": "https://antigravity.google/docs/mcp/"
    },
    {
      "id": "cur-agent-mode",
      "name": "Agent Mode",
      "ecosystem": "Cursor",
      "category": "Agentic",
      "status": "Stable",
      "description": "Autonomous coding mode inside Cursor that reads the codebase, edits files, runs terminal commands, and iterates toward a stated engineering outcome.",
      "trigger": "Cursor Agent pane → describe the task",
      "howto": "Open Cursor's Agent pane from the editor, describe the task and constraints, then review proposed tool calls and diffs before accepting changes.",
      "example": "A developer asks Agent Mode to add OAuth callback handling. Cursor finds the auth routes, edits three files, runs tests, and presents the patch for review.",
      "source": "https://cursor.com/docs/agent/overview"
    },
    {
      "id": "cur-plan-mode",
      "name": "Plan Mode",
      "ecosystem": "Cursor",
      "category": "Agentic",
      "status": "Stable",
      "description": "Read-first agent mode that builds an implementation plan before applying edits, useful for large or risky changes that need human review first.",
      "trigger": "Switch Agent to Plan mode",
      "howto": "Choose Plan mode before sending a task. Let Cursor inspect the repo and return a plan. Comment on the plan until it is safe, then move to implementation.",
      "example": "Before migrating a billing service, Cursor maps the model, routes, and tests, then returns a staged migration plan without editing files.",
      "source": "https://cursor.com/docs/agent/plan-mode"
    },
    {
      "id": "cur-rules",
      "name": "Rules",
      "ecosystem": "Cursor",
      "category": "Memory",
      "status": "Stable",
      "description": "Project and user-level instruction files that keep Cursor aligned with repository conventions, domain terminology, testing rules, and code style.",
      "trigger": "Create or edit Cursor Rules",
      "howto": "Define rules in Cursor's rules UI or repository rule files. Keep them short, scoped, and concrete so the agent receives durable context without bloating every prompt.",
      "example": "A monorepo rule tells Cursor to use pnpm, avoid barrel exports, run the package-local tests, and never edit generated GraphQL types by hand.",
      "source": "https://cursor.com/docs/rules"
    },
    {
      "id": "cur-skills",
      "name": "Skills",
      "ecosystem": "Cursor",
      "category": "Agentic",
      "status": "Stable",
      "description": "Reusable task capability packs for Cursor agents, giving repeated workflows their own instructions, context, and activation criteria.",
      "trigger": "Install or author a Cursor Skill",
      "howto": "Open the Cursor Skills docs, create a skill for a repeated workflow, then reference it naturally or invoke it when the task matches its description.",
      "example": "A release skill encodes the team's changelog, versioning, test, and publish steps so Cursor follows the same release harness every time.",
      "source": "https://cursor.com/docs/skills"
    },
    {
      "id": "cur-mcp",
      "name": "MCP Servers",
      "ecosystem": "Cursor",
      "category": "Integration",
      "status": "Stable",
      "description": "Model Context Protocol integration that lets Cursor agents call external tools such as docs, databases, ticket systems, and internal APIs.",
      "trigger": "Cursor Settings → MCP → add server",
      "howto": "Add an MCP server in Cursor settings or project configuration, authenticate it if needed, then mention the connected tool in an agent task.",
      "example": "A database MCP lets Cursor inspect a local Postgres schema before writing a migration, avoiding guesses about table names and constraints.",
      "source": "https://cursor.com/docs/mcp"
    },
    {
      "id": "cur-cloud-agent",
      "name": "Cloud Agent",
      "ecosystem": "Cursor",
      "category": "Agentic",
      "status": "Stable",
      "description": "Remote Cursor agent that runs coding tasks in managed environments, with setup, capabilities, runtime choices, mobile access, and self-hosted pool options.",
      "trigger": "Cursor Cloud Agent → start task",
      "howto": "Configure Cloud Agent, choose the runtime or machine pool, grant repository access, and submit a task. Review the streamed progress and resulting branch or diff.",
      "example": "A manager starts a Cloud Agent from mobile to fix a flaky Playwright test; the agent reproduces it in the cloud and opens a reviewable patch.",
      "source": "https://cursor.com/docs/cloud-agent"
    },
    {
      "id": "cur-bugbot",
      "name": "Bugbot",
      "ecosystem": "Cursor",
      "category": "Code",
      "status": "Stable",
      "description": "Automated Cursor code-review bot that scans changes for bugs and review issues before they reach or during pull-request review.",
      "trigger": "Enable Bugbot for a repo or review flow",
      "howto": "Open the Bugbot docs, enable the integration for the relevant repository or workflow, then review its comments alongside human code review.",
      "example": "Bugbot flags a stale async cleanup in a React effect and links the finding to the exact changed line before the PR is merged.",
      "source": "https://cursor.com/docs/bugbot"
    },
    {
      "id": "cur-cli",
      "name": "Cursor CLI",
      "ecosystem": "Cursor",
      "category": "Code",
      "status": "Stable",
      "description": "Terminal and headless interface for running Cursor agent workflows from scripts, shells, and CI-adjacent developer loops.",
      "trigger": "Run agent for an interactive session · use agent -p for non-interactive output",
      "howto": "Install with `curl https://cursor.com/install -fsS | bash`, verify with `agent --version`, then run `agent` interactively or `agent -p \"task\"` non-interactively.",
      "example": "Run `agent -p \"find and fix performance issues\" --model \"gpt-5\"` for a non-interactive task, or `agent resume` to continue the latest conversation.",
      "source": "https://cursor.com/docs/cli/overview"
    },
    {
      "id": "cur-hooks",
      "name": "Hooks",
      "ecosystem": "Cursor",
      "category": "Integration",
      "status": "Stable",
      "description": "Custom scripts that observe, block, or modify the agent loop at lifecycle events such as preToolUse, beforeShellExecution, afterFileEdit, and stop.",
      "trigger": "Define hooks in .cursor/hooks.json (project) or ~/.cursor/hooks.json (user)",
      "howto": "Create `.cursor/hooks.json` with `\"version\": 1` and a `hooks` map from event names to commands. Each script receives JSON on stdin and returns JSON on stdout; exit code `0` succeeds and `2` blocks the action. Enterprise and team hooks take priority over project and user hooks.",
      "example": "Add `{\"version\": 1, \"hooks\": {\"afterFileEdit\": [{\"command\": \"./hooks/format.sh\"}]}}` so every agent edit is formatted automatically.",
      "source": "https://cursor.com/docs/agent/hooks"
    },
    {
      "id": "cur-subagents",
      "name": "Subagents",
      "ecosystem": "Cursor",
      "category": "Agentic",
      "status": "Stable",
      "description": "Specialized assistants the agent delegates to, each with its own context window — built-in Explore, Bash, and Browser subagents plus custom ones defined in Markdown.",
      "trigger": "/name task · 'Use the verifier subagent to…' · automatic delegation",
      "howto": "Add Markdown files to `.cursor/agents/` (or `~/.cursor/agents/`) with optional frontmatter `name`, `description`, `model`, `readonly`, and `is_background`. Cursor also reads `.claude/agents/` and `.codex/agents/`, with `.cursor/` taking precedence. Invoke with `/name` or let the agent delegate based on the description.",
      "example": "Create a read-only `verifier` subagent, then type `/verifier confirm the auth flow` to check the change without polluting the main conversation.",
      "source": "https://cursor.com/docs/agent/subagents"
    },
    {
      "id": "cur-plugins",
      "name": "Plugins & Marketplace",
      "ecosystem": "Cursor",
      "category": "Integration",
      "status": "Stable",
      "description": "Distributable bundles of rules, skills, agents, commands, MCP servers, and hooks, installed from the manually reviewed Cursor Marketplace or private team marketplaces.",
      "trigger": "Customize → find a plugin → Install · browse cursor.com/marketplace",
      "howto": "Open Customize, pick a plugin, and install it at project or user scope. Teams plans get one private team marketplace and Enterprise unlimited, where admins set each plugin to Default Off, Default On, or Required and control whether members can publish personal skills.",
      "example": "An admin marks the company's security-review plugin as Required, so every developer's agent gets the same rules, hooks, and MCP servers.",
      "source": "https://cursor.com/docs/plugins"
    },
    {
      "id": "kiro-specs",
      "name": "Specs",
      "ecosystem": "Kiro",
      "category": "Agentic",
      "status": "Stable",
      "description": "Spec-driven workflow that turns a prompt into requirements, design, and tasks before implementation, keeping product intent and engineering work linked.",
      "trigger": "Kiro → Specs → create or refine a spec",
      "howto": "Create a spec, review the generated requirements and design, then let Kiro produce tasks.md. Execute tasks only after the spec matches the intended behavior.",
      "example": "A vague 'add team billing' request becomes acceptance criteria, architecture notes, and a sequenced task list before any files are changed.",
      "source": "https://kiro.dev/docs/specs/"
    },
    {
      "id": "kiro-task-execution",
      "name": "Task Execution",
      "ecosystem": "Kiro",
      "category": "Agentic",
      "status": "Stable",
      "description": "Task interface that analyzes tasks.md dependencies, sequences work, and lets agents implement spec tasks with traceability back to requirements.",
      "trigger": "Open tasks.md in Kiro → Execute task",
      "howto": "Review the generated task list, select a task, and let Kiro execute it. Keep tasks small enough that each one can be verified against the spec before moving on.",
      "example": "Kiro implements the 'create subscription table' task, runs the migration checks, and marks the task complete while leaving later billing UI tasks untouched.",
      "source": "https://kiro.dev/docs/specs/"
    },
    {
      "id": "kiro-steering",
      "name": "Steering",
      "ecosystem": "Kiro",
      "category": "Memory",
      "status": "Stable",
      "description": "Durable project directives, including AGENTS.md-compatible guidance, that keep Kiro aligned with architecture, conventions, and domain language.",
      "trigger": "Add steering files or AGENTS.md",
      "howto": "Write steering files or an AGENTS.md with concrete repository rules, architecture constraints, and verification commands. Kiro reads them as persistent project context.",
      "example": "A steering file tells Kiro that API contracts live in OpenAPI first, migrations must be reversible, and every feature needs a contract test.",
      "source": "https://kiro.dev/docs/steering/"
    },
    {
      "id": "kiro-hooks",
      "name": "Hooks",
      "ecosystem": "Kiro",
      "category": "Integration",
      "status": "Stable",
      "description": "Automated responses to IDE events such as file saves, file creation/deletion, prompt submission, and agent turns.",
      "trigger": "Kiro → Hooks → configure event automation",
      "howto": "Create a hook for the event you care about, define the automated action, and test it on a safe project before using it in active development.",
      "example": "A save hook runs the formatter and updates generated docs whenever schema files change, so agent edits stay inside the team's harness.",
      "source": "https://kiro.dev/docs/hooks/"
    },
    {
      "id": "kiro-powers",
      "name": "Powers",
      "ecosystem": "Kiro",
      "category": "Agentic",
      "status": "Stable",
      "description": "Installable packages that give Kiro specialized knowledge and dynamically activated MCP tools through a POWER.md file, MCP configuration, and optional steering or hooks.",
      "trigger": "Install a Power · describe a task that matches its keywords so Kiro activates it",
      "howto": "Install the relevant Power, then describe the task normally. Kiro evaluates installed Powers, loads the matching POWER.md context and MCP tools, and can activate a different Power when the task changes.",
      "example": "Ask Kiro to add a Supabase database and it activates the Supabase Power; when the task turns to payments, it can activate the Stripe Power instead.",
      "source": "https://kiro.dev/docs/powers/"
    },
    {
      "id": "kiro-mcp",
      "name": "MCP Servers",
      "ecosystem": "Kiro",
      "category": "Integration",
      "status": "Stable",
      "description": "Connect Model Context Protocol servers at workspace or user level to give Kiro external tools and data, with connection status and logs in the Kiro panel.",
      "trigger": "Command palette → open workspace or user MCP config · or the Open MCP Config icon in the Kiro panel",
      "howto": "Open the workspace or user MCP config from the command palette, add a server under `mcpServers` with `command`, `args`, and `disabled`, then save — servers reconnect automatically. Confirm the connection in the MCP servers tab and check the Output tab for logs.",
      "example": "Add `{\"mcpServers\": {\"fetch\": {\"command\": \"uvx\", \"args\": [\"mcp-server-fetch\"], \"disabled\": false}}}` and Kiro can fetch web pages during a task.",
      "source": "https://kiro.dev/docs/mcp/"
    },
    {
      "id": "kiro-cli",
      "name": "Kiro CLI",
      "ecosystem": "Kiro",
      "category": "Code",
      "status": "Stable",
      "description": "Terminal version of Kiro with interactive chat, steering, MCP, custom agents, hooks, skills, and a headless mode for CI/CD pipelines, on macOS, Linux, and Windows.",
      "trigger": "kiro-cli · kiro-cli chat --no-interactive \"prompt\"",
      "howto": "Install with `curl -fsSL https://cli.kiro.dev/install | bash` and run `kiro-cli` in your project. For CI, set `KIRO_API_KEY` (Pro, Pro+, Pro Max, or Power plans) and run `kiro-cli chat --no-interactive \"your prompt\"`, adding `--output-format stream-json` for JSON Lines output.",
      "example": "In a pipeline, run `kiro-cli chat --no-interactive --trust-tools=read \"summarize this diff\"` and post the result as a build comment.",
      "source": "https://kiro.dev/docs/cli/"
    },
    {
      "id": "kiro-skills",
      "name": "Agent Skills",
      "ecosystem": "Kiro",
      "category": "Agentic",
      "status": "Stable",
      "description": "SKILL.md folders that Kiro loads automatically when a request matches their description, or that you invoke as slash commands, with import straight from GitHub.",
      "trigger": "Add a skill to .kiro/skills/ · type / in chat to invoke one",
      "howto": "Create `.kiro/skills/<name>/SKILL.md` for a workspace or `~/.kiro/skills/<name>/` globally; `name` must match the folder and `description` drives activation. To import, open Agent Steering & Skills, click +, choose Import a skill → GitHub, and paste a URL to the skill folder (not the repository root).",
      "example": "Import a changelog-writing skill from GitHub, then type `/changelog` in chat to draft release notes in your team's format.",
      "source": "https://kiro.dev/docs/skills/"
    },
    {
      "id": "kiro-custom-agents",
      "name": "Custom Agents",
      "ecosystem": "Kiro",
      "category": "Agentic",
      "status": "Stable",
      "description": "JSON or Markdown agent definitions with their own prompt, model, tools, permissions, resources, and MCP or Powers access, selectable as the primary agent in the Kiro IDE and CLI.",
      "trigger": "Add .kiro/agents/NAME.json or NAME.md · select it as the session agent",
      "howto": "Define an agent in `.kiro/agents/` (shared with the workspace, loaded only if trusted) or `~/.kiro/agents/` (personal) using fields such as `name`, `description`, `prompt`, `model`, `tools`, `excludedTools`, `resources`, `permissions`, `includeMcpJson`, and `includePowers`. Workspace agents win on name conflicts.",
      "example": "Create a `reviewer` agent with read-only tools and a code-review prompt, then select it in the CLI to review a branch without any edits.",
      "source": "https://kiro.dev/docs/custom-agents/"
    },
    {
      "id": "api-anthropic-thinking",
      "name": "Claude Extended Thinking API",
      "ecosystem": "Claude",
      "category": "API",
      "status": "Beta",
      "description": "API parameter that enables Claude's internal chain‑of‑thought — returns a thinking block alongside the final response for auditable, budget‑controlled deep reasoning.",
      "trigger": "thinking: {type:'enabled', budget_tokens:N} in the Messages API request",
      "howto": "Add thinking: {type:'enabled', budget_tokens:8000} to your /v1/messages API call. The response will include a content block of type 'thinking' before the final 'text' block. Increase budget_tokens (up to 32 000) for harder problems. Minimum budget is 1 000 tokens.",
      "example": "A legal‑tech app sends a contract clause and asks for a risk analysis; the thinking block reveals the step‑by‑step legal reasoning while the text block returns a concise risk rating.",
      "source": "https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking"
    },
    {
      "id": "api-perplexity-sonar",
      "name": "Perplexity Sonar API",
      "ecosystem": "Perplexity",
      "category": "API",
      "status": "Stable",
      "description": "OpenAI‑compatible REST API for Perplexity's real‑time web‑search‑augmented models — get cited, up‑to‑date answers in any application.",
      "trigger": "POST https://api.perplexity.ai/chat/completions with model: 'sonar' or 'sonar-pro'",
      "howto": "Obtain a Perplexity API key at perplexity.ai/settings/api. Use the OpenAI SDK or any HTTP client, pointing to https://api.perplexity.ai. Set model to 'sonar' (fast) or 'sonar-pro' (deep research). The response's citations array contains source URLs.",
      "example": "A news aggregator app calls the Sonar API every hour with 'What are the top AI news stories today?' and parses the citations to build a sourced headline feed.",
      "source": "https://docs.perplexity.ai/reference/post_chat_completions"
    },
    {
      "id": "cc-skill-docx",
      "name": "DOCX Skill",
      "ecosystem": "Claude Code",
      "category": "Document",
      "status": "Stable",
      "description": "Official Anthropic skill pack that generates polished, editable Word documents from a prompt — headings, tables, bullets, and tracked changes.",
      "trigger": "\"Write me a report on…\" · auto-discovered when a .docx output is needed",
      "example": "Ask for a technical spec; the skill produces a formatted .docx with sections, a TOC, and consistent heading styles.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/docx",
      "howto": "Clone `anthropics/skills` and copy the `skills/docx` folder to `.claude/skills/` in your repo. Claude Code auto-discovers it and gains Word document creation for any prompt requesting a .docx file."
    },
    {
      "id": "cc-skill-pptx",
      "name": "PPTX Skill",
      "ecosystem": "Claude Code",
      "category": "Document",
      "status": "Stable",
      "description": "Official Anthropic skill pack that builds real, editable PowerPoint presentations with slide layouts, speaker notes, and branded styling.",
      "trigger": "\"Make me a deck about…\" · auto-discovered for presentation requests",
      "example": "A 10-slide investor deck with title, agenda, and chart slides is generated as a real .pptx file.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/pptx",
      "howto": "Clone `anthropics/skills` and copy `skills/pptx` to `.claude/skills/`. Claude Code will generate fully-formatted PowerPoint files when you ask for a deck or presentation."
    },
    {
      "id": "cc-skill-xlsx",
      "name": "XLSX Skill",
      "ecosystem": "Claude Code",
      "category": "Document",
      "status": "Stable",
      "description": "Official Anthropic skill pack that creates structured Excel workbooks with formulas, named ranges, charts, and multiple sheets.",
      "trigger": "\"Build me a budget spreadsheet\" · auto-discovered for data/table requests",
      "example": "A financial model with three sheets, linked formulas, and a chart is generated as a real .xlsx file.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/xlsx",
      "howto": "Clone `anthropics/skills` and copy `skills/xlsx` to `.claude/skills/`. Ask Claude Code to produce a spreadsheet or data table — it writes a real .xlsx file."
    },
    {
      "id": "cc-skill-pdf",
      "name": "PDF Skill",
      "ecosystem": "Claude Code",
      "category": "Document",
      "status": "Stable",
      "description": "Official Anthropic skill pack that produces formatted PDF documents — reports, invoices, briefs — with consistent typography and layout.",
      "trigger": "\"Create a PDF report on…\" · auto-discovered for PDF output requests",
      "example": "A client-ready consulting brief is generated as a styled PDF with cover page and page numbers.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/pdf",
      "howto": "Clone `anthropics/skills` and copy `skills/pdf` to `.claude/skills/`. Claude Code will convert or generate PDFs from any content you provide."
    },
    {
      "id": "cc-skill-frontend",
      "name": "Frontend Design Skill",
      "ecosystem": "Claude Code",
      "category": "Visual",
      "status": "Stable",
      "description": "Official Anthropic skill pack for designing production-quality web UIs — component libraries, responsive layouts, and design systems.",
      "trigger": "\"Design a landing page for…\" · \"Build a dashboard component\"",
      "example": "A marketing landing page is designed with hero, features, and CTA sections using modern HTML/CSS.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/frontend-design",
      "howto": "Clone `anthropics/skills` and copy `skills/frontend-design` to `.claude/skills/`. Claude Code uses it to scaffold polished, accessible UI components and layouts."
    },
    {
      "id": "cc-skill-mcp-builder",
      "name": "MCP Builder Skill",
      "ecosystem": "Claude Code",
      "category": "Integration",
      "status": "Stable",
      "description": "Official Anthropic skill pack that scaffolds a working MCP server from a description — tools, resources, and transports included.",
      "trigger": "\"Build an MCP server that…\"",
      "example": "Describe a GitHub MCP server and receive a complete, runnable server with tool definitions and transport config.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/mcp-builder",
      "howto": "Clone `anthropics/skills` and copy `skills/mcp-builder` to `.claude/skills/`. Ask Claude Code to \"build an MCP server for X\" and it follows the full spec end-to-end."
    },
    {
      "id": "cc-skill-webapp-testing",
      "name": "Webapp Testing Skill",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Official Anthropic skill pack that writes and runs Playwright browser tests — end-to-end flows, accessibility checks, and screenshot assertions.",
      "trigger": "\"Test my login flow\" · \"Write e2e tests for…\"",
      "example": "Claude writes a full Playwright test suite for a checkout flow, runs it, and reports failures with annotated screenshots.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/webapp-testing",
      "howto": "Clone `anthropics/skills` and copy `skills/webapp-testing` to `.claude/skills/`. Claude Code uses Playwright to write and run browser tests against any web app."
    },
    {
      "id": "cc-skill-creator",
      "name": "Skill Creator Skill",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Official Anthropic meta-skill that authors new SKILL.md files — writes the frontmatter, instructions, and references from a plain description.",
      "trigger": "\"Create a skill that…\"",
      "example": "Say \"Create a skill that reviews Python for PEP 8\" and receive a ready-to-use SKILL.md folder.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/skill-creator",
      "howto": "Clone `anthropics/skills` and copy `skills/skill-creator` to `.claude/skills/`. Ask Claude Code to \"create a new skill for X\" — it scaffolds a valid SKILL.md pack automatically."
    },
    {
      "id": "cc-skill-algo-art",
      "name": "Algorithmic Art Skill",
      "ecosystem": "Claude Code",
      "category": "Visual",
      "status": "Stable",
      "description": "Official Anthropic creative skill that generates generative art scripts — SVG patterns, canvas animations, and mathematical visualisations.",
      "trigger": "\"Generate algorithmic art with…\" · \"Make a generative pattern\"",
      "example": "A Fibonacci spiral with colour gradients is produced as a self-contained HTML canvas animation.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/algorithmic-art",
      "howto": "Clone `anthropics/skills` and copy `skills/algorithmic-art` to `.claude/skills/`. Ask for generative art — Claude Code writes and runs the code to produce SVG, canvas, or p5.js output."
    },
    {
      "id": "cc-skill-brand",
      "name": "Brand Guidelines Skill",
      "ecosystem": "Claude Code",
      "category": "Document",
      "status": "Stable",
      "description": "Official Anthropic skill that enforces brand voice, tone, and visual rules across generated copy and designs.",
      "trigger": "\"Write in our brand voice\" · \"Check this copy against brand guidelines\"",
      "example": "Marketing copy is rewritten to match the brand's defined tone — concise, active, and jargon-free.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/brand-guidelines",
      "howto": "Clone `anthropics/skills` and copy `skills/brand-guidelines` to `.claude/skills/`. Claude Code enforces your brand kit (colors, fonts, tone) across any design or copy task."
    },
    {
      "id": "cc-skill-internal-comms",
      "name": "Internal Comms Skill",
      "ecosystem": "Claude Code",
      "category": "Document",
      "status": "Stable",
      "description": "Official Anthropic skill for drafting internal communications — all-hands updates, incident reports, and policy announcements.",
      "trigger": "\"Write an all-hands email about…\" · \"Draft an incident post-mortem\"",
      "example": "A major outage post-mortem is structured with timeline, root cause, and action items in the correct company format.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/internal-comms",
      "howto": "Clone `anthropics/skills` and copy `skills/internal-comms` to `.claude/skills/`. Claude Code drafts memos, announcements, and all-hands updates in a consistent company voice."
    },
    {
      "id": "cc-skill-canvas-design",
      "name": "Canvas Design Skill",
      "ecosystem": "Claude Code",
      "category": "Visual",
      "status": "Stable",
      "description": "Official Anthropic skill for producing visual designs — diagrams, mockups, and styled layouts — inside Claude's canvas surface.",
      "trigger": "\"Design a…\" · canvas-mode requests",
      "example": "A mobile app mockup with navigation bar, card grid, and bottom tab bar is produced directly in canvas.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/canvas-design",
      "howto": "Clone `anthropics/skills` and copy `skills/canvas-design` to `.claude/skills/`. Claude Code designs and exports canvas-based graphics for social media, slides, or print."
    },
    {
      "id": "cc-skill-claude-api",
      "name": "Claude API Skill",
      "ecosystem": "Claude Code",
      "category": "API",
      "status": "Stable",
      "description": "Official Anthropic skill that guides building with the Claude Messages API — prompt patterns, tool use, streaming, and batching best practices.",
      "trigger": "\"Build an app using the Claude API\" · \"How do I implement tool_use?\"",
      "example": "A customer-support bot is scaffolded with tool definitions, system prompt, and retry handling using the Claude SDK.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/claude-api",
      "howto": "Clone `anthropics/skills` and copy `skills/claude-api` to `.claude/skills/`. Claude Code writes idiomatic Anthropic SDK calls, handles streaming, and wires up tool use correctly."
    },
    {
      "id": "cc-skill-web-artifacts",
      "name": "Web Artifacts Builder Skill",
      "ecosystem": "Claude Code",
      "category": "Visual",
      "status": "Stable",
      "description": "Official Anthropic skill for building elaborate multi-component web artifacts — interactive dashboards, data visualisations, and mini-apps.",
      "trigger": "\"Build a rich web artifact with…\"",
      "example": "A multi-tab dashboard with live charts, a filterable data table, and a sidebar is produced as a self-contained HTML artifact.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/web-artifacts-builder",
      "howto": "Clone `anthropics/skills` and copy `skills/web-artifacts-builder` to `.claude/skills/`. Claude Code builds self-contained HTML/CSS/JS artifacts ready to embed or deploy."
    },
    {
      "id": "cc-skill-slack-gif",
      "name": "Slack GIF Creator Skill",
      "ecosystem": "Claude Code",
      "category": "Integration",
      "status": "Stable",
      "description": "Official Anthropic skill that generates animated GIFs formatted and sized for Slack — from text prompts or data.",
      "trigger": "\"Make a Slack GIF for…\"",
      "example": "An animated celebration GIF is generated for a team milestone and exported at Slack-optimal dimensions.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator",
      "howto": "Clone `anthropics/skills` and copy `skills/slack-gif-creator` to `.claude/skills/`. Describe a reaction — Claude Code generates and posts a custom GIF to Slack via the API."
    },
    {
      "id": "cc-skill-theme-factory",
      "name": "Theme Factory Skill",
      "ecosystem": "Claude Code",
      "category": "Visual",
      "status": "Stable",
      "description": "Official Anthropic skill that generates complete design tokens and theme files — colours, typography, spacing — for any brand or product.",
      "trigger": "\"Create a dark theme for…\" · \"Generate design tokens for…\"",
      "example": "A full dark-mode design system with CSS custom properties, Tailwind config, and component previews is generated from a brand brief.",
      "source": "https://github.com/anthropics/skills/tree/main/skills/theme-factory",
      "howto": "Clone `anthropics/skills` and copy `skills/theme-factory` to `.claude/skills/`. Ask Claude Code to \"create a dark/light theme\" and it outputs a complete CSS variable set."
    },
    {
      "id": "cc-skill-ai-research",
      "name": "AI Research Skills",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Open-source library of 83+ structured research skills (Orchestra Research) — literature review, paper summarisation, experimental design, and citation management.",
      "trigger": "`npx @orchestra-research/ai-research-skills` · then invoke by task type",
      "example": "Ask Claude to review recent papers on RAG and receive a structured literature matrix with key findings and citation links.",
      "source": "https://github.com/Orchestra-Research/AI-research-SKILLs",
      "howto": "Clone `Orchestra-Research/AI-research-SKILLs` and copy desired skill folders to `.claude/skills/`. Adds systematic literature review, hypothesis generation, and experiment design workflows."
    },
    {
      "id": "cc-skill-cybersecurity",
      "name": "Cybersecurity Skills",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Open-source library of 754 structured cybersecurity skills mapped to MITRE ATT&CK, NIST CSF 2.0, and D3FEND frameworks (mukul975).",
      "trigger": "Copy skill folder to `.claude/skills/` · invoke by security domain",
      "example": "Ask for a threat model for a web API and receive a structured report mapped to MITRE ATT&CK TTPs with mitigations.",
      "source": "https://github.com/mukul975/Anthropic-Cybersecurity-Skills",
      "howto": "Clone `mukul975/Anthropic-Cybersecurity-Skills` and copy skill folders to `.claude/skills/`. Equips Claude Code with threat modelling, OWASP audit, and secure-code-review workflows."
    },
    {
      "id": "cc-skill-awesome-collection",
      "name": "Awesome Claude Skills",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Community-curated registry of 100+ Claude Code SKILL.md packs — productivity, engineering, marketing, research, and domain-specific skills.",
      "trigger": "Browse and clone individual skill folders from the repo",
      "example": "Pick the 'aws-skills' pack, drop it in `.claude/skills/`, and Claude Code gains AWS CDK and cost-optimisation expertise.",
      "source": "https://github.com/travisvn/awesome-claude-skills",
      "howto": "Browse `travisvn/awesome-claude-skills` on GitHub, pick any skill pack you need, and copy its folder to `.claude/skills/`. The README groups 100+ packs by domain for easy discovery."
    },
    {
      "id": "cc-skill-yylo",
      "name": "YYLO Skills",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "Open-source library of 7 structured task-management skills (yylo-dev) for YYLO Ledger — task operation, implementation-sized task planning, wiki and workflow records, provenance-bound evidence, and validated task execution. Requires the YYLO Ledger CLI; the planning and execution skills also need YYLO orchestration.",
      "trigger": "`npx skills add yylo-dev/yylo-skills` · then invoke by workflow",
      "example": "Assign one Ledger task and ask the agent to execute it — it delivers through validated steps and files provenance-bound evidence in the Ledger.",
      "source": "https://github.com/yylo-dev/yylo-skills",
      "howto": "Run `npx skills add yylo-dev/yylo-skills` to install the pack, or clone `yylo-dev/yylo-skills` and copy folders from `skills/` to `.claude/skills/`. Equips Claude Code with Ledger task operation, implementation-sized task planning, wiki and workflow records, evidence capture, and validated single-task execution. Needs `yylo-ledger` installed; the planning and execution skills also rely on YYLO orchestration."
    },
    {
      "id": "cc-skill-superpowers",
      "name": "Superpowers",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "MIT-licensed agentic skills framework (obra/superpowers) that gives coding agents a structured development method — brainstorming, writing and executing plans, test-driven development, systematic debugging, subagent-driven development, code review, and git worktrees.",
      "trigger": "`/plugin install superpowers@claude-plugins-official` · skills activate as the task matches",
      "howto": "Install from the official marketplace with `/plugin install superpowers@claude-plugins-official`, or add `obra/superpowers-marketplace` and install `superpowers@superpowers-marketplace`. The agent then reaches for skills such as brainstorming, writing-plans, test-driven-development, and systematic-debugging when relevant.",
      "example": "Ask for a new feature and the agent brainstorms the design with you, writes an implementation plan, then executes it test-first with review between steps.",
      "source": "https://github.com/obra/superpowers"
    },
    {
      "id": "cc-skill-vercel",
      "name": "Vercel Agent Skills",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Vercel's official MIT-licensed skill collection (vercel-labs/agent-skills) — React and Next.js performance rules, React composition and view-transition patterns, web interface guidelines, deployment to Vercel, and Vercel project cost and performance audits.",
      "trigger": "`npx skills add vercel-labs/agent-skills` · skills activate when a matching task is detected",
      "howto": "Run `npx skills add vercel-labs/agent-skills`. Skills follow the Agent Skills format, so they are available once installed and the agent uses them when relevant — for example react-best-practices, web-design-guidelines, deploy-to-vercel, or vercel-optimize.",
      "example": "Ask 'Review this React component for performance issues' and the agent applies Vercel's prioritized rules for waterfalls, bundle size, and re-renders.",
      "source": "https://github.com/vercel-labs/agent-skills"
    },
    {
      "id": "cc-skill-trailofbits",
      "name": "Trail of Bits Skills",
      "ecosystem": "Claude Code",
      "category": "Code",
      "status": "Stable",
      "description": "Claude Code plugin marketplace from security firm Trail of Bits with 40+ plugins for security research, vulnerability detection, testing, and audit workflows, such as supply-chain risk auditing. Licensed CC BY-SA 4.0.",
      "trigger": "`/plugin marketplace add trailofbits/skills` · then `/plugin menu`",
      "howto": "Add the marketplace with `/plugin marketplace add trailofbits/skills`, then browse and install individual plugins from `/plugin menu`. Codex can load the same marketplace with `codex plugin marketplace add trailofbits/skills`.",
      "example": "Install the supply-chain-risk-auditor plugin and ask Claude to audit a project's npm dependencies for advisories, abandoned upstreams, and install scripts.",
      "source": "https://github.com/trailofbits/skills"
    },
    {
      "id": "cc-skill-scientific",
      "name": "Scientific Agent Skills",
      "ecosystem": "Claude Code",
      "category": "Data",
      "status": "Stable",
      "description": "MIT-licensed library (K-Dense-AI/scientific-agent-skills) of 160+ validated skills for scientific work across biology, chemistry, medicine, and drug discovery, with access to 100+ scientific databases. Works with Claude Code, Codex, Cursor, Antigravity, and other Agent Skills hosts.",
      "trigger": "`npx skills add K-Dense-AI/scientific-agent-skills` · or `gh skill install K-Dense-AI/scientific-agent-skills`",
      "howto": "Install everything with `npx skills add K-Dense-AI/scientific-agent-skills`, or pick skills with GitHub CLI v2.90.0+: `gh skill install K-Dense-AI/scientific-agent-skills scanpy --agent claude-code`.",
      "example": "Install the scanpy skill and ask Claude Code to load a single-cell RNA-seq dataset, run quality control, and cluster the cells.",
      "source": "https://github.com/K-Dense-AI/scientific-agent-skills"
    },
    {
      "id": "cc-skill-wshobson-agents",
      "name": "Agentic Plugin Marketplace",
      "ecosystem": "Claude Code",
      "category": "Agentic",
      "status": "Stable",
      "description": "MIT-licensed marketplace (wshobson/agents) of 90+ plugins bundling specialist agents, skills, and commands, built for Claude Code and also generated for Codex, Cursor, OpenCode, Antigravity, GitHub Copilot, and Pi.",
      "trigger": "`/plugin marketplace add wshobson/agents` · `/plugin install python-development`",
      "howto": "Add the marketplace with `/plugin marketplace add wshobson/agents`, then install only the plugins you need, such as `/plugin install python-development`. For skills alone, use `gh skill install wshobson/agents` or `npx skills add wshobson/agents --skill python-testing-patterns`.",
      "example": "Install the python-development plugin and Claude Code gains Python-specialist agents and testing-pattern skills for that project.",
      "source": "https://github.com/wshobson/agents"
    },
    {
      "id": "oc-plan-mode",
      "name": "Plan Mode",
      "ecosystem": "OpenCode",
      "category": "Agentic",
      "status": "Stable",
      "description": "A restricted primary agent for planning and analysis. By default, file edits and bash commands require approval; Plan is not strictly read-only.",
      "trigger": "Press Tab, or use the configured switch_agent keybind, to cycle through primary agents and select Plan",
      "example": "Select Plan and ask it to analyze a JWT migration. It proposes an implementation plan; any requested file edit or bash command requires approval. Switch to Build when ready to implement.",
      "source": "https://opencode.ai/docs/agents/#use-plan",
      "howto": "Press Tab, or use the configured `switch_agent` keybind, to cycle through primary agents and select Plan. Plan asks for approval before file edits or bash commands by default; configure those permissions as `deny` if strict read-only behavior is required."
    },
    {
      "id": "oc-undo-redo",
      "name": "Undo / Redo",
      "ecosystem": "OpenCode",
      "category": "Agentic",
      "status": "Stable",
      "description": "Undo removes the latest user message, all subsequent responses, and associated file changes; redo restores a previously undone message. The project must be a Git repository.",
      "trigger": "Type /undo or /redo in the TUI",
      "example": "An unwanted refactor follows the latest prompt → /undo removes that prompt, subsequent responses, and associated file changes → refine the prompt, or use /redo to restore it.",
      "source": "https://opencode.ai/docs/tui/",
      "howto": "In a Git repository, type /undo to remove the latest user message, all subsequent responses, and associated file changes. Type /redo after /undo to restore the undone message and changes. The default keybinds are `ctrl+x u` and `ctrl+x r`."
    },
    {
      "id": "oc-agent-skills",
      "name": "Agent Skills (SKILL.md)",
      "ecosystem": "OpenCode",
      "category": "Agentic",
      "status": "Stable",
      "description": "Reusable SKILL.md instructions discovered from project or global OpenCode, Claude-compatible, and agent-compatible skill directories, then loaded on demand through the native skill tool.",
      "trigger": "Create .opencode/skills/<name>/SKILL.md with required name and description frontmatter; the name must match its directory",
      "example": "A git-release skill appears in the available-skills list → when release work is requested, the agent loads it through the skill tool and follows its instructions.",
      "source": "https://opencode.ai/docs/skills/",
      "howto": "Create `.opencode/skills/<name>/SKILL.md` with required `name` and `description` frontmatter. The lowercase hyphenated name must match its directory. OpenCode also discovers documented global, `.claude/skills/`, and `.agents/skills/` locations; the agent loads a selected skill on demand through the `skill` tool."
    },
    {
      "id": "oc-session-share",
      "name": "Session Share",
      "ecosystem": "OpenCode",
      "category": "Agentic",
      "status": "Stable",
      "description": "Creates a public URL, syncs the session's conversation history to OpenCode's servers, and exposes its messages, responses, and session metadata until it is unshared.",
      "trigger": "Type /share in the TUI",
      "example": "After implementing an endpoint, type /share and place the copied public URL in the PR so reviewers can inspect the conversation; use /unshare when review is complete.",
      "source": "https://opencode.ai/docs/share/",
      "howto": "Type /share to create a public session URL and copy it to the clipboard. Review the conversation for sensitive information before sharing it. Shared history, messages, responses, and session metadata remain accessible until /unshare removes the link and related data."
    },
    {
      "id": "oc-mcp",
      "name": "MCP Server Integration",
      "ecosystem": "OpenCode",
      "category": "API",
      "status": "Stable",
      "description": "Adds local or remote Model Context Protocol servers whose tools become available to the LLM alongside OpenCode's built-in tools.",
      "trigger": "Add a named local or remote server definition under mcp in opencode.json or opencode.jsonc",
      "example": "Configure a Postgres MCP server → ask 'show me users created this week' → agent queries the DB directly through the MCP tool without writing a script",
      "source": "https://opencode.ai/docs/mcp-servers/",
      "howto": "Add `mcp.<name>` to `opencode.json` or `opencode.jsonc`. A local server uses a `local` type and a command array; a remote server uses a `remote` type and a URL. MCP tools then appear alongside built-in tools. Set `enabled` to `false` to disable a server."
    },
    {
      "id": "oc-custom-commands",
      "name": "Custom Commands",
      "ecosystem": "OpenCode",
      "category": "Agentic",
      "status": "Stable",
      "description": "Define custom slash commands for repetitive workflows as markdown files in .opencode/commands/ or in opencode.json.",
      "trigger": "Type /your-command-name in the TUI",
      "example": "Command 'fix-types' defined as 'Find all TypeScript type errors and fix them without changing logic' → user types /fix-types → agent runs the full workflow immediately",
      "source": "https://opencode.ai/docs/commands/",
      "howto": "Create `.opencode/commands/<name>.md` or `~/.config/opencode/commands/<name>.md`; optional frontmatter can set `description`, `agent`, and `model`, while the body is the prompt template. Alternatively define `command.<name>` in `opencode.json`. Invoke it as `/<name>` and use `$ARGUMENTS` or positional arguments."
    },
    {
      "id": "oc-github-action",
      "name": "GitHub Actions Integration",
      "ecosystem": "OpenCode",
      "category": "Agentic",
      "status": "Stable",
      "description": "Trigger OpenCode in CI/CD by commenting /opencode or /oc on any GitHub issue or PR. Supports automatic PR review, issue triage, scheduled runs, and code-line comments.",
      "trigger": "Comment /opencode <task> or /oc <task> on a GitHub issue or PR",
      "example": "Reviewer comments '/opencode add input validation to the form fields in this PR' → agent runs in GitHub Actions → commits the changes → replies with a summary in the PR thread",
      "source": "https://opencode.ai/docs/github/",
      "howto": "From a project in a GitHub repository, run `opencode github install`. The wizard installs the OpenCode GitHub App, creates the workflow, and sets up secrets. For manual setup, install the app, add `.github/workflows/opencode.yml`, and configure the required API-key secrets."
    },
    {
      "id": "oc-custom-agents",
      "name": "Custom Agents",
      "ecosystem": "OpenCode",
      "category": "Agentic",
      "status": "Stable",
      "description": "Defines custom primary or subagents with their own prompt, model, appearance, and permission rules through opencode.json or markdown files.",
      "trigger": "Run opencode agent create · or create .opencode/agents/<name>.md with the desired mode, model, prompt, and permissions",
      "example": "Create a security-reviewer subagent with edit denied and a security-focused prompt → invoke it with @security-reviewer to audit an endpoint without changing files.",
      "source": "https://opencode.ai/docs/agents/",
      "howto": "Run `opencode agent create`, or create `.opencode/agents/<name>.md` project-locally or `~/.config/opencode/agents/<name>.md` globally. Supply the required `description`, choose a primary or subagent mode, and configure the model and permissions as needed."
    },
    {
      "id": "oc-lsp",
      "name": "LSP Integration",
      "ecosystem": "OpenCode",
      "category": "Agentic",
      "status": "Beta",
      "description": "Integrates language servers so OpenCode can use diagnostics as feedback for the agent.",
      "trigger": "Set lsp to true for all built-in servers, or use an lsp object for built-in overrides and custom servers",
      "example": "Enable the appropriate language server → after an edit, OpenCode receives compiler or type diagnostics and uses them as feedback when correcting the code.",
      "source": "https://opencode.ai/docs/lsp/",
      "howto": "Set `lsp` to true in `opencode.json` to enable all built-in LSP servers, or use an `lsp` object for overrides and custom servers. A custom entry uses command and extensions arrays. OpenCode uses resulting diagnostics as agent feedback."
    },
    {
      "id": "oc-plugins",
      "name": "Plugins",
      "ecosystem": "OpenCode",
      "category": "API",
      "status": "Beta",
      "description": "Extends OpenCode through JavaScript or TypeScript plugin functions that hook into events and customize behavior, integrations, or execution.",
      "trigger": "Place a plugin in .opencode/plugins/ or ~/.config/opencode/plugins/ · or add an npm package to the plugin array in opencode.json",
      "example": "A plugin exports a tool.execute.before hook that validates or modifies bash arguments before the built-in tool executes.",
      "source": "https://opencode.ai/docs/plugins/",
      "howto": "Create a JavaScript or TypeScript module in `.opencode/plugins/` or `~/.config/opencode/plugins/`. Export one or more plugin functions that return event hooks such as `tool.execute.before`, or add npm package names to the `plugin` array in `opencode.json`."
    },
    {
      "id": "oc-permissions",
      "name": "Permissions",
      "ecosystem": "OpenCode",
      "category": "Agentic",
      "status": "Stable",
      "description": "Allow, ask, or deny rules for each tool — read, edit, bash, webfetch, external directories, and more — with wildcard command patterns and per-agent overrides.",
      "trigger": "\"permission\" in opencode.json · per agent under agent → NAME → permission",
      "howto": "Set `\"permission\"` in `opencode.json` to `allow`, `ask`, or `deny` globally with `\"*\"`, or per tool. For `bash` and `edit`, use pattern objects where `*` and `?` are wildcards. Control paths outside the project with `external_directory`, and override any rule for a specific agent.",
      "example": "Use `\"bash\": {\"*\": \"ask\", \"git *\": \"allow\", \"rm *\": \"deny\"}` so git commands run freely, deletions are blocked, and everything else asks first.",
      "source": "https://opencode.ai/docs/permissions/"
    },
    {
      "id": "oc-formatters",
      "name": "Formatters",
      "ecosystem": "OpenCode",
      "category": "Code",
      "status": "Stable",
      "description": "Automatic language-specific formatting after OpenCode writes or edits a file, with built-in formatters such as prettier, gofmt, rustfmt, and ruff detected from the project.",
      "trigger": "Enabled automatically when a matching formatter is available · \"formatter\" in opencode.json",
      "howto": "OpenCode picks a formatter by file extension when its command or config is present. Customize it under `\"formatter\"` with `command` (use `$FILE`), `extensions`, and `environment`; disable one with `\"disabled\": true` or all with `\"formatter\": false`.",
      "example": "Set `\"prettier\": {\"command\": [\"npx\", \"prettier\", \"--write\", \"$FILE\"]}` so every TypeScript file OpenCode edits is formatted immediately.",
      "source": "https://opencode.ai/docs/formatters/"
    },
    {
      "id": "cx-plan-mode",
      "name": "Plan Mode",
      "ecosystem": "Codex",
      "category": "Agentic",
      "status": "Stable",
      "description": "Switch the active chat into planning mode so Codex can propose an execution plan before implementation begins.",
      "trigger": "Type /plan, optionally followed by the planning request",
      "example": "User types '/plan Propose a migration plan for this Express service' → Codex enters plan mode and produces an execution plan.",
      "source": "https://developers.openai.com/codex/developer-commands#switch-to-plan-mode-with-plan",
      "howto": "Type /plan and press Enter, optionally adding the request inline. Codex enters plan mode and uses the inline text as the first planning request. /plan is temporarily unavailable while Codex is already working."
    },
    {
      "id": "cx-goal-mode",
      "name": "Goal Mode",
      "ecosystem": "Codex",
      "category": "Agentic",
      "status": "Stable",
      "description": "Give Codex a durable objective with a verifiable stopping condition. Codex can continue across turns and work independently for multiple hours.",
      "trigger": "/goal <objective>",
      "example": "User types '/goal Migrate this service to Fastify. Stop when the contract tests pass and the rollback path is documented.' → Codex works through checkpoints toward the stopping condition.",
      "source": "https://developers.openai.com/codex/use-cases/follow-goals",
      "howto": "Set a durable objective with /goal <objective>. Use /goal to inspect it and /goal pause, /goal resume, or /goal clear to control it. If the command is missing, enable features.goals in config.toml or run codex features enable goals."
    },
    {
      "id": "cx-agent-skills",
      "name": "Agent Skills (SKILL.md)",
      "ecosystem": "Codex",
      "category": "Agentic",
      "status": "Stable",
      "description": "Reusable workflow directories containing a required SKILL.md and optional scripts, references, assets, and metadata. Codex loads full instructions when a skill is selected.",
      "trigger": "Run /skills or type $ to mention a skill in CLI/IDE · or describe a task matching its description",
      "example": "A repository skill documents the release workflow → the user asks Codex to prepare a release → Codex selects and follows the skill.",
      "source": "https://developers.openai.com/codex/skills",
      "howto": "Create `.agents/skills/<name>/SKILL.md` with name and description metadata. Codex scans repository skill directories from the current directory to the repository root; user skills can live in `~/.agents/skills`. In CLI/IDE, invoke a skill explicitly with $ or /skills, or let Codex match its description implicitly."
    },
    {
      "id": "cx-skill-creator",
      "name": "Skill Creator",
      "ecosystem": "Codex",
      "category": "Agentic",
      "status": "Stable",
      "description": "A bundled system skill that asks what a skill should do, when it should trigger, and whether it should remain instruction-only or include scripts.",
      "trigger": "$skill-creator",
      "example": "User invokes $skill-creator → describes a deployment workflow and its triggers → reviews the generated skill.",
      "source": "https://developers.openai.com/codex/skills#create-a-skill",
      "howto": "Invoke $skill-creator and answer its questions about purpose, triggers, and scripts. Review the generated skill and place it in a supported repository or user skill location. Codex detects changes automatically; restart only if the skill does not appear."
    },
    {
      "id": "cx-skill-installer",
      "name": "Skill Installer",
      "ecosystem": "Codex",
      "category": "Agentic",
      "status": "Stable",
      "description": "A bundled system skill for installing curated skills or downloading skills from other repositories into the user's local Codex setup.",
      "trigger": "$skill-installer <skill-name>",
      "example": "User types '$skill-installer linear' → Codex installs the curated Linear skill for local use.",
      "source": "https://developers.openai.com/codex/skills#install-curated-skills-for-local-use",
      "howto": "Run $skill-installer followed by a curated skill name, such as $skill-installer linear, or ask it to download a skill from another repository. Codex detects installed skills automatically; restart only if one does not appear."
    },
    {
      "id": "cx-thread-automations",
      "name": "Thread Automations",
      "ecosystem": "Codex",
      "category": "Agentic",
      "status": "Stable",
      "description": "Heartbeat-style recurring wake-ups attached to the current thread. They preserve thread context and support minute-based intervals or daily and weekly schedules.",
      "trigger": "Ask Codex in the current thread to create an automation with a task and schedule",
      "example": "A thread automation checks a long-running command every few minutes until it finishes, then reports in the same conversation.",
      "source": "https://developers.openai.com/codex/app/automations#thread-automations",
      "howto": "In a regular thread, ask Codex to create a thread automation and specify the task, schedule, reporting rules, and stopping condition. Test the prompt manually first. Manage automations from the Automations pane in the app sidebar."
    },
    {
      "id": "cx-chats",
      "name": "Chats",
      "ecosystem": "Codex",
      "category": "Agentic",
      "status": "Stable",
      "description": "Threads for tasks that do not need a specific project folder or Git repository, including research, triage, planning, and connected-tool workflows.",
      "trigger": "Start a Chat when the task is not tied to a codebase",
      "example": "User starts a Chat to research an API through connected tools without opening a repository.",
      "source": "https://developers.openai.com/codex/app/features#chats",
      "howto": "Start a Chat for research, triage, planning, connected-tool work, or another task that does not require a project folder or Git repository."
    },
    {
      "id": "cx-worktree",
      "name": "Worktree Mode",
      "ecosystem": "Codex",
      "category": "Agentic",
      "status": "Stable",
      "description": "Create a new Git worktree so Codex changes remain isolated from the regular project checkout and independent tasks can run side by side.",
      "trigger": "Choose Worktree when creating a new thread",
      "example": "User runs a risky refactor in a worktree → reviews the isolated diff → uses the app's Git tools as appropriate.",
      "source": "https://developers.openai.com/codex/app/worktrees",
      "howto": "Choose Worktree instead of Local when creating the thread. Codex creates an isolated Git worktree. Review the resulting diff and use the built-in Git tools to stage, revert, commit, push, or create a pull request as needed."
    },
    {
      "id": "cx-mcp",
      "name": "MCP Server Integration",
      "ecosystem": "Codex",
      "category": "API",
      "status": "Stable",
      "description": "Connect external tools and services through Model Context Protocol servers. The Codex app, CLI, and IDE extension use the same MCP configuration.",
      "trigger": "Open the MCP section in app settings · or configure MCP in config.toml",
      "example": "User enables a recommended MCP server → Codex can call that server's tools from supported Codex surfaces.",
      "source": "https://developers.openai.com/codex/mcp",
      "howto": "Open the MCP section in the app settings and enable a recommended server or add a custom server. The app, CLI, and IDE extension use the same MCP configuration stored in `config.toml`."
    },
    {
      "id": "cx-voice-input",
      "name": "Voice Dictation",
      "ecosystem": "Codex",
      "category": "Visual",
      "status": "Stable",
      "description": "Transcribe microphone input into an editable Codex prompt.",
      "trigger": "Hold Ctrl+M while the composer is visible",
      "example": "User holds Ctrl+M and dictates a task → reviews or edits the transcription → sends it to start work.",
      "source": "https://developers.openai.com/codex/app/features#voice-dictation",
      "howto": "With the composer visible, hold Ctrl+M and speak. Review or edit the transcription, then send it to start the task."
    },
    {
      "id": "cx-steering-queuing",
      "name": "Steering & Queuing",
      "ecosystem": "Codex",
      "category": "Agentic",
      "status": "Stable",
      "description": "In the IDE extension, follow-up messages sent during a run can either wait for the next run in queue mode or modify the current run in steer mode.",
      "trigger": "Set chatgpt.followUpQueueMode to queue or steer · use Cmd/Ctrl+Shift+Enter to invert it for one message",
      "example": "With queue as the default, a follow-up waits for the next run → Cmd/Ctrl+Shift+Enter sends one follow-up as steering instead.",
      "source": "https://developers.openai.com/codex/developer-settings#editor-settings-reference",
      "howto": "Set `chatgpt.followUpQueueMode` to `queue` or `steer` in the IDE extension. During a run, send the follow-up normally for the configured behavior, or press Cmd/Ctrl+Shift+Enter to invert it for that message."
    },
    {
      "id": "cx-memories",
      "name": "Memories",
      "ecosystem": "Codex",
      "category": "Memory",
      "status": "Stable",
      "description": "An opt-in local recall layer that can carry stable preferences, recurring workflows, technology choices, project conventions, and known pitfalls from eligible earlier threads into future work.",
      "trigger": "Enable Memories in settings · or set memories = true under [features] in ~/.codex/config.toml",
      "example": "After Memories is enabled, Codex can recall a stable project convention from eligible earlier threads without treating it as mandatory team policy.",
      "source": "https://developers.openai.com/codex/memories",
      "howto": "Enable Memories in Codex settings or `config.toml`. Use /memories to control whether the current thread uses existing memories or contributes future memories. Keep mandatory team rules in AGENTS.md or checked-in documentation; generated memory state lives under `~/.codex/memories/`."
    },
    {
      "id": "cx-agents-md",
      "name": "AGENTS.md Instructions",
      "ecosystem": "Codex",
      "category": "Memory",
      "status": "Stable",
      "description": "Layered instruction files that Codex reads before working — global defaults in the Codex home directory plus AGENTS.md files from the Git root down to the current directory, with closer files taking precedence.",
      "trigger": "~/.codex/AGENTS.md · AGENTS.md in the repository · AGENTS.override.md to replace guidance at a level",
      "howto": "Add personal defaults to `~/.codex/AGENTS.md` and repository rules to `AGENTS.md` at the project root. Codex concatenates one file per directory from root downward, preferring `AGENTS.override.md` over `AGENTS.md`. The combined size is capped by `project_doc_max_bytes` (32 KiB by default).",
      "example": "Put 'Run `make test` before finishing' in the root AGENTS.md and a stricter `AGENTS.override.md` in `services/payments/`, so only that directory gets the extra rules.",
      "source": "https://developers.openai.com/codex/guides/agents-md"
    },
    {
      "id": "cx-exec",
      "name": "Non-interactive Mode (codex exec)",
      "ecosystem": "Codex",
      "category": "Code",
      "status": "Stable",
      "description": "Run Codex from scripts and CI without the interactive TUI — progress streams to stderr and only the final agent message goes to stdout, with optional JSON events and session resume.",
      "trigger": "codex exec \"task\" · codex exec --json · codex exec resume --last",
      "howto": "Run `codex exec \"your task\"` inside a Git repository, or pipe a prompt with `codex exec -`. Add `--json` for newline-delimited JSON events, use `codex exec resume --last` to continue, and pass `--skip-git-repo-check` only when you are sure the environment is safe.",
      "example": "In a CI job, run `codex exec \"summarize failing tests and propose fixes\" > report.md` to capture only the final answer as an artifact.",
      "source": "https://developers.openai.com/codex/noninteractive"
    },
    {
      "id": "cx-hooks",
      "name": "Hooks",
      "ecosystem": "Codex",
      "category": "Integration",
      "status": "Stable",
      "description": "Scripts or MCP tools that run during the agentic loop at events such as SessionStart, PreToolUse, PermissionRequest, PostToolUse, UserPromptSubmit, and Stop — to add context or block, allow, or rewrite tool calls.",
      "trigger": "~/.codex/hooks.json · <repo>/.codex/hooks.json · [hooks] tables in config.toml",
      "howto": "Define hooks in `hooks.json` or inline `[hooks]` tables in `config.toml`, at user level (`~/.codex/`) or in the repository (`.codex/`). Hooks are on by default under the `hooks` feature key (`codex_hooks` is a deprecated alias); set `[features] hooks = false` to turn them off.",
      "example": "Add a PreToolUse hook that blocks any shell command writing outside the repository and explains why to the agent.",
      "source": "https://developers.openai.com/codex/hooks"
    },
    {
      "id": "cx-code-review",
      "name": "GitHub Code Review",
      "ecosystem": "Codex",
      "category": "Code",
      "status": "Stable",
      "description": "Codex reviews GitHub pull requests on request or automatically, flagging only P0 and P1 issues and following repository review rules from AGENTS.md, with an optional deeper security review.",
      "trigger": "@codex review · @codex security review · automatic reviews in Codex settings",
      "howto": "Set up Codex cloud for the repository, enable code review in Codex settings (requires push or admin permission), then comment `@codex review` on a pull request or turn on automatic reviews. Add a `## Code Review Rules` section to AGENTS.md for repository-specific guidance, and reply in the PR to ask Codex to fix what it found.",
      "example": "Comment `@codex review` on a PR; Codex flags a P1 missing authorization check, and a follow-up comment asks it to push the fix to the same PR.",
      "source": "https://developers.openai.com/codex/integrations/github"
    },
    {
      "id": "pi-compaction",
      "name": "Compaction",
      "ecosystem": "Pi",
      "category": "Agentic",
      "status": "Stable",
      "description": "Auto-summarises older context when it approaches the model's window so long sessions stay alive without losing the work, with a structured goal, progress, and file-tracker format the model can pick up from.",
      "trigger": "/compact · auto when contextWindow - reserveTokens is exceeded",
      "howto": "Run /compact [instructions] to summarize older messages manually; configure reserveTokens and keepRecentTokens in ~/.pi/agent/settings.json or <project-dir>/.pi/settings.json.",
      "example": "A long debugging session reaches the configured threshold and compacts older messages into a structured summary while retaining recent context.",
      "source": "https://pi.dev/docs/latest/compaction"
    },
    {
      "id": "pi-extensions",
      "name": "Extensions",
      "ecosystem": "Pi",
      "category": "Code",
      "status": "Stable",
      "description": "TypeScript modules that register custom tools, slash commands, event handlers, and TUI components on the ExtensionAPI, with full access to the session, settings, and provider layer.",
      "trigger": "export default function (pi: ExtensionAPI) { ... } in an extensions/ folder",
      "howto": "Place a TypeScript extension in ~/.pi/agent/extensions/ or .pi/extensions/, then run /reload; use pi -e ./path.ts only for quick tests.",
      "example": "An extension hooks session_before_compact to generate summaries with your own model, replacing the default LLM call and keeping the LLM-agnostic summarization pipeline.",
      "source": "https://pi.dev/docs/latest/extensions"
    },
    {
      "id": "pi-skills",
      "name": "Skills (Agent Skills standard)",
      "ecosystem": "Pi",
      "category": "Agentic",
      "status": "Stable",
      "description": "Self-contained capability packages that follow the Agent Skills spec and load on demand with progressive disclosure, so only the descriptions are always in context and full instructions arrive when matched.",
      "trigger": "Put SKILL.md in ~/.pi/agent/skills/<name>/ or .pi/skills/<name>/ · use --skill <path> for explicit loading",
      "howto": "Put SKILL.md inside a skill directory under ~/.pi/agent/skills/ or the trusted project's .pi/skills/; use repeatable --skill <path> arguments for explicit loading.",
      "example": "A brave-search skill appears in the available-skills list, and the model loads its full SKILL.md only when the task needs a web lookup.",
      "source": "https://pi.dev/docs/latest/skills"
    },
    {
      "id": "pi-prompt-templates",
      "name": "Prompt templates",
      "ecosystem": "Pi",
      "category": "Code",
      "status": "Stable",
      "description": "Reusable markdown prompts that expand from slash commands, parameterised with $1, $2 positional args and $ARGUMENTS for the full input, shipped with the agent or defined in prompts/ directories.",
      "trigger": "/template-name with args · register a .md file under prompts/",
      "howto": "Create a Markdown file such as ~/.pi/agent/prompts/review.md or .pi/prompts/review.md, then invoke it as /review; optionally add description and argument-hint frontmatter.",
      "example": "/review-pr diff expands a saved template that diffs the current branch, scans for anti-patterns, and produces a structured code review every time without re-writing the prompt from scratch.",
      "source": "https://pi.dev/docs/latest/prompt-templates"
    },
    {
      "id": "pi-packages",
      "name": "Pi packages",
      "ecosystem": "Pi",
      "category": "Integration",
      "status": "Stable",
      "description": "Bundle and share extensions, skills, prompt templates, and themes through npm or git so a single install brings the whole capability surface, with optional per-resource filtering.",
      "trigger": "pi install npm:@you/your-pkg · pi install git:github.com/you/repo@v1 · pi install ./path",
      "howto": "Run pi install npm:@foo/bar@1.0.0, or install from a git reference, URL, or local path; add -l when installation should be recorded in .pi/settings.json instead of ~/.pi/agent/settings.json.",
      "example": "pi install npm:@badlogic/pi-brave-search adds the search skill and the matching extension in one shot, pinned to a specific version, and the project auto-installs its missing packages on next startup.",
      "source": "https://pi.dev/docs/latest/packages"
    },
    {
      "id": "pi-sessions",
      "name": "Sessions",
      "ecosystem": "Pi",
      "category": "Memory",
      "status": "Stable",
      "description": "Persistent JSONL sessions with /tree branching, /fork, /clone, named sessions, searchable /resume, and one-click export to HTML or a private GitHub gist with a read-only share link.",
      "trigger": "pi -c · /resume · /tree · /fork · /share · /export",
      "howto": "Run pi -c to continue the most recent session or pi -r to browse previous sessions; use pi --no-session for an unsaved session.",
      "example": "pi -r opens a searchable picker of every past session in the current project, then /share publishes a chosen session as a private GitHub gist and returns a read-only HTML link the team can browse.",
      "source": "https://pi.dev/docs/latest/sessions"
    },
    {
      "id": "pi-multi-provider",
      "name": "Multi-provider",
      "ecosystem": "Pi",
      "category": "Integration",
      "status": "Stable",
      "description": "One CLI for every major model — Anthropic, OpenAI, Google, Groq, DeepSeek, Mistral, Cerebras, plus ChatGPT Plus, Claude Pro, and GitHub Copilot subscriptions through /login.",
      "trigger": "export ANTHROPIC_API_KEY=... · /login · --model <id>",
      "howto": "Run /login and select a provider to configure subscription OAuth or an API key; alternatively export a provider variable such as ANTHROPIC_API_KEY before starting pi, and use /logout to clear stored credentials.",
      "example": "Run /login to authenticate with ChatGPT Plus for OpenAI Codex, then switch to Claude Pro for the next session — no code changes, no swapping CLIs, no rewriting prompts to fit a different harness.",
      "source": "https://pi.dev/docs/latest/providers"
    },
    {
      "id": "pi-custom-providers",
      "name": "Custom providers",
      "ecosystem": "Pi",
      "category": "Integration",
      "status": "Stable",
      "description": "Register your own model API via pi.registerProvider() for corporate proxies, self-hosted deployments, OAuth flows, and non-standard LLM APIs, with full streaming and tool-calling support.",
      "trigger": "pi.registerProvider(\"my-provider\", { baseUrl, apiKey, api, models })",
      "howto": "In an extension factory, call pi.registerProvider(\"my-provider\", { name, baseUrl, apiKey: \"$MY_API_KEY\", api, models }) and register dynamically discovered models there rather than during session_start.",
      "example": "An extension routes Anthropic traffic through a corporate gateway by registering the existing provider with a custom baseUrl and auth headers, so every request leaves the network through the approved path.",
      "source": "https://pi.dev/docs/latest/custom-provider"
    },
    {
      "id": "pi-rpc",
      "name": "RPC & JSON modes",
      "ecosystem": "Pi",
      "category": "API",
      "status": "Stable",
      "description": "Headless integration modes: RPC mode takes JSONL commands on stdin and streams responses and events on stdout, and JSON mode emits every session event as JSON lines, for embedding Pi in IDEs, apps, or custom UIs.",
      "trigger": "pi --mode rpc · pi --mode json",
      "howto": "Start `pi --mode rpc` and send one JSON command per line — for example `prompt`, `steer`, `abort`, `get_state`, `set_model`, `compact`, or `fork` — correlating replies with an optional `id`. Use `pi --mode json` when you only need the event stream.",
      "example": "Build an editor panel that launches `pi --mode rpc`, sends a `prompt` command, and renders `message_update` events as the answer streams in.",
      "source": "https://pi.dev/docs/latest/rpc"
    },
    {
      "id": "pi-sdk",
      "name": "SDK",
      "ecosystem": "Pi",
      "category": "API",
      "status": "Stable",
      "description": "TypeScript SDK for running Pi agent sessions inside your own program, with control over tools, models, thinking levels, extensions, skills, commands, and the system prompt.",
      "trigger": "npm package @earendil-works/pi-coding-agent · createAgentSession()",
      "howto": "Import `createAgentSession`, `ModelRuntime`, and `SessionManager` from `@earendil-works/pi-coding-agent`, create a session, subscribe to events, and call `session.prompt(...)`. Add custom tools with `customTools` or load extensions from disk or inline factories.",
      "example": "Create an in-memory session with `SessionManager.inMemory()`, stream `text_delta` events to stdout, and prompt 'What files are in the current directory?'.",
      "source": "https://pi.dev/docs/latest/sdk"
    },
    {
      "id": "pi-themes",
      "name": "Themes",
      "ecosystem": "Pi",
      "category": "Visual",
      "status": "Stable",
      "description": "Built-in dark and light terminal themes chosen from your terminal background, plus custom JSON themes that hot-reload while you edit them.",
      "trigger": "/settings · \"theme\" in settings.json · --use-theme NAME",
      "howto": "Pick a theme in `/settings` or set `\"theme\"` in `settings.json`; use `--use-theme <name>` for one session. Add custom themes as `~/.pi/agent/themes/*.json` — Pi reloads the active theme automatically when you save it.",
      "example": "Create `~/.pi/agent/themes/solarized.json`, set `\"theme\": \"solarized\"`, and tweak its colors while Pi updates live on each save.",
      "source": "https://pi.dev/docs/latest/themes"
    }
  ]
}
