A cross-platform OCaml library for terminal manipulation with widgets and text editing.
Lambda-Term is a cross-platform terminal manipulation library for OCaml that provides abstractions for keys, mouse events, colors, and widgets to build curses-like applications. It solves the problem of low-level terminal control by offering a higher-level, functional interface native to OCaml, integrating with Zed for text editing.
OCaml developers building console applications, terminal-based tools, or interactive command-line interfaces that require advanced terminal manipulation and widget support.
Developers choose Lambda-Term for its native OCaml interface, which is more idiomatic and integrated than C bindings like ncurses, and for its higher-level functional abstractions that simplify terminal application development.
Terminal manipulation library for OCaml
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Handles differences across terminal emulators for keys, mouse events, and colors, as detailed in the compatibility section to ensure broader usability.
Provides a functional, idiomatic API that integrates seamlessly with OCaml projects, avoiding the complexities of C bindings like ncurses.
Integrates with Zed to offer robust text edition facilities, enhancing console applications with features like line editing and history.
Supports configuration files for key bindings, allowing flexible and user-defined input mappings, as shown in the key bindings section.
Includes history and file management for line editing, simplifying state persistence in applications without extra dependencies.
The LTerm_widget module is explicitly labeled as 'not stable' in the main modules list, making it risky for production use or critical applications.
Acknowledges that not all keystrokes may be recognized across different terminals, requiring manual reporting and fixes, as noted in the compatibility section.
Limited to OCaml, which has a smaller community and fewer resources compared to languages like C or Python, potentially slowing development and support.
Lambda-Term is an open-source alternative to the following products: