Line Editing Library
4.3k 2026-05-06
antirez/linenoise
A minimal, zero-config, BSD-licensed C library providing a lightweight and self-contained alternative to readline and libedit for command-line interface line editing.
Core Features
Single and multi-line editing with standard key bindings
History handling and command completion
Hints (suggestions) and bracketed paste support
UTF-8 support for multi-byte characters and emoji
Minimal codebase (~1600 lines) with BSD license
Detailed Introduction
Linenoise addresses the problem of large and complex line editing libraries like GNU Readline (30k lines, GPL) and libedit (20k lines). Many small command-line utilities struggle with integrating these bulky dependencies or dealing with their licenses. Linenoise offers a compact (~1600 lines), zero-configuration, BSD-licensed alternative that is easy to embed. It provides essential features like history, completion, and multi-line editing, making it ideal for projects like Redis, MongoDB, and Android that require efficient and lightweight CLI interaction without the overhead.