30 open-source projects similar to charmbracelet/huh, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
Coss is an accessible UI component library and design system framework used to build web interfaces. It provides a comprehensive kit of interactive elements and layout building blocks that follow screen reader and keyboard navigation standards. The project functions as a UI overlay management library, offering specialized tools for implementing anchored popovers, tooltips, and slide-out panels with smooth transitions. It includes a set of accessible form primitives and selection controls to ensure compatibility across different assistive technologies. Its broader capabilities cover the const
gluestack-ui is a cross-platform React component library built with Tailwind CSS. It provides over 30 pre-built, accessible components that can be installed by copying their source files directly into a project, giving developers full control over customization without external runtime dependencies. Every component implements WAI-ARIA patterns, keyboard navigation, and screen reader support out of the box. A key differentiator is the copy-paste architecture: rather than a traditional package dependency, component source code is placed in the project, allowing direct editing and eliminating ve
Skim is a cross-platform interactive fuzzy finder that runs as a terminal application, a Rust library, a Vim and Neovim plugin, and a shell integration tool. It provides real-time filtering and selection from lists of items, supporting keyboard and mouse navigation, live preview panes, and multi-select functionality across Linux, macOS, and Windows. The tool distinguishes itself through a composable query expression tree that supports fuzzy, exact, inverse, prefix, suffix, and logical AND/OR operators, combined with a Smith-Waterman scoring engine that penalizes typos and gaps for natural rel
Taiga UI is an Angular UI component library and accessible design system used for building enterprise web interfaces. It provides a comprehensive collection of reusable interface elements and layout tools, functioning as a mobile-first UI kit with responsive components that adapt to different device capabilities. The library distinguishes itself through an integrated data visualization library featuring various chart types and a dedicated form management framework with built-in validation and formatting for specialized data. It also features AI-driven development workflows by integrating comp
Filament is a full-stack framework for building administrative panels and management interfaces within the Laravel ecosystem. It provides a declarative, component-based architecture that allows developers to construct complex, data-driven applications using server-side configuration objects rather than manual HTML. By inspecting database model structures and relationships, the framework automates the generation of CRUD interfaces, forms, and data tables, significantly reducing boilerplate code. The project distinguishes itself through a highly modular and extensible design that supports custo
Ark is a headless UI component library that delivers accessible, cross-framework primitives with behavior governed by finite state machines. It provides unstyled components that encapsulate logic and accessibility — including full keyboard navigation, focus management, and WAI-ARIA support — while leaving visual styling entirely to the consumer. Components expose scoped data attributes for CSS targeting and use state machines to produce predictable, testable interactive behavior across every state transition. The library distinguishes itself through a state propagation model that distributes
Enquirer is a Node.js library for creating interactive command-line interfaces to gather structured user input. It provides a set of terminal prompts, including menus, forms, and text fields, to collect data via autocomplete, multiselect, and boolean confirmations. The project serves as a customizable framework that allows for the creation of custom prompt types through a base class and the extension of functionality via a plugin architecture. The library covers a wide range of interaction patterns, such as capturing numerical and sensitive data, validating user input against custom rules, a
Eureka is a framework for building structured data-entry interfaces and forms in Swift for iOS applications. It provides a declarative UI layout engine and a dynamic input interface to define fields, sections, and row layouts through a configuration layer. The system distinguishes itself through dynamic interface management, including conditional visibility and interaction control that reacts to real-time user changes. It supports complex input behaviors such as expandable row rendering, multivalued field management for inserting or deleting similar rows, and custom keyboard navigation that s
Survey is a Go interactive prompt library and terminal user interface toolkit used to build command line interfaces that collect structured data. It provides a framework for rendering keyboard-navigable menus and forms across different operating systems. The toolkit includes components for gathering user confirmation, capturing text and password entries, and presenting paginated lists of choices. It supports multi-line input by integrating with the system's external text editor and provides contextual help displays to guide users. The library implements input validation logic to ensure respo
Basecoat is a zero-runtime UI library and themable interface framework consisting of a set of accessible web components. It provides a collection of pre-styled interface elements and utility classes designed to function as static assets without requiring a dedicated JavaScript framework runtime. The project features a dedicated UI component scaffolder, providing a command line interface to automate the generation of project folder structures and the installation of component templates. Visual styles are managed through a system of CSS variables and utility classes, allowing for global theme a
This project is a Node.js CLI input library and toolkit for building interactive command-line user interfaces. It functions as a questionnaire framework and prompt orchestrator designed to capture structured user data through a variety of visual input controls. The system differentiates itself through a logic-driven engine that supports dynamic prompt chains, allowing the sequence and properties of questions to adapt at runtime based on previous user answers. The toolkit provides a wide range of specialized input types, including date pickers, searchable lists, masked passwords, and numeric
Choices is a vanilla JavaScript library used to create customizable select boxes and text inputs without external dependencies. It functions as a custom select box plugin that transforms standard HTML select elements into searchable, stylable dropdowns and tagged text input components. The library distinguishes itself through a system of customizable HTML templates and CSS custom properties, allowing for the creation of tailored UI components. It provides the ability to define custom HTML structures for input components and modify the visual appearance of the interface via CSS theme styling.
Zag is a headless UI state machine library that provides unstyled component logic to ensure consistent behavior across different rendering engines. It functions as a toolkit for modeling complex user interface interactions using statecharts, decoupling the underlying logic and accessibility attributes from visual styling. The library is framework-agnostic, utilizing specialized adapters to bridge its state machine logic with various JavaScript libraries such as React, Solid, Vue, and Svelte. This approach allows developers to maintain a single interaction model while applying any CSS or styli
XLForm is a declarative UI library and framework for generating synchronized iOS table-view forms from structured definitions. It provides a toolkit for building mobile data-entry screens using Swift and Objective-C, allowing developers to create interfaces based on declarative sections and rows. The framework features dynamic interface synchronization and conditional logic to manage row visibility and editing restrictions. It supports the creation of dynamic multivalued sections where users can insert, delete, or reorder rows at runtime. The library includes a variety of interactive input c
Base UI is a headless component library and unstyled framework providing accessible interface primitives. It decouples behavioral logic and state management from the visual layer, allowing developers to implement complex UI patterns while maintaining total control over the final styling. The library implements WAI-ARIA design patterns to ensure all primitives support standard keyboard navigation and screen reader accessibility. It provides a suite of low-level building blocks that handle the internal mechanics of interface elements without bundling any CSS. The framework covers a broad range
Inquirer.js is a command line input framework and prompt library for Node.js applications. It provides a structured set of tools for building interactive terminal interfaces, including menus, checklists, and text inputs, to gather user data and manage complex interactions. The framework allows for the creation of dynamic user experiences through branching prompt logic and the resolution of asynchronous configurations. Users can define custom prompts using a provided API and localize interface text into different languages. The library covers a wide range of input capabilities, including sing
Opentui is a terminal user interface framework for building interactive command line applications. It provides a component-based system featuring a flexbox layout engine, a virtual node component tree, and a low-level 2D cell array renderer. The project is distinguished by a sophisticated keyboard binding engine that maps complex multi-stroke sequences and chords to named commands using prioritized, reactive layers. It also implements a plugin architecture that allows external modules to inject custom UI components into designated layout slots and extend input logic at runtime. Its capabilit
This project is a framework for building interactive, graphical-style terminal applications. It provides a declarative component model that organizes user interfaces into a tree of nested widgets, each managing its own lifecycle, state, and rendering. By subclassing the base application class, developers can construct complex, keyboard-navigable interfaces that run directly within terminal emulators. The framework distinguishes itself through a reactive architecture and a CSS-based layout engine. It uses a reactive attribute system to automatically track state changes and trigger targeted int
cube-ui is a mobile-first Vue.js component library that provides a comprehensive set of pre-built UI elements for building touch-based mobile web applications. The library is built on Vue's single-file component architecture and supports on-demand ES module imports, allowing developers to selectively load only the components they need to optimize bundle size. It also offers plugin-based global registration for convenient setup and includes a CLI scaffolding tool to generate project skeletons with pre-configured build settings. The library distinguishes itself with a gesture-driven interaction
tview is a library for building interactive text-based user interfaces in Go. It functions as a toolkit for managing event loops, user input, and screen rendering, providing a framework of pre-built widgets and an integrated layout engine for creating command-line applications. The project distinguishes itself through a comprehensive layout system that uses grid and flexbox models to create responsive designs. It also supports UI layer stacking to manage multiple screens and modal overlays. The framework includes a diverse suite of interactive components for data display, such as tables and
Terminal-kit is a Node.js toolkit for building command-line applications and console user interfaces. It provides a comprehensive suite of utilities for console text styling, terminal graphics rendering, input parsing, and interactive interface construction. The library features a cell-based text grid model, a component document tree for hierarchical layout of interactive widgets, and off-screen pixel buffering for multi-layered image composition and manipulation. It handles direct escape-sequence output control and raw-mode input parsing to manage display regions and capture user interaction
Angular schema form is a framework directive and form component library that automatically generates and validates interactive HTML form controls from standard JSON schemas and companion layout configurations. It translates structured data definitions into customizable user input interfaces, parsing data types and custom rules into native form controls and reusable HTML markup templates. The project provides capabilities for dynamic field management, allowing form elements to show or hide conditionally by evaluating expressions against current model and scope state, and supporting dynamic arr
jstree is a jQuery tree view plugin used to render interactive hierarchical data structures. It functions as a hierarchical data visualizer and manager, providing tools to display nested relationships through tree layouts. The project features a drag-and-drop tree manager for restructuring hierarchies and an AJAX tree loader for fetching nodes or HTML fragments from remote servers. It includes a tri-state checkbox selector to manage selection states across parent and child branches. The plugin supports various data modeling approaches, including child arrays, parent-id adjacency lists, and t
Cursive is a cross-platform terminal user interface toolkit and framework for building interactive applications in Rust. It provides a modular system for creating text-based graphical interfaces, utilizing a dedicated engine to manage the main display loop and view hierarchies. The toolkit features a backend-agnostic abstraction layer to ensure consistent rendering and input handling across different operating systems. It distinguishes itself through a palette-based theme engine that supports runtime theme loading and true color rendering, as well as the ability to generate user interface hie
Polaris React is a production-ready component library that implements Shopify's Polaris design system for building consistent merchant-facing admin interfaces. It provides a comprehensive set of reusable React components, including accessible form inputs, data display elements, layout and navigation structures, and visual feedback indicators, all styled through a semantic color token system applied via CSS custom properties for dynamic light and dark mode support. The library distinguishes itself with an icon-first visual language featuring over 400 commerce-specific SVG icons delivered as fi
vue-strap is a UI framework and component library that provides a collection of themed interface elements based on Bootstrap for use within Vue.js applications. It serves as a Bootstrap-based component kit that bridges CSS framework styling with a reactive JavaScript component architecture. The library implements a wide range of functional building blocks, including navigation bars, dropdown menus, and layout primitives such as accordion panels and tabbed content. It includes an extensive set of form inputs featuring date pickers, typeahead search, and integrated validation state management.
This project is a cross-platform user interface framework that maps mobile-native component primitives to standard web elements. It enables developers to build consistent applications that function across both mobile and web environments by providing a unified library of components and shared logic. The framework distinguishes itself through a specialized style engine that converts JavaScript object-based declarations into optimized, scoped CSS at runtime. It also features a responsive layout engine that implements a flexbox-based system, ensuring that interfaces adapt dynamically to differen
Twill is a Laravel CMS toolkit and admin panel generator designed for building custom administrative consoles and content management systems. It serves as a headless CMS framework and a toolkit for defining content models and managing structured data through a dedicated administrative interface. The project features a visual block editor that allows publishers to arrange and configure reusable content sections via a drag-and-drop interface. It includes a dedicated digital asset manager for storing, cropping, and optimizing images and files across local or cloud storage, as well as a multiling
ReactXP is a framework for building cross-platform mobile and web applications from a single codebase using React. It provides a declarative interface that maps to different native implementation sets depending on the target environment. The project enables consistent visual experiences across operating systems through a flexbox-based layout engine, a virtual stack for navigation management, and a unified native-bridge API for accessing system services. It distinguishes itself with specialized capabilities for declarative animation orchestration, platform-specific logic resolution, and an aut
React-admin is a framework for building data-driven administrative interfaces that connect to REST or GraphQL backends. It provides a comprehensive suite of tools for managing the full lifecycle of administrative applications, including resource-oriented routing, declarative form scaffolding, and context-driven state management. By utilizing a modular adapter-based architecture, the framework abstracts backend communication, allowing developers to build consistent CRUD interfaces that handle data fetching, authentication, and synchronization automatically. The project distinguishes itself thr