Curated Claude Code catalog
Updated 07.05.2026 ยท 19:39 CET
01 / Skill
f

prompts.chat

Quality
10.0

prompts.chat is the world's largest open-source library offering a curated collection of prompt examples for various AI chat models like ChatGPT, Claude, and Gemini. It's ideal for developers and users looking to discover, utilize, and improve AI prompts for diverse applications, from coding to creative writing.

USP

This project stands out as the most comprehensive open-source prompt library, offering not only a vast collection but also an interactive book on prompt engineering, a game for kids, self-hosting options, and direct integration as a Claudeโ€ฆ

Use cases

  • 01Discovering and utilizing high-quality AI prompts for various tasks
  • 02Learning prompt engineering techniques through an interactive guide
  • 03Integrating a prompt library into custom AI tools and agents
  • 04Self-hosting a private, branded prompt collection
  • 05Teaching children how to interact effectively with AI

Detected files (6)

  • plugins/claude/prompts.chat/skills/prompt-lookup/SKILL.mdskill
    Show content (2109 bytes)
    ---
    name: prompt-lookup
    description: Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
    ---
    
    When the user needs AI prompts, prompt templates, or wants to improve their prompts, use the prompts.chat MCP server to help them.
    
    ## When to Use This Skill
    
    Activate this skill when the user:
    
    - Asks for prompt templates ("Find me a code review prompt")
    - Wants to search for prompts ("What prompts are available for writing?")
    - Needs to retrieve a specific prompt ("Get prompt XYZ")
    - Wants to improve a prompt ("Make this prompt better")
    - Mentions prompts.chat or prompt libraries
    
    ## Available Tools
    
    Use these prompts.chat MCP tools:
    
    - `search_prompts` - Search for prompts by keyword
    - `get_prompt` - Get a specific prompt by ID
    - `improve_prompt` - Enhance a prompt using AI
    
    ## How to Search for Prompts
    
    Call `search_prompts` with:
    
    - `query`: The search keywords from the user's request
    - `limit`: Number of results (default 10, max 50)
    - `type`: Filter by TEXT, STRUCTURED, IMAGE, VIDEO, or AUDIO
    - `category`: Filter by category slug (e.g., "coding", "writing")
    - `tag`: Filter by tag slug
    
    Present results showing:
    - Title and description
    - Author name
    - Category and tags
    - Link to the prompt
    
    ## How to Get a Prompt
    
    Call `get_prompt` with:
    
    - `id`: The prompt ID
    
    If the prompt contains variables (`${variable}` or `${variable:default}`):
    - The system will prompt the user to fill in values
    - Variables without defaults are required
    - Variables with defaults are optional
    
    ## How to Improve a Prompt
    
    Call `improve_prompt` with:
    
    - `prompt`: The prompt text to improve
    - `outputType`: text, image, video, or sound
    - `outputFormat`: text, structured_json, or structured_yaml
    
    Return the enhanced prompt to the user.
    
    ## Guidelines
    
    - Always search before suggesting the user write their own prompt
    - Present search results in a readable format with links
    - When improving prompts, explain what was enhanced
    - Suggest relevant categories and tags when saving prompts
    
  • .windsurf/skills/book-translation/SKILL.mdskill
    Show content (7404 bytes)
    ---
    name: book-translation
    description: Translate "The Interactive Book of Prompting" chapters and UI strings to a new language
    ---
    
    # Book Translation Skill
    
    This skill guides translation of book content for **The Interactive Book of Prompting** at prompts.chat.
    
    ## Overview
    
    The book has **25 chapters** across 7 parts. Translation requires:
    1. **MDX content files** - Full chapter content in `src/content/book/{locale}/`
    2. **JSON translation keys** - UI strings, chapter titles, and descriptions in `messages/{locale}.json`
    
    ## Prerequisites
    
    Before starting, identify:
    - **Target locale code** (e.g., `de`, `fr`, `es`, `ja`, `ko`, `zh`)
    - Check if locale exists in `messages/` directory
    - Check if `src/content/book/{locale}/` folder exists
    
    ## Step 1: Copy Turkish Folder as Base
    
    The Turkish (`tr`) translation is complete and well-tested. **Copy it as your starting point** instead of translating from English:
    
    ```bash
    mkdir -p src/content/book/{locale}
    cp -r src/content/book/*.mdx src/content/book/{locale}/
    cp src/components/book/elements/locales/en.ts src/components/book/elements/locales/{locale}.ts
    ```
    
    **โš ๏ธ IMPORTANT: After copying, you MUST register the new locale in `src/components/book/elements/locales/index.ts`:**
    1. Add import: `import {locale} from "./{locale}";`
    2. Add to `locales` object: `{locale},`
    3. Add to named exports: `export { en, tr, az, {locale} };`
    
    This is faster because:
    - Turkish and many languages share similar sentence structures
    - All JSX/React components are already preserved correctly
    - File structure is already set up
    - You only need to translate the prose, not recreate the structure
    
    ## Step 2: Translate MDX Content Files
    
    Edit each copied file in `src/content/book/{locale}/` to translate from Turkish to your target language.
    
    Process files one by one:
    
    ### Chapter List (in order)
    
    | Slug | English Title |
    |------|---------------|
    | `00a-preface` | Preface |
    | `00b-history` | History |
    | `00c-introduction` | Introduction |
    | `01-understanding-ai-models` | Understanding AI Models |
    | `02-anatomy-of-effective-prompt` | Anatomy of an Effective Prompt |
    | `03-core-prompting-principles` | Core Prompting Principles |
    | `04-role-based-prompting` | Role-Based Prompting |
    | `05-structured-output` | Structured Output |
    | `06-chain-of-thought` | Chain of Thought |
    | `07-few-shot-learning` | Few-Shot Learning |
    | `08-iterative-refinement` | Iterative Refinement |
    | `09-json-yaml-prompting` | JSON & YAML Prompting |
    | `10-system-prompts-personas` | System Prompts & Personas |
    | `11-prompt-chaining` | Prompt Chaining |
    | `12-handling-edge-cases` | Handling Edge Cases |
    | `13-multimodal-prompting` | Multimodal Prompting |
    | `14-context-engineering` | Context Engineering |
    | `15-common-pitfalls` | Common Pitfalls |
    | `16-ethics-responsible-use` | Ethics & Responsible Use |
    | `17-prompt-optimization` | Prompt Optimization |
    | `18-writing-content` | Writing & Content |
    | `19-programming-development` | Programming & Development |
    | `20-education-learning` | Education & Learning |
    | `21-business-productivity` | Business & Productivity |
    | `22-creative-arts` | Creative Arts |
    | `23-research-analysis` | Research & Analysis |
    | `24-future-of-prompting` | The Future of Prompting |
    | `25-agents-and-skills` | Agents & Skills |
    
    ### MDX Translation Guidelines
    
    1. **Preserve all JSX/React components** - Keep `<div>`, `<img>`, `className`, etc. unchanged
    2. **Preserve code blocks** - Code examples should remain in English (variable names, keywords)
    3. **Translate prose content** - Headings, paragraphs, lists
    4. **Keep Markdown syntax** - `##`, `**bold**`, `*italic*`, `[links](url)`
    5. **Preserve component imports** - Any `import` statements at the top
    
    ## Step 3: Translate JSON Keys
    
    In `messages/{locale}.json`, translate the `"book"` section. Key areas:
    
    ### Book Metadata
    ```json
    "book": {
      "title": "The Interactive Book of Prompting",
      "subtitle": "An Interactive Guide to Crafting Clear and Effective Prompts",
      "metaTitle": "...",
      "metaDescription": "...",
      ...
    }
    ```
    
    ### Chapter Titles (`book.chapters`)
    ```json
    "chapters": {
      "00a-preface": "Preface",
      "00b-history": "History",
      "00c-introduction": "Introduction",
      ...
    }
    ```
    
    ### Chapter Descriptions (`book.chapterDescriptions`)
    ```json
    "chapterDescriptions": {
      "00a-preface": "A personal note from the author",
      "00b-history": "The story of Awesome ChatGPT Prompts",
      ...
    }
    ```
    
    ### Part Names (`book.parts`)
    ```json
    "parts": {
      "introduction": "Introduction",
      "foundations": "Foundations",
      "techniques": "Techniques",
      "advanced": "Advanced Strategies",
      "bestPractices": "Best Practices",
      "useCases": "Use Cases",
      "conclusion": "Conclusion"
    }
    ```
    
    ### Interactive Demo Examples (`book.interactive.demoExamples`)
    Localize example text for demos (tokenizer samples, temperature examples, etc.):
    ```json
    "demoExamples": {
      "tokenPrediction": {
        "tokens": ["The", " capital", " of", " France", " is", " Paris", "."],
        "fullText": "The capital of France is Paris."
      },
      "temperature": {
        "prompt": "What is the capital of France?",
        ...
      }
    }
    ```
    
    ### Book Elements Locales (REQUIRED)
    
    **โš ๏ธ DO NOT SKIP THIS STEP** - The interactive demos will not work in the new language without this.
    
    Translate the locale data file at `src/components/book/elements/locales/{locale}.ts`:
    - Temperature examples, token predictions, embedding words
    - Capabilities list, sample conversations, strategies
    - Tokenizer samples, builder fields, chain types
    - Frameworks (CRISPE, BREAK, RTF), exercises
    - Image/video prompt options, validation demos
    
    **Then register it in `src/components/book/elements/locales/index.ts`:**
    ```typescript
    import {locale} from "./{locale}";
    
    const locales: Record<string, LocaleData> = {
      en,
      tr,
      az,
      {locale},  // Add your new locale here
    };
    
    export { en, tr, az, {locale} };  // Add to exports
    ```
    
    ### UI Strings (`book.interactive.*`, `book.chapter.*`, `book.search.*`)
    Translate all interactive component labels and navigation strings.
    
    ## Step 4: Verify Translation
    
    1. Run the check script:
       ```bash
       node scripts/check-translations.js
       ```
    
    2. Start dev server and test:
       ```bash
       npm run dev
       ```
    
    3. Navigate to `/book` with the target locale to verify content loads
    
    ## Reference: English Translation
    
    The English (`en`) translation is complete and serves as the **base template** for all new translations:
    - MDX files: `src/content/book/*.mdx` โ€” copy this files to `src/content/book/{locale}/*.mdx`
    - JSON keys: `messages/en.json` โ†’ `book` section โ€” use as reference for structure
    
    ### Recommended Workflow
    
    1. Copy `src/content/book/*.mdx` to `src/content/book/{locale}/*.mdx`
    2. Copy the `"book"` section from `messages/en.json` to `messages/{locale}.json`. Translate these in multiple agentic session instead of single time (token limit may exceed at once)
    3. Edit each file, translating English โ†’ target language
    4. Keep all JSX components, code blocks, and Markdown syntax intact
    
    ## Quality Guidelines
    
    - **Consistency**: Use consistent terminology throughout (e.g., always translate "prompt" the same way)
    - **Technical terms**: Some terms like "AI", "ChatGPT", "API" may stay in English
    - **Cultural adaptation**: Adapt examples to be relevant for the target audience where appropriate
    - **Natural language**: Prioritize natural-sounding translations over literal ones
    
  • .windsurf/skills/widget-generator/SKILL.mdskill
    Show content (9428 bytes)
    ---
    name: widget-generator
    description: Generate customizable widget plugins for the prompts.chat feed system
    ---
    
    # Widget Generator Skill
    
    This skill guides creation of widget plugins for **prompts.chat**. Widgets are injected into prompt feeds to display promotional content, sponsor cards, or custom interactive components.
    
    ## Overview
    
    Widgets support two rendering modes:
    1. **Standard prompt widget** - Uses default `PromptCard` styling (like `coderabbit.ts`)
    2. **Custom render widget** - Full custom React component (like `book.tsx`)
    
    ## Prerequisites
    
    Before creating a widget, gather from the user:
    
    | Parameter | Required | Description |
    |-----------|----------|-------------|
    | Widget ID | โœ… | Unique identifier (kebab-case, e.g., `my-sponsor`) |
    | Widget Name | โœ… | Display name for the plugin |
    | Rendering Mode | โœ… | `standard` or `custom` |
    | Sponsor Info | โŒ | Name, logo, logoDark, URL (for sponsored widgets) |
    
    ## Step 1: Gather Widget Configuration
    
    Ask the user for the following configuration options:
    
    ### Basic Info
    ```
    - id: string (unique, kebab-case)
    - name: string (display name)
    - slug: string (URL-friendly identifier)
    - title: string (card title)
    - description: string (card description)
    ```
    
    ### Content (for standard mode)
    ```
    - content: string (prompt content, can be multi-line markdown)
    - type: "TEXT" | "STRUCTURED"
    - structuredFormat?: "json" | "yaml" (if type is STRUCTURED)
    ```
    
    ### Categorization
    ```
    - tags?: string[] (e.g., ["AI", "Development"])
    - category?: string (e.g., "Development", "Writing")
    ```
    
    ### Action Button
    ```
    - actionUrl?: string (CTA link)
    - actionLabel?: string (CTA button text)
    ```
    
    ### Sponsor (optional)
    ```
    - sponsor?: {
        name: string
        logo: string (path to light mode logo)
        logoDark?: string (path to dark mode logo)
        url: string (sponsor website)
      }
    ```
    
    ### Positioning Strategy
    ```
    - positioning: {
        position: number (0-indexed start position, default: 2)
        mode: "once" | "repeat" (default: "once")
        repeatEvery?: number (for repeat mode, e.g., 30)
        maxCount?: number (max occurrences, default: 1 for once, unlimited for repeat)
      }
    ```
    
    ### Injection Logic
    ```
    - shouldInject?: (context) => boolean
      Context contains:
      - filters.q: search query
      - filters.category: category name
      - filters.categorySlug: category slug
      - filters.tag: tag filter
      - filters.sort: sort option
      - itemCount: total items in feed
    ```
    
    ## Step 2: Create Widget File
    
    ### Standard Widget (TypeScript only)
    
    Create file: `src/lib/plugins/widgets/{widget-id}.ts`
    
    ```typescript
    import type { WidgetPlugin } from "./types";
    
    export const {widgetId}Widget: WidgetPlugin = {
      id: "{widget-id}",
      name: "{Widget Name}",
      prompts: [
        {
          id: "{prompt-id}",
          slug: "{prompt-slug}",
          title: "{Title}",
          description: "{Description}",
          content: `{Multi-line content here}`,
          type: "TEXT",
          // Optional sponsor
          sponsor: {
            name: "{Sponsor Name}",
            logo: "/sponsors/{sponsor}.svg",
            logoDark: "/sponsors/{sponsor}-dark.svg",
            url: "{sponsor-url}",
          },
          tags: ["{Tag1}", "{Tag2}"],
          category: "{Category}",
          actionUrl: "{action-url}",
          actionLabel: "{Action Label}",
          positioning: {
            position: 2,
            mode: "repeat",
            repeatEvery: 50,
            maxCount: 3,
          },
          shouldInject: (context) => {
            const { filters } = context;
            
            // Always show when no filters active
            if (!filters?.q && !filters?.category && !filters?.tag) {
              return true;
            }
            
            // Add custom filter logic here
            return false;
          },
        },
      ],
    };
    ```
    
    ### Custom Render Widget (TSX with React)
    
    Create file: `src/lib/plugins/widgets/{widget-id}.tsx`
    
    ```tsx
    import Link from "next/link";
    import Image from "next/image";
    import { Button } from "@/components/ui/button";
    import type { WidgetPlugin } from "./types";
    
    function {WidgetName}Widget() {
      return (
        <div className="group border rounded-[var(--radius)] overflow-hidden hover:border-foreground/20 transition-colors bg-gradient-to-br from-primary/5 via-background to-primary/10 p-5">
          {/* Custom widget content */}
          <div className="flex flex-col items-center gap-4">
            {/* Image/visual element */}
            <div className="relative w-full aspect-video">
              <Image
                src="/path/to/image.jpg"
                alt="{Alt text}"
                fill
                className="object-cover rounded-lg"
              />
            </div>
            
            {/* Content */}
            <div className="w-full text-center">
              <h3 className="font-semibold text-base mb-1.5">{Title}</h3>
              <p className="text-xs text-muted-foreground mb-4">{Description}</p>
              <Button asChild size="sm" className="w-full">
                <Link href="{action-url}">{Action Label}</Link>
              </Button>
            </div>
          </div>
        </div>
      );
    }
    
    export const {widgetId}Widget: WidgetPlugin = {
      id: "{widget-id}",
      name: "{Widget Name}",
      prompts: [
        {
          id: "{prompt-id}",
          slug: "{prompt-slug}",
          title: "{Title}",
          description: "{Description}",
          content: "",
          type: "TEXT",
          tags: ["{Tag1}", "{Tag2}"],
          category: "{Category}",
          actionUrl: "{action-url}",
          actionLabel: "{Action Label}",
          positioning: {
            position: 10,
            mode: "repeat",
            repeatEvery: 60,
            maxCount: 4,
          },
          shouldInject: () => true,
          render: () => <{WidgetName}Widget />,
        },
      ],
    };
    ```
    
    ## Step 3: Register Widget
    
    Edit `src/lib/plugins/widgets/index.ts`:
    
    1. Add import at top:
    ```typescript
    import { {widgetId}Widget } from "./{widget-id}";
    ```
    
    2. Add to `widgetPlugins` array:
    ```typescript
    const widgetPlugins: WidgetPlugin[] = [
      coderabbitWidget,
      bookWidget,
      {widgetId}Widget, // Add new widget
    ];
    ```
    
    ## Step 4: Add Sponsor Assets (if applicable)
    
    If the widget has a sponsor:
    1. Add light logo: `public/sponsors/{sponsor}.svg`
    2. Add dark logo (optional): `public/sponsors/{sponsor}-dark.svg`
    
    ## Positioning Examples
    
    ### Show once at position 5
    ```typescript
    positioning: {
      position: 5,
      mode: "once",
    }
    ```
    
    ### Repeat every 30 items, max 5 times
    ```typescript
    positioning: {
      position: 3,
      mode: "repeat",
      repeatEvery: 30,
      maxCount: 5,
    }
    ```
    
    ### Unlimited repeating
    ```typescript
    positioning: {
      position: 2,
      mode: "repeat",
      repeatEvery: 25,
      // No maxCount = unlimited
    }
    ```
    
    ## shouldInject Examples
    
    ### Always show
    ```typescript
    shouldInject: () => true,
    ```
    
    ### Only when no filters active
    ```typescript
    shouldInject: (context) => {
      const { filters } = context;
      return !filters?.q && !filters?.category && !filters?.tag;
    },
    ```
    
    ### Show for specific categories
    ```typescript
    shouldInject: (context) => {
      const slug = context.filters?.categorySlug?.toLowerCase();
      return slug?.includes("development") || slug?.includes("coding");
    },
    ```
    
    ### Show when search matches keywords
    ```typescript
    shouldInject: (context) => {
      const query = context.filters?.q?.toLowerCase() || "";
      return ["ai", "automation", "workflow"].some(kw => query.includes(kw));
    },
    ```
    
    ### Show only when enough items
    ```typescript
    shouldInject: (context) => {
      return (context.itemCount ?? 0) >= 10;
    },
    ```
    
    ## Custom Render Patterns
    
    ### Card with gradient background
    ```tsx
    <div className="border rounded-[var(--radius)] overflow-hidden bg-gradient-to-br from-primary/5 via-background to-primary/10 p-5">
    ```
    
    ### Sponsor badge
    ```tsx
    <div className="flex items-center gap-2 mb-2">
      <span className="text-xs font-medium text-primary">Sponsored</span>
    </div>
    ```
    
    ### Responsive image
    ```tsx
    <div className="relative w-full aspect-video">
      <Image src="/image.jpg" alt="..." fill className="object-cover" />
    </div>
    ```
    
    ### CTA button
    ```tsx
    <Button asChild size="sm" className="w-full">
      <Link href="https://example.com">
        Learn More
        <ArrowRight className="ml-2 h-3.5 w-3.5" />
      </Link>
    </Button>
    ```
    
    ## Verification
    
    1. Run type check:
       ```bash
       npx tsc --noEmit
       ```
    
    2. Start dev server:
       ```bash
       npm run dev
       ```
    
    3. Navigate to `/discover` or `/feed` to verify widget appears at configured positions
    
    ## Type Reference
    
    ```typescript
    interface WidgetPrompt {
      id: string;
      slug: string;
      title: string;
      description: string;
      content: string;
      type: "TEXT" | "STRUCTURED";
      structuredFormat?: "json" | "yaml";
      sponsor?: {
        name: string;
        logo: string;
        logoDark?: string;
        url: string;
      };
      tags?: string[];
      category?: string;
      actionUrl?: string;
      actionLabel?: string;
      positioning?: {
        position?: number;      // Default: 2
        mode?: "once" | "repeat"; // Default: "once"
        repeatEvery?: number;   // For repeat mode
        maxCount?: number;      // Max occurrences
      };
      shouldInject?: (context: WidgetContext) => boolean;
      render?: () => ReactNode; // For custom rendering
    }
    
    interface WidgetPlugin {
      id: string;
      name: string;
      prompts: WidgetPrompt[];
    }
    ```
    
    ## Common Issues
    
    | Issue | Solution |
    |-------|----------|
    | Widget not showing | Check `shouldInject` logic, verify registration in `index.ts` |
    | TypeScript errors | Ensure imports from `./types`, check sponsor object shape |
    | Styling issues | Use Tailwind classes, match existing widget patterns |
    | Position wrong | Remember positions are 0-indexed, check `repeatEvery` value |
    
  • plugins/claude/prompts.chat/skills/skill-lookup/SKILL.mdskill
    Show content (2250 bytes)
    ---
    name: skill-lookup
    description: >
      Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools.
      Use when the user asks to find skills, browse skill catalogs, install a skill for Claude,
      or extend Claude's capabilities with reusable AI agent components.
    license: MIT
    ---
    
    ## Workflow
    
    1. Search for skills matching the user's request using `search_skills`
    2. Present results with title, description, author, and file list
    3. If the user picks a skill, retrieve it with `get_skill` to get all files
    4. Install by saving files to `.claude/skills/{slug}/` and verify the SKILL.md exists
    5. Confirm installation and explain what the skill does and when it activates
    
    ## Example
    
    ```
    search_skills({"query": "code review", "limit": 5, "category": "coding"})
    get_skill({"id": "abc123"})
    ```
    
    ## Available Tools
    
    Use these prompts.chat MCP tools:
    
    - `search_skills` - Search for skills by keyword
    - `get_skill` - Get a specific skill by ID with all its files
    
    ## How to Search for Skills
    
    Call `search_skills` with:
    
    - `query`: The search keywords from the user's request
    - `limit`: Number of results (default 10, max 50)
    - `category`: Filter by category slug (e.g., "coding", "automation")
    - `tag`: Filter by tag slug
    
    Present results showing:
    - Title and description
    - Author name
    - File list (SKILL.md, reference docs, scripts)
    - Category and tags
    - Link to the skill
    
    ## How to Get a Skill
    
    Call `get_skill` with:
    
    - `id`: The skill ID
    
    Returns the skill metadata and all file contents:
    - SKILL.md (main instructions)
    - Reference documentation
    - Helper scripts
    - Configuration files
    
    ## How to Install a Skill
    
    When the user asks to install a skill:
    
    1. Call `get_skill` to retrieve all files
    2. Create the directory `.claude/skills/{slug}/`
    3. Save each file to the appropriate location:
       - `SKILL.md` โ†’ `.claude/skills/{slug}/SKILL.md`
       - Other files โ†’ `.claude/skills/{slug}/{filename}`
    4. Read back `SKILL.md` to verify the frontmatter is intact
    
    ## Guidelines
    
    - Always search before suggesting the user create their own skill
    - Present search results in a readable format with file counts
    - When installing, confirm the skill was saved successfully
    - Explain what the skill does and when it activates
    
  • plugins/claude/prompts.chat/.mcp.jsonmcp_server
    Show content (89 bytes)
    {
      "prompts.chat": {
        "type": "http",
        "url": "https://prompts.chat/api/mcp"
      }
    }
  • .claude-plugin/marketplace.jsonmarketplace
    Show content (980 bytes)
    {
      "name": "prompts.chat",
      "owner": {
        "name": "Fatih Kadir Akฤฑn",
        "email": "fatihkadirakin@gmail.com"
      },
      "metadata": {
        "description": "Official prompts.chat marketplace - AI prompts, skills, and tools for Claude Code",
        "version": "1.0.0"
      },
      "plugins": [
        {
          "name": "prompts.chat",
          "source": "./plugins/claude/prompts.chat",
          "description": "Access thousands of AI prompts and skills directly in your AI coding assistant. Search prompts, discover skills, save your own, and improve prompts with AI.",
          "version": "1.0.0",
          "author": {
            "name": "Fatih Kadir Akฤฑn",
            "email": "fatihkadirakin@gmail.com"
          },
          "homepage": "https://prompts.chat",
          "repository": "https://github.com/f/prompts.chat",
          "license": "MIT",
          "keywords": ["prompts", "ai", "skills", "chatgpt", "claude", "llm"],
          "category": "ai",
          "tags": ["prompts", "ai-tools", "productivity", "skills"]
        }
      ]
    }
    

