Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: Mailchimp 3.1.5 Minor update available for module mailchimp (3.1.5). Release: Commerce Shipping 3.0.5 Minor update available for module commerce_shipping (3.0.5). Release: GoogleTag Manager 2.0.1 Minor update available for module gtm (2.0.1). Usage Milestone: Easy Breadcrumb Module easy_breadcrumb crossed 100,000 active installs. Release: MCP Sentinel 2.17.0 Minor update available for module mcp_sentinel (2.17.0). Release: Commerce ML Exchange 2.0.1 Minor update available for module cmlexchange (2.0.1). Release: Commerce ML Exchange 2.0.0 Major update available for module cmlexchange (2.0.0). Release: SynImport 2.0.0 Major update available for module synimport (2.0.0). Release: Contact ajax 3.0.0 Major update available for module contact_ajax (3.0.0). Module Revived: Contextual Filter from Referer 1.0.2 Module contextual_filter_referer updated after 22 months of inactivity (1.0.2).

AI Chatbot - Assistant UI

No security coverage

Part of the AI ecosystem · 302 projects

View on drupal.org

This module provides a user interface for interacting with Drupal's AI Assistant. It allows users to chat with the AI, attach files, use slash commands, and see tool call results in real-time, with options for sidebar or inline placement.

A chat block for assistant-ui (React) that talks directly to Drupal's AI module over a plain HTTP + Server-Sent Events endpoint.

Features

  • Live tool-call output. Tool calls stream as they execute, showing the tool's actual result rather than a generic "Calling <tool>" placeholder — including a per-tool progress message while it's still running.
  • File attachments, safely staged. Visitors can attach files from the composer. Bytes are staged in a private, per-user temp store and only ever become a permanent Drupal file once the model explicitly calls the file_create tool — nothing is written to disk on upload alone, so an attached-then-abandoned file never leaves an orphan.
  • Slash commands and starter prompts. Prompts from the AI Prompt library show up as / commands and empty-state suggestion buttons, with a parameter dialog for prompts that take variables.
  • Toolbar and top-bar toggle. An Assistant button appears in the toolbar and top bar wherever an enabled sidebar block exists and the current user may chat, matching how AI Chatbot's own DeepChat toggle behaves.
  • Sidebar or inline placement. The default sidebar is collapsible, resizable (with snap points) and keyboard-summonable (Cmd/Ctrl+K); or render the chat directly in a block region instead.
  • Safe Markdown rendering. Replies render through react-markdown, which escapes embedded HTML — model output can never inject markup into the page.
  • Native theming. Sidebar and panel chrome are styled against core's default_admin/Gin design tokens, with plain-CSS fallbacks otherwise.

How it works

assistant-ui (useLocalRuntime)  ──POST──▶  /api/assistant-ui/chat
        ▲                                          │
        └────────── SSE, ui-message-stream ─────────┘

A whole turn — including every tool call the agent makes — runs inside one request. History is read from and written to AiAssistantApiRunner's existing private-tempstore storage, so nothing new is introduced there; the thread id round-trips in the request body and the X-Assistant-Thread-Id response header. Tool execution events from ai_agents (when present) are re-emitted as protocol frames, so a configured agent's tool calls show up live without any extra wiring.

Requirements

  • Drupal ^11
  • AI (ai:ai, ai:ai_assistant_api)
  • Tool (tool:tool)

ai_chatbot is not a dependency.

Installation

  1. Install as usual, e.g. composer require drupal/ai_chatbot_assistant_ui.
  2. Grant Use the AI Assistant UI chat to whichever roles may chat.
  3. Place the AI Chatbot (assistant-ui) block and pick a configured AI Assistant.

Building the frontend

The compiled bundle is committed under dist/, so installing the module is enough to run it — no build step required at install time. To change the frontend itself:

npm install
npm run build
npm test

The frontend is bundled with esbuild; no framework build tooling runs on the Drupal side.

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
5
Tracked since
Aug 2026
Latest release
2 days ago
Releases (12 mo)
5 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
1.0.0-beta4 Pre-release 11 Sep 8, 2026
1.0.0-beta3 Pre-release 11 Sep 4, 2026
1.0.0-beta2 Pre-release 11 Sep 1, 2026
1.0.0-beta1 Pre-release 11 Aug 27, 2026
1.0.x-dev Dev 11 Aug 6, 2026