
Research
/Security News
PolinRider Spreads Through Compromised GitHub Accounts and Packagist
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.
A modern, lightweight library for handling colors, styles, and Unicode characters in the terminal.
mauw is a library written in TypeScript focused on efficient color and style management for the terminal. It provides modern utilities for working with RGB, HEX, backgrounds, static variants, and Unicode character support, offering smart fallbacks for environments where certain symbols or colors are not available.
Designed with a focus on performance, strong typing, and minimal weight, mauw is ideal for CLIs, development tools, and terminal applications that seek consistent visual output without sacrificing speed or simplicity.
mauw prioritizes explicitness, composability, and performance. No hidden state, no magic globals, no unnecessary abstractions.
mauw is designed to be fast and lightweight, with minimal startup and runtime overhead, making it suitable even for short-lived CLI commands.
npm install mauw
mauw provides a simple and expressive API for styling terminal output using colors and Unicode-safe utilities.
mauw is optimized for functional composition. Property chaining is supported for convenience, but functional composition is the recommended and fastest approach.
import mauw from 'mauw/colors';
console.log(
mauw.rgb(255, 0, 0)('Red text'),
mauw.hex('#00ff99')('Green text')
);
import mauw from 'mauw/colors';
console.log(
mauw.bgRgb(30, 30, 30)('Dark background'),
mauw.bgHex('#1e1e1e')('HEX background')
);
import mauw from 'mauw/colors';
console.log(mauw.bgRgb(200, 40, 40).bold('Highlighted text'));
console.log(mauw.bgRgb(200, 40, 40)(mauw.bold('Highlighted text')));
import { COLORS_ENABLED } from 'mauw/colors';
if (COLORS_ENABLED) {
console.log('Colors are enabled in this terminal');
}
import character from 'mauw/characters';
console.log(character.checkmark, 'Task completed');
This library provides a curated set of terminal-friendly symbols, designed to work consistently across environments.
When Unicode is supported, richer symbols are used. Otherwise, clean ASCII fallbacks are applied automatically.
Used when the terminal supports Unicode characters.
Automatically used in non-Unicode environments (CI, legacy terminals, limited fonts).
Spinners are animated using the same fallback strategy, ensuring smooth behavior in all environments.
See the full benchmark suite in the
bench/directory.
mauw is built with performance as a first-class concern. Its core focuses on minimizing allocations, avoiding unnecessary string operations, and favoring functional composition over heavy chaining mechanisms.
In practice, this results in:
Benchmarks show that mauw consistently outperforms popular alternatives in basic coloring, nested styles, and composition patterns, while also producing less garbage for the runtime to clean up.
All performance claims are fully reproducible.
To manually verify and compare results, you can run the benchmark suite included in the repository:
npm install
node bench/load.ts
node bench/dryrun.ts
node bench/performance.ts
This will execute real-world scenarios comparing mauw against other well-known libraries, allowing you to validate execution time, memory usage, and composition cost on your own machine.
Performance may vary depending on runtime, CPU, and OS, but relative efficiency remains consistent.
Thanks to these amazing people:
MIT © Kkotero
Issues and pull requests are welcome.
FAQs
A lightweight, chainable, and functional terminal colors library for Node.js with Unicode character support and graceful fallbacks.
We found that mauw demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.

Company News
Allow myself to introduce... myself.