> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/botpress/botpress/llms.txt
> Use this file to discover all available pages before exploring further.

# Welcome to Botpress

> Build and deploy AI-powered chatbots and agents with the open-source Botpress framework

<div className="relative overflow-hidden dark:bg-[#0f1117] bg-white py-20">
  <div className="max-w-6xl mx-auto px-6 lg:px-8">
    <div className="grid grid-cols-1 lg:grid-cols-12 gap-12 items-center">
      <div className="lg:col-span-7">
        <h1 className="text-4xl sm:text-5xl lg:text-6xl font-bold dark:text-white text-gray-900 mb-6">
          Build AI agents and chatbots at lightning speed
        </h1>

        <p className="text-lg sm:text-xl dark:text-gray-400 text-gray-600 mb-8 max-w-2xl">
          Botpress is the open-source platform for building next-generation chatbots and AI agents powered by GPT, Claude, and other LLMs. Get your bot from idea to production in minutes with our TypeScript SDK and 67+ pre-built integrations.
        </p>

        <div className="flex flex-wrap gap-4">
          <a href="/quickstart" className="inline-flex items-center px-6 py-3 rounded-lg font-semibold text-white transition-all" style={{ backgroundColor: '#45c455' }} onMouseOver={(e) => e.currentTarget.style.backgroundColor = '#3ab348'} onMouseOut={(e) => e.currentTarget.style.backgroundColor = '#45c455'}>
            Get started

            <svg className="ml-2 w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
              <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 7l5 5m0 0l-5 5m5-5H6" />
            </svg>
          </a>

          <a href="/sdk/introduction" className="inline-flex items-center px-6 py-3 rounded-lg font-semibold dark:text-white text-gray-900 dark:bg-white/10 bg-gray-100 dark:border-white/20 border border-gray-200 dark:hover:bg-white/20 hover:bg-gray-200 transition-all">
            Explore SDK
          </a>

          <a href="https://github.com/botpress/botpress" target="_blank" rel="noopener noreferrer" className="inline-flex items-center px-6 py-3 rounded-lg font-semibold dark:text-white text-gray-900 dark:bg-white/10 bg-gray-100 dark:border-white/20 border border-gray-200 dark:hover:bg-white/20 hover:bg-gray-200 transition-all">
            <svg className="mr-2 w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
              <path fillRule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clipRule="evenodd" />
            </svg>

            View on GitHub
          </a>
        </div>
      </div>

      <div className="lg:col-span-5">
        <div className="relative">
          <div className="absolute inset-0 bg-gradient-to-r from-[#45c455] to-[#a4e0ac] rounded-2xl blur-3xl opacity-20" />

          <div className="relative dark:bg-[#1a1d27] bg-gray-50 rounded-2xl p-6 dark:border-[#27272a] border border-gray-200">
            <div className="flex items-center gap-2 mb-4">
              <div className="w-3 h-3 rounded-full bg-red-500" />

              <div className="w-3 h-3 rounded-full bg-yellow-500" />

              <div className="w-3 h-3 rounded-full bg-green-500" />
            </div>

            <pre className="text-sm dark:text-gray-300 text-gray-700">
              <code>
                {`import { Bot } from '@botpress/sdk'

                                const bot = new Bot({
                                name: 'My AI Assistant',
                                integrations: ['openai', 'slack']
                                })

                                bot.message(async ({ message, client }) => {
                                await client.createMessage({
                                  conversationId: message.conversationId,
                                  text: 'Hello! How can I help?'
                                })
                                })

                                bot.deploy()`}
              </code>
            </pre>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

<div className="mt-16 mb-16 max-w-5xl mx-auto px-6">
  <h2 className="text-2xl sm:text-3xl font-semibold dark:text-white text-gray-900 mb-4">
    Quick start
  </h2>

  <p className="text-base dark:text-gray-400 text-gray-600 mb-8">
    Get your first bot running in under 5 minutes
  </p>

  <Steps>
    <Step title="Install the Botpress CLI">
      Install the CLI globally using your preferred package manager:

      <CodeGroup>
        ```bash npm theme={null}
        npm install -g @botpress/cli
        ```

        ```bash yarn theme={null}
        yarn global add @botpress/cli
        ```

        ```bash pnpm theme={null}
        pnpm install -g @botpress/cli
        ```
      </CodeGroup>
    </Step>

    <Step title="Initialize a new bot project">
      Create a new bot from a template:

      ```bash theme={null}
      bp init
      ```

      <Info>
        The CLI will prompt you to choose between creating a bot, integration, or plugin. Select **bot** to get started.
      </Info>
    </Step>

    <Step title="Run your bot in development mode">
      Start the development server to test your bot locally:

      ```bash theme={null}
      bp dev
      ```

      Your bot is now running locally with hot-reload enabled. Any changes you make to the code will automatically update.
    </Step>

    <Step title="Deploy to Botpress Cloud">
      When you're ready to deploy, authenticate and push your bot to the cloud:

      ```bash theme={null}
      bp login
      bp deploy
      ```

      <Note>
        You'll need a free Botpress Cloud account. Sign up at [app.botpress.cloud](https://app.botpress.cloud) if you haven't already.
      </Note>
    </Step>
  </Steps>
</div>

