Skip to content

Quickstart

Get NimbleBrain running locally with Docker Compose. You need Docker and an Anthropic API key.

  1. Create a config file

    Create nimblebrain.json in a new directory:

    nimblebrain.json
    {
    "$schema": "https://schemas.nimblebrain.ai/nimblebrain.json",
    "bundles": []
    }

    This minimal config starts NimbleBrain with the default bundle (@nimblebraininc/bash), which gives the agent shell access.

  2. Create a Docker Compose file

    docker-compose.yml
    services:
    platform:
    image: nimblebrain/platform:latest
    restart: unless-stopped
    volumes:
    - workspace:/data
    - ./nimblebrain.json:/app/nimblebrain.json:ro
    environment:
    - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
    - NB_API_KEY=${NB_API_KEY}
    web:
    image: nimblebrain/web:latest
    restart: unless-stopped
    ports:
    - "27246:8080"
    environment:
    - PLATFORM_URL=http://platform:3000
    depends_on:
    platform:
    condition: service_healthy
    volumes:
    workspace:
  3. Set your environment variables and start

    Terminal window
    export ANTHROPIC_API_KEY=sk-ant-api03-...
    export NB_API_KEY=my-secret-key-at-least-8-chars
    docker compose up

    You should see output like:

    ✔ Container quickstart-platform-1 Healthy
    ✔ Container quickstart-web-1 Started

    The platform container runs the agent engine on port 3000 (internal). The web container serves the UI on port 27246.

  4. Open the web UI

    Go to http://localhost:27246. Enter your NB_API_KEY value to log in.

    Try sending a message:

    What files are in my home directory?

    The agent uses the bash bundle to run ls ~ and returns the results. You’ll see the tool call and its output inline in the chat.

  5. Install an app

    Ask the agent to install a bundle:

    Search mpak for available bundles

    The agent uses nb__discover_bundles to search the registry. To install one:

    Install @nimblebraininc/ipinfo

    The agent calls nb__manage_bundle to download and start the bundle. You can now ask things like “What’s the IP info for 8.8.8.8?”