Released: February 18, 2026

Islands (V1) for framework-agnostic high-state UI widgets, chirp-ui integration, auth hardening for production, and Alpine.js support.

Highlights

  • Islands (V1) — Framework-agnostic contract for isolated high-state widgets
  • chirp-ui integrationuse_chirp_ui(app)and template auto-detection
  • Auth hardening — AuthRateLimitMiddleware, LoginLockout, SecurityAudit
  • Alpine.js support — Macros and server integration

Added

Islands (V1)

  • Mount metadata:data-island, data-island-props, data-island-src, data-island-version, data-island-primitive
  • app.check()validates island mounts and primitive contracts
  • No-build primitive style: plain ES modules from/static/islands/*.jswithout a bundler
  • Runtime diagnostics and safety checks

chirp-ui Integration

  • chirp.ext.chirp_ui.use_chirp_ui(app)— Registers chirp-ui static files (CSS, themes)
  • Template loader auto-detects chirp-ui when installed
  • Optionalui extra: pip install bengal-chirp[ui]
  • chirp_ui.register_filters(app) — Registers bem, field_errorsfor components

Auth Hardening

  • AuthRateLimitMiddleware — Rate limit login/reset endpoints
  • LoginLockout — Lockout and backoff for repeated failures
  • SecurityAudit — Audit events for failures, lockouts, and blocked attempts

Alpine.js Support

  • chirp/alpine.html macros for x-data, x-init, reactive bindings
  • Server-side Alpine integration andapp.check()validation for Alpine islands

Other Additions

  • LLM playground example — Streaming LLM chat with htmx
  • Documentation — Guides for islands, auth hardening, Alpine + htmx, no-build high-state, and chirp-ui

Changed

  • Dependencieskida-templates>=0.2.2(was 0.2.1)
  • CI — Ruff linting, prek pre-commit, GitHub Actions workflow
  • RAG demo — Updated with chirp-ui integration

Installation

pip install bengal-chirp==0.1.2
# or
uv add bengal-chirp==0.1.2

With chirp-ui:

pip install bengal-chirp[ui]