Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: Download Tracker 1.0.6 Minor update available for module download_tracker (1.0.6). Release: Admin Navigation 1.1.3 Minor update available for module admin_navigation (1.1.3). Release: Schema Org Mapper 1.0.3 Minor update available for module schema_org_mapper (1.0.3). Release: Soundcite 2.0.8 Minor update available for module soundcite (2.0.8). Release: Fills 2.0.0 Major update available for theme fills (2.0.0). Release: FlowDrop 2.6.0-alpha3 New alpha version released for module flowdrop (2.6.0-alpha3). Release: ConReg 1.0.0-beta4 New beta version released for module conreg (1.0.0-beta4). Release: Yoyaku Booking Engine 1.0.0-alpha4 New alpha version released for module yoyaku (1.0.0-alpha4). Module Revived: Bootstrap Colors 2.0.1 Module bootstrap_colors updated after 19 months of inactivity (2.0.1). Security Coverage: Soundcite Module soundcite now has official Drupal security advisory coverage.

AI Chatbot - Assistant UI

No security coverage

Part of the AI ecosystem · 308 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 to Drupal's AI stack over a plain HTTP + Server-Sent Events endpoint.

Features

  • Live tool-call output. With "Show each tool step" on, 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 become a permanent, managed Drupal file once the assistant actually uses it in its reply — anything staged but never used is cleaned up automatically, so nothing is left orphaned.
  • @-mentions and content search. Typing @ opens a picker of content by title to point the assistant at something specific; the Search content tool lets it find content nobody pointed at, on its own.
  • Ask the editor. When the assistant can't decide for you — which paragraph type, which of three markets you meant — it stops and asks, with its options as buttons in the chat, rather than guessing.
  • External tools (MCP). Offer tools hosted on external Model Context Protocol servers, authorized per user via OAuth. The connection and tool execution happen in the visitor's own browser; Drupal only stores the per-user connection state.
  • Edit entities in place. With the optional Form bridge submodule, the assistant can read and propose changes to the entity currently open in an edit form — shown as a reviewable diff you approve before anything is written.
  • Slash commands, starter prompts and follow-ups. Prompts from the site's prompt library show up as / commands and empty-state suggestion buttons; an optional extra call can offer up to 3 follow-up prompts as chips after each reply.
  • Sidebar or inline placement. The default sidebar is collapsible, resizable (with a full-width snap point) and keyboard-summonable (Cmd/Ctrl+K); anonymous visitors get a floating launcher instead of a toolbar button. 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 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) and AI Agents (ai_agents:ai_agents) — all hard dependencies.
  • At least one AI Assistant entity already configured. Creating one requires an AI Agent behind it — ai_assistant_api cannot create an assistant without one.

ai_chatbot is not a dependency.

Installation

  1. Install as usual, e.g. composer require drupal/ai_chatbot_assistant_ui, then drush en 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.

Tagged releases ship the compiled chat bundle, so installing is enough to run it. A git checkout or 1.0.x-dev does not — see "Building the frontend" below.

Optional submodules

  • Form bridge — lets the assistant read and change the entity open in the current edit form, with human approval on every change.
  • Docx Import — lets editors attach a .docx for the assistant to read, even without the core Media module enabled.

Building the frontend

The compiled bundle is committed under dist/ on tagged releases, so installing the module is enough to run it — no build step required at install time. To change the frontend itself, or to run from a git checkout / 1.0.x-dev:

npm install
npm run build
npm test

The frontend is bundled with esbuild; no framework build tooling runs on the Drupal side. Node ^20.19, ^22.18 or ≥24.11 is required.

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
8
Tracked since
Aug 2026
Latest release
2 days ago
Releases (12 mo)
8 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
1.0.0-beta7 Pre-release 11 Sep 18, 2026
1.0.0-beta6 Pre-release 11 Sep 14, 2026
1.0.0-beta5 Pre-release 11 Sep 11, 2026
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