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

# Quickstart

> Build your first Novu custom code agent and connect it to Slack in under 10 minutes. Use the dashboard, the Novu CLI, or an AI assistant.

In about 10 minutes you can have an agent that receives Slack messages and replies from your code.

**Prerequisites:**

* A [Novu account](https://dashboard.novu.co).
* A Slack workspace where you can install apps.
* Node.js on your machine.

## Choose your onboarding experience

Pick the path that matches how you like to work. All three get you to the same outcome: an agent connected to Slack that runs your handler code.

| Path             | Best if you…                                             |
| ---------------- | -------------------------------------------------------- |
| **CLI**          | Prefer doing everything from the terminal                |
| **Dashboard**    | Want step-by-step guidance in the Novu UI                |
| **AI assistant** | Want Cursor or another AI tool to set it up in your repo |

<Tabs>
  <Tab title="CLI">
    Run one command and follow the prompts. The CLI signs you in, creates the agent, connects a channel, and can generate a starter project for you.

    ```bash theme={null}
    npx novu connect
    ```

    You'll be asked to:

    1. Sign in to Novu (or paste your secret key).
    2. Pick a runtime — **AI SDK**, **LangChain**, **Custom code**, or a managed option like Claude.
    3. Name your agent and connect Slack (or another channel).
    4. Confirm creating a starter project, if prompted.

    When you're done, run `npm run dev:novu` in the project folder and message your agent on Slack.
  </Tab>

  <Tab title="Dashboard">
    Use the Novu dashboard to create the agent and connect Slack, then run a small local app on your machine that handles replies.

    <Steps>
      <Step>
        ## Create your agent

        1. Go to the Novu dashboard.
        2. In the sidebar, click **Agents**.
        3. Click **Create agent**.
        4. Under **Custom code**, pick **AI SDK**, **LangChain**, or **Custom code**.
        5. Fill in **Agent name**, **Identifier**, and optional **Description**.
        6. Click **Set up agent**.

                   <img src="https://mintcdn.com/novu-c5de82d9/GgsvkDH1Mx055NRY/images/agents/quickstart/add-agent.png?fit=max&auto=format&n=GgsvkDH1Mx055NRY&q=85&s=c659ddfce07222a648f9267677a89f61" alt="Add agent" width="3024" height="1722" data-path="images/agents/quickstart/add-agent.png" />

        Keep the **Identifier** — your code will use the same value.
      </Step>

      <Step>
        ## Select a provider

        1. On the setup page, open **Select provider**.
        2. Select **Slack**.

                   <img src="https://mintcdn.com/novu-c5de82d9/GgsvkDH1Mx055NRY/images/agents/quickstart/select-provider.png?fit=max&auto=format&n=GgsvkDH1Mx055NRY&q=85&s=ac1a91328603da1af4063c2a7cffc751" alt="Select provider" width="3024" height="1722" data-path="images/agents/quickstart/select-provider.png" />
      </Step>

      <Step>
        ## Create a Slack app

        1. Click **Slack App Configuration Token** to open [Slack API apps](https://api.slack.com/apps).
        2. Under **Your App Configuration Tokens**, click **Generate Token**.
                   <img src="https://mintcdn.com/novu-c5de82d9/GgsvkDH1Mx055NRY/images/agents/quickstart/generate-slack-token.png?fit=max&auto=format&n=GgsvkDH1Mx055NRY&q=85&s=3317c804540eb819472823bd49592682" alt="Generate Slack token" width="3024" height="1722" data-path="images/agents/quickstart/generate-slack-token.png" />
        3. Select your workspace and click **Generate**.
        4. Copy the token.
        5. In Novu, paste the token and click **Create app**.

        <Note>
          The configuration token is used once to create your Slack app and is not stored by Novu.
        </Note>
      </Step>

      <Step>
        ## Install the app in your workspace

        1. Click **Install agent**.
        2. Review permissions in Slack and click **Allow**.

                   <img src="https://mintcdn.com/novu-c5de82d9/GgsvkDH1Mx055NRY/images/agents/quickstart/install-app.png?fit=max&auto=format&n=GgsvkDH1Mx055NRY&q=85&s=c1cc531047e6a1e0c5e3d4dcd2d9e0cc" alt="Install app" width="3024" height="1720" data-path="images/agents/quickstart/install-app.png" />

        You'll receive a welcome message from the agent when installation completes.
      </Step>

      <Step>
        ## Set up your local project

        1. On the setup page, find **Scaffold your agent project**.
        2. Copy the command shown there — it already includes your secret key, API URL, and runtime.
        3. Run it in an empty folder on your machine.

        When the CLI asks which agent to use, pick the one you created above.

        This creates a Next.js project with starter handler code and saves your credentials to `.env.local`. See [Connecting your app](/agents/custom-code-agent/connecting-your-app) for how the scaffold wires the bridge endpoint.
      </Step>

      <Step>
        ## Run your agent locally

        1. On the agent page in the dashboard, set the connection mode to **Local**.
        2. In your project folder, run:

        ```bash theme={null}
        npm run dev:novu
        ```

        When Novu connects to your machine, you'll get another message from your agent in Slack.
      </Step>

      <Step>
        ## Send a message

        Message your bot in Slack. Your handler code runs and the reply appears in the thread.

        <img src="https://mintcdn.com/novu-c5de82d9/GgsvkDH1Mx055NRY/images/agents/quickstart/slack-message.png?fit=max&auto=format&n=GgsvkDH1Mx055NRY&q=85&s=0185324292925b963b04d09ffc94e994" alt="Slack message" width="4824" height="2724" data-path="images/agents/quickstart/slack-message.png" />
      </Step>
    </Steps>
  </Tab>

  <Tab title="AI assistant">
    Paste this into Cursor or another AI tool. It uses Novu's agent setup guide and adapts it to your repo.

    <Prompt description="Add a Novu custom code agent to my app" icon="plug" actions={["copy", "cursor"]}>
      I'm signed in to the Novu dashboard, so use dashboard login (not keyless mode). Add an agent to my app following instructions from this markdown file: [https://novu.co/agents.md](https://novu.co/agents.md)

      Use AI SDK or LangChain based on what this project already uses. Follow my project's existing framework, routing, styling, and TypeScript conventions.

      Reference: [https://docs.novu.co/agents/custom-code-agent/quickstart](https://docs.novu.co/agents/custom-code-agent/quickstart)
    </Prompt>
  </Tab>
</Tabs>

## Next steps

<Columns cols={2}>
  <Card icon="sparkles" href="/agents/custom-code-agent/frameworks/ai-sdk" title="Build with the AI SDK">
    End-to-end guide with Vercel AI SDK.
  </Card>

  <Card icon="link" href="/agents/custom-code-agent/frameworks/langchain" title="Build with LangChain">
    End-to-end guide with LangChain agents.
  </Card>

  <Card icon="code" href="/agents/custom-code-agent/frameworks/other" title="Other frameworks">
    OpenAI SDK, Anthropic SDK, or your own stack.
  </Card>

  <Card icon="book-open" href="/agents/custom-code-agent/concepts" title="Concepts">
    How agents, handlers, and Novu fit together.
  </Card>

  <Card icon="blocks" href="/agents/custom-code-agent/building-blocks/handle-events" title="Building blocks">
    Shared APIs for replies, events, signals, and more.
  </Card>

  <Card icon="code" href="/api-reference/agents/agent-schema" title="Agents API reference">
    Create agents, link providers, and send replies programmatically.
  </Card>
</Columns>
