Skip to content
CAI
Software that uses CAICheck a score

wmealing/cellium

46.4

Weak · 2 October 2026

7.9k

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Cellium is an Erlang/OTP library that provides a Terminal User Interface (TUI) framework based on the Elm Architecture. It offers a declarative DSL for defining UI layouts and manages state for a variety of interactive widgets, including buttons, lists, trees, and editable tables. The system handles terminal rendering through a virtual buffer, manages focus and input events, and includes utilities for snapshot testing and layout calculation.

Features

The examples directory now includes a comprehensive set of demonstration modules for the cellium UI framework, covering new and existing widgets such as boxes, frames, buttons, checkboxes, toggles, spinners, gauges, progress bars, text inputs, dropdowns (select), lists, trees, tables (including editable tables), radio groups, breadcrumbs, and tabs. A new widgets\_gallery module aggregates these into a tabbed interface for quick previewing, while individual example files (e.g., ex\_dialog, ex\_editable\_table, ex\_tree\_widget) showcase specific features like modal dialogs, keyboard navigation, and widget state management.

examples · high confidence

Initial release of Cellium TUI framework

This change introduces the Cellium Terminal User Interface (TUI) framework for Erlang/OTP, establishing the project's core architecture, documentation, and build infrastructure. The framework implements the Elm Architecture pattern (Model, Update, View) and provides a declarative DSL for building interactive terminal applications. Key capabilities include automatic component state management for widgets (such as buttons, text inputs, lists, and trees), a screen management system for handling view transitions, and a layout engine that calculates absolute coordinates based on container constraints. The release also includes snapshot testing utilities for verifying widget rendering without a real terminal, a Makefile for building and running examples, and Apache 2.0 licensing.

(repo-wide) · high confidence

Initial release of the Cellium TUI framework with core widgets and DSL

The application has been converted to a library-style OTP application, introducing a complete terminal UI framework. This adds a Domain Specific Language (DSL) for defining UI layouts, which is validated before rendering. The framework includes a suite of new widgets such as buttons, checkboxes, text inputs, containers (vbox, hbox, box), and navigation aids (breadcrumbs, tabs). It also introduces a new rendering architecture with a virtual terminal buffer, focus management, and an event polling system to handle terminal input and redraws.

src · high confidence

Behavioural changes

Add terminal styling and UI box definitions

The \include/cellium.hrl\ header file is introduced, defining constants for terminal colors (e.g., \TERM\_RED\, \TERM\_BRIGHT\), output/input modes, and text attributes (e.g., \TERM\_BOLD\, \TERM\_UNDERLINE\). It also defines a \box\ record specifying characters for drawing UI borders and dividers, supporting the rendering of focused widgets and progress bars.

include · high confidence

Disable SASL progress reports in system configuration

The system configuration file (sys.config) has been updated to disable SASL progress reports by setting sasl\_error\_logger to false. This change prevents SASL from outputting progress messages, which helps keep the terminal user interface (TUI) clean and reduces console noise during operation.

config · high confidence

Test coverage

Snapshot and unit tests added for Cellium widgets and layout engine

Added comprehensive test coverage for the Cellium UI library, including snapshot tests for rendering the Box, Breadcrumbs, Button, Gauge, Progress Bar, Radiogroup, Stepper, and Tree widgets (verifying visual output for states like focus and various data values), unit tests for the Button widget's internal logic and the Layout engine's positioning and sizing calculations, validation tests for the DSL schema, and specific behavior tests for the TextInput widget's newline handling.

test · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 46 → 46 (+0.6)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 94 → 94 (+0.0)
  • Architecture 100 → 84 (-16.3)
  • Maturity 60 → 60 (+0.1)
  • Readiness 26 → 29 (+3.6)
  • Security 100 → 100 (+0.0)
  • Event-Driven 43 → 43 (+0.0)
  • Event Sourcing 100 → 100 (+0.0)

Resolved (6)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Hotspot: src/cellium_buffer.erl (src/cellium_buffer.erl)
  • Hotspot: src/table.erl (src/table.erl)
  • Hotspot: src/widget.erl (src/widget.erl)

New (4)

  • Documentation: no project overview (docs/grid.html)
  • Documentation: no project overview (docs/hbox.html)
  • Documentation: no project overview (docs/header.html)
  • Projects may be oversized for their cohesion

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

wmealing/cellium was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 7683d7b9b6905333f05f346bd2ea8decb56af122 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.