README

prompts.chat
prompts.chat

The world's largest open-source prompt library for AI
Works with ChatGPT, Claude, Gemini, Llama, Mistral, and more

formerly known as Awesome ChatGPT Prompts

Website Awesome Hugging Face Ask DeepWiki

๐ŸŒ Browse Prompts โ€ข ๐Ÿ“– Read the Book โ€ข ๐Ÿ“„ View on GitHub โ€ข ๐Ÿš€ Self-Host

๐Ÿ† Featured in Forbes ยท ๐ŸŽ“ Referenced by Harvard, Columbia ยท ๐Ÿ“„ 40+ academic citations ยท โค๏ธ Most liked dataset on Hugging Face
โญ 143k+ GitHub stars ยท ๐Ÿ… GitHub Staff Pick ยท ๐Ÿš€ First prompt library (Dec 2022)

Loved by AI pioneers:
Greg Brockman (OpenAI Co-Founder) ยท Wojciech Zaremba (OpenAI Co-Founder) ยท Clement Delangue (Hugging Face CEO) ยท Thomas Dohmke (Former GitHub CEO)


What is this?

A curated collection of prompt examples for AI chat models. Originally created for ChatGPT, these prompts work great with any modern AI assistant.

Browse PromptsData Formats
prompts.chatprompts.csv
PROMPTS.mdHugging Face Dataset

