Drupal is a registered trademark of Dries Buytaert
File Entity (fieldable files) 8.x-2.7 Minor update available for module file_entity (8.x-2.7). Field Group 4.1.0-alpha4 New alpha version released for module field_group (4.1.0-alpha4). Themespace 4.0.0 Major update available for module themespace (4.0.0). Recombee 2.0.7 Minor update available for module recombee (2.0.7). Varbase Editor 10.1.6 Minor update available for module varbase_editor (10.1.6). MCP Sentinel 2.0.0 Major update available for module mcp_sentinel (2.0.0). Sahaza Intranet 1.0.2 Minor update available for distribution sahaza_group_intranet (1.0.2). Commerce Product CSV Import/Export 1.1.1 Minor update available for module commerce_product_csv (1.1.1). Session Limit Module session_limit crossed 1,000 active installs. Field Group Label 2.1.0 Module field_group_label updated after 14 months of inactivity (2.1.0).

Modern Chat

No security coverage
View on drupal.org

A modern chat interface for Drupal AI Assistants, built with the shadcn UI components.

The current Drupal solutions looks and behave like Yahoo messenger back in 1998, nothing bad but quite nostalgic.

It talks to the same ai_assistant_api engine the rest of the AI ecosystem uses, and it does not require or conflict with ai_chatbot. The two can be installed side by side if you have any issues with good looking UIs.

Four surfaces, one block plugin plus one route

Surface How Inline Place the Modern Chat block, placement Inline. Floating widget Same block, placement Bottom right / Bottom left. Docked sidebar Same block, placement Docked sidebar. Full page Visit /ai-chat/{assistant_id}.

 

Four states, designed instead of hidden

The states a chat actually spends its time in thinking, streaming, failing, resuming tend to arrive undesigned, which is how they end up as a spinner. These four got designed:

  • Agent and tool steps. While the agent works, one plain-language status line says what is happening "Searching…", "Making changes…" and disappears when the answer lands. Tool plugin names are never shown: a visitor does not need to read RAG/Vector Search in a support chat, any more than ChatGPT announces which function it just called. Rounds where the agent is only talking to itself pass silently, because that is a log entry, not a UI event.
  • Streaming. Replies render as they arrive with the question anchored in place, so the thread does not slide out from under the sentence you were reading. New words cascade in with a short staggered fade; only newly appended text ever animates, so what you already read never flickers. A reply that arrives whole gets the same reveal instead of popping in. The thinking status materialises with a slight rise and blur (ease-out, no bounce). prefers-reduced-motion drops the rise, blur and stagger and keeps a plain quick fade.
  • Errors. Rate limit, quota, bad request, setup failure and transport failure are told apart, worded per assistant, and retryable only where retrying can actually help. A retry button on a missing API key is just a lie with rounded corners.
  • History and reset. A stored conversation is restored on load without a scroll jump. Clear conversation starts a new thread.

Settings & Features

Everything is set per block, so one site can run a support widget in the footer, an editorial sidebar in the admin theme and a full-page assistant, each with its own name, face and opening lines.

Setting What you get AI Assistant Pick one of your existing assistants. That is the whole setup step. Placement Inline in a region, floating widget bottom right or bottom left, or a docked full-height sidebar. Same block, four different products. Assistant name Shown in the header. Defaults to the assistant's own label. Avatar Any image URL, tokens supported. Skip it and you get a clean initial instead. Colour scheme Light, dark, or follow the visitor's system setting. Per block, so your dark admin theme stays out of the public widget. Height and sidebar width Any CSS length. It fits phones without being asked twice. Launcher label "Chat with us" beside the button, or icon only. Open on first visit Greet people with it open. Closed stays closed after that, the visitor's choice wins. Greeting A welcome message before the first question. Markdown, and it costs you no tokens. Suggested questions One per line, shown as buttons. A real empty state instead of a blank box. Input placeholder Your words in the composer.

Access is one permission, Use Modern Chat and core block visibility handles where it shows up. Each assistant still enforces its own role restrictions.

And a few things are deliberately not settings: tool names never leak to visitors, errors are always worded like a human wrote them, and motion always respects reduce motion. Those are not preferences, they are the point.

 

 

Activity

Total releases
1
First release
Jul 2026
Latest release
1 hour ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
1.0.x-dev Dev Jul 30, 2026