<div className="mt-16 mb-16 max-w-5xl mx-auto px-6">
  <h2 className="text-2xl sm:text-3xl font-semibold dark:text-white text-gray-900 mb-4">
    Explore by topic
  </h2>

  <p className="text-base dark:text-gray-400 text-gray-600 mb-8">
    Jump into the documentation that matters most to you
  </p>

  <CardGroup cols={2}>
    <Card title="Core concepts" icon="book-open" href="/concepts/architecture">
      Understand the architecture and fundamental concepts behind Botpress
    </Card>

    <Card title="Build bots" icon="robot" href="/bots/creating-bots">
      Learn how to create and configure bots using the SDK
    </Card>

    <Card title="Create integrations" icon="plug" href="/integrations/overview">
      Build custom integrations to connect your bots with external services
    </Card>

    <Card title="CLI reference" icon="terminal" href="/cli/overview">
      Complete reference for all Botpress CLI commands
    </Card>

    <Card title="SDK reference" icon="code" href="/sdk/introduction">
      Explore the TypeScript SDK API documentation
    </Card>

    <Card title="Integrations hub" icon="grid" href="/integrations-hub/overview">
      Browse 67+ pre-built integrations for Slack, Discord, OpenAI, and more
    </Card>
  </CardGroup>
</div>

<div className="mt-16 mb-16 max-w-5xl mx-auto px-6">
  <h2 className="text-2xl sm:text-3xl font-semibold dark:text-white text-gray-900 mb-4">
    Key features
  </h2>

  <p className="text-base dark:text-gray-400 text-gray-600 mb-8">
    Everything you need to build production-ready AI agents
  </p>

  <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
    <div className="dark:bg-[#1a1d27] bg-gray-50 rounded-xl p-6 dark:border-[#27272a] border border-gray-200">
      <div className="w-12 h-12 rounded-lg mb-4 flex items-center justify-center" style={{ backgroundColor: 'rgba(69, 196, 85, 0.1)' }}>
        <svg className="w-6 h-6" style={{ color: '#45c455' }} fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
        </svg>
      </div>

      <h3 className="text-lg font-semibold dark:text-white text-gray-900 mb-2">LLM-powered</h3>

      <p className="dark:text-gray-400 text-gray-600">
        Native support for GPT-4, Claude, and other language models with streaming responses and function calling
      </p>
    </div>

    <div className="dark:bg-[#1a1d27] bg-gray-50 rounded-xl p-6 dark:border-[#27272a] border border-gray-200">
      <div className="w-12 h-12 rounded-lg mb-4 flex items-center justify-center" style={{ backgroundColor: 'rgba(69, 196, 85, 0.1)' }}>
        <svg className="w-6 h-6" style={{ color: '#45c455' }} fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" />
        </svg>
      </div>

      <h3 className="text-lg font-semibold dark:text-white text-gray-900 mb-2">TypeScript SDK</h3>

      <p className="dark:text-gray-400 text-gray-600">
        Fully type-safe SDK with auto-completion, built-in validation, and comprehensive API coverage
      </p>
    </div>

    <div className="dark:bg-[#1a1d27] bg-gray-50 rounded-xl p-6 dark:border-[#27272a] border border-gray-200">
      <div className="w-12 h-12 rounded-lg mb-4 flex items-center justify-center" style={{ backgroundColor: 'rgba(69, 196, 85, 0.1)' }}>
        <svg className="w-6 h-6" style={{ color: '#45c455' }} fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z" />
        </svg>
      </div>

      <h3 className="text-lg font-semibold dark:text-white text-gray-900 mb-2">67+ integrations</h3>

      <p className="dark:text-gray-400 text-gray-600">
        Pre-built integrations for Slack, Discord, WhatsApp, OpenAI, Anthropic, and many more platforms
      </p>
    </div>

    <div className="dark:bg-[#1a1d27] bg-gray-50 rounded-xl p-6 dark:border-[#27272a] border border-gray-200">
      <div className="w-12 h-12 rounded-lg mb-4 flex items-center justify-center" style={{ backgroundColor: 'rgba(69, 196, 85, 0.1)' }}>
        <svg className="w-6 h-6" style={{ color: '#45c455' }} fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z" />
        </svg>
      </div>

      <h3 className="text-lg font-semibold dark:text-white text-gray-900 mb-2">Cloud-native</h3>

      <p className="dark:text-gray-400 text-gray-600">
        Deploy to Botpress Cloud with one command, or self-host using Docker and Kubernetes
      </p>
    </div>
  </div>
</div>

<div className="mt-16 mb-16 max-w-5xl mx-auto px-6">
  <div className="dark:bg-[#1a1d27] bg-gray-50 rounded-2xl p-8 sm:p-12 dark:border-[#27272a] border border-gray-200 text-center">
    <h2 className="text-2xl sm:text-3xl font-semibold dark:text-white text-gray-900 mb-4">
      Ready to build your first bot?
    </h2>

    <p className="text-base dark:text-gray-400 text-gray-600 mb-6 max-w-2xl mx-auto">
      Follow our quickstart guide to create and deploy a working chatbot in under 5 minutes, or explore the SDK documentation to learn about advanced features.
    </p>

    <div className="flex flex-wrap gap-4 justify-center">
      <a href="/quickstart" className="inline-flex items-center px-6 py-3 rounded-lg font-semibold text-white transition-all" style={{ backgroundColor: '#45c455' }} onMouseOver={(e) => e.currentTarget.style.backgroundColor = '#3ab348'} onMouseOut={(e) => e.currentTarget.style.backgroundColor = '#45c455'}>
        Start building

        <svg className="ml-2 w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 7l5 5m0 0l-5 5m5-5H6" />
        </svg>
      </a>

      <a href="https://discord.gg/botpress" target="_blank" rel="noopener noreferrer" className="inline-flex items-center px-6 py-3 rounded-lg font-semibold dark:text-white text-gray-900 dark:bg-white/10 bg-gray-100 dark:border-white/20 border border-gray-200 dark:hover:bg-white/20 hover:bg-gray-200 transition-all">
        Join Discord community
      </a>
    </div>
  </div>
</div>