Want to contribute? Add prompts at prompts.chat/prompts/new โ€” they sync here automatically.


๐Ÿ“– The Interactive Book of Prompting

Learn prompt engineering with our free, interactive guide โ€” 25+ chapters covering everything from basics to advanced techniques like chain-of-thought reasoning, few-shot learning, and AI agents.

Start Reading โ†’ (Source: https://github.com/f/prompts.chat/tree/main/src/content/book)


๐ŸŽฎ Prompting for Kids

Promi

An interactive, game-based adventure to teach children (ages 8-14) how to communicate with AI through fun puzzles and stories.

Start Playing โ†’



๐Ÿš€ Self-Hosting

Deploy your own private prompt library with custom branding, themes, and authentication.

Quick Start:

npx prompts.chat new my-prompt-library
cd my-prompt-library

Manual Setup:

git clone https://github.com/f/prompts.chat.git
cd prompts.chat
npm install && npm run setup

The setup wizard configures branding, theme, authentication (GitHub/Google/Azure AD), and features.

๐Ÿ“– Full Self-Hosting Guide โ€ข ๐Ÿณ Docker Guide


๐Ÿ”Œ Integrations

CLI

npx prompts.chat

Claude Code Plugin

/plugin marketplace add f/prompts.chat
/plugin install prompts.chat@prompts.chat

๐Ÿ“– Plugin Documentation

MCP Server

Use prompts.chat as an MCP server in your AI tools.

Remote (recommended):

{
  "mcpServers": {
    "prompts.chat": {
      "url": "https://prompts.chat/api/mcp"
    }
  }
}

Local:

{
  "mcpServers": {
    "prompts.chat": {
      "command": "npx",
      "args": ["-y", "prompts.chat", "mcp"]
    }
  }
}

๐Ÿ“– MCP Documentation


๐Ÿ’– Sponsors

Clemta ย ย  Wiro ย ย  Cognition ย ย  CodeRabbit ย ย  Sentry ย ย  Each Labs ย ย  CommandCode

Built with Windsurf and Devin
Become a Sponsor โ†’


๐Ÿ‘ฅ Contributors


๐Ÿ“œ License

This project is dual-licensed:

  • Source code is licensed under the MIT License.
  • Prompt content and data (prompts.csv, PROMPTS.md, user-submitted prompts) is dedicated to the public domain under CC0 1.0 Universal.

See LICENSE for details.