awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
Back to alecaivazis/survey

Open-source alternatives to Survey

30 open-source projects similar to alecaivazis/survey, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Survey alternative.

  • terkelg/promptsterkelg avatar

    terkelg/prompts

    9,291View on GitHub↗

    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

    JavaScript
    View on GitHub↗9,291
  • peterbrittain/asciimaticspeterbrittain avatar

    peterbrittain/asciimatics

    4,286View on GitHub↗

    Asciimatics is a cross-platform terminal user interface framework and console wrapper. It functions as a curses-compatible library providing a toolkit for building interactive text-based applications, an ASCII art generator, and a terminal animation engine. The project distinguishes itself through a visual effects engine capable of rendering sprites, particle systems, and anti-aliased lines. It includes specialized systems for creating moving text-based graphics and tools for converting image files into character-based representations. The framework covers core terminal management including

    Pythonascii-artconsolecross-platform
    View on GitHub↗4,286
  • cronvel/terminal-kitcronvel avatar

    cronvel/terminal-kit

    3,366View on GitHub↗

    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

    JavaScript
    View on GitHub↗3,366

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Find more with AI search
  • c-bata/go-promptc-bata avatar

    c-bata/go-prompt

    5,481View on GitHub↗

    go-prompt is a library for building interactive command-line interfaces in Go. It serves as a cross-platform console UI framework and terminal input manager, providing the tools necessary to capture user input and execute commands through a persistent interactive loop. The library features a dedicated auto-completion engine that provides real-time command suggestions. It also supports dynamic prompt prefixes updated via callback functions and a system for managing and recalling command history. The framework covers a broad range of terminal capabilities, including keyboard shortcut mapping,

    Goclicommand-lineinteractive
    View on GitHub↗5,481
  • jroimartin/gocuijroimartin avatar

    jroimartin/gocui

    10,575View on GitHub↗

    gocui is a console user interface library for the Go programming language. It provides a toolkit for building interactive terminal applications using a layout engine that organizes overlapping rectangular views and coordinates. The library features a terminal input handler to capture and map keyboard shortcuts and mouse events to specific application actions. It includes an ANSI escape sequence parser to manage text attributes, colors, and cursor positioning. The framework covers interface view management and overlapping window layering, allowing for a structured arrangement of content. Rend

    Gocuigogocui
    View on GitHub↗10,575
  • chjj/blessedchjj avatar

    chjj/blessed

    11,854View on GitHub↗

    This project is a terminal user interface library for Node.js, designed to facilitate the construction of interactive command-line applications. It provides a comprehensive toolkit of high-level widgets that abstract complex terminal escape codes and rendering logic, allowing developers to build functional interfaces using reusable components. The framework distinguishes itself by implementing a box-model-based layout engine and a virtual DOM-style reconciliation system. These mechanisms enable responsive design patterns—such as percentage-based sizing and relative positioning—to function wit

    JavaScript
    View on GitHub↗11,854
  • charmbracelet/huhcharmbracelet avatar

    charmbracelet/huh

    6,575View on GitHub↗

    Huh is a Go library for building interactive terminal forms, designed to work with the Bubbletea TUI framework. It provides a complete form-building system with text inputs, selection lists, confirmation prompts, and file pickers, all navigable using only the keyboard without requiring a mouse. The library distinguishes itself through dynamic form adaptation, allowing fields to be shown, hidden, or modified at runtime based on user selections and conditional rules. It includes screen reader support that announces form fields and falls back to text prompts when a visual interface is unavailabl

    Go
    View on GitHub↗6,575
  • textualize/textualTextualize avatar

    Textualize/textual

    36,285View on GitHub↗

    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

    Pythoncliframeworkpython
    View on GitHub↗36,285
  • jakewharton/mosaicJakeWharton avatar

    JakeWharton/mosaic

    2,583View on GitHub↗

    Mosaic is a declarative terminal user interface framework and display engine. It provides a toolkit for building interactive command-line applications by synchronizing a data model with the terminal screen to minimize manual redraws. The library functions as a layout engine for designing structured visual interfaces and real-time displays. It enables the development of interactive console programs, such as system monitors and games, by managing responsive user input and dynamic output updates.

    Kotlin
    View on GitHub↗2,583
  • ratatui-org/ratatuiratatui-org avatar

    ratatui-org/ratatui

    21,277View on GitHub↗

    Ratatui is a terminal rendering engine and library for the Rust language used to build interactive text-based user interfaces. It provides a framework for creating command-line dashboards and visual applications by rendering widgets and layouts directly to a terminal screen. The project utilizes a backend-agnostic interface to decouple UI logic from terminal drivers and employs a constraint-based layout engine to divide screen space into nested rectangular areas. It manages rendering through an immediate-mode drawing loop and a buffer-based system to minimize screen flicker. The library supp

    Rust
    View on GitHub↗21,277
  • sboudrias/inquirer.jsSBoudrias avatar

    SBoudrias/Inquirer.js

    21,578View on GitHub↗

    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

    TypeScriptclicommand-linejavascript
    View on GitHub↗21,578
  • antirez/linenoiseantirez avatar

    antirez/linenoise

    4,302View on GitHub↗

    Linenoise is a lightweight C library for terminal line editing, command history management, and asynchronous input processing. It functions as a self-contained alternative for capturing user input from the command line without requiring external dependencies. The utility provides a non-blocking input processor that handles keyboard data via a feed mechanism, allowing applications to process user typing and external events simultaneously. It supports the implementation of custom shells and REPLs through features such as callback-based autocompletion, input hinting, and a circular history buffe

    C
    View on GitHub↗4,302
  • snaptoken/kilo-tutorialsnaptoken avatar

    snaptoken/kilo-tutorial

    972View on GitHub↗

    This project is an educational resource designed to teach low-level software development through the incremental construction of a functional terminal-based text editor. It provides a step-by-step curriculum that guides users through the process of building an interactive application from scratch using C and standard terminal input handling. The tutorial distinguishes itself by utilizing an incremental implementation pattern, where each functional milestone builds upon previous code to ensure a manageable learning curve. To support this process, the project includes a command-line utility tha

    View on GitHub↗972
  • gyscos/cursivegyscos avatar

    gyscos/Cursive

    4,810View on GitHub↗

    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

    Rust
    View on GitHub↗4,810
  • manifoldco/promptuimanifoldco avatar

    manifoldco/promptui

    6,396View on GitHub↗

    Promptui is a Go library for building interactive command-line prompts, providing components for collecting text input with validation, presenting scrollable selection lists, and enabling dynamic addition of list items. It serves as a toolkit for creating terminal user interfaces where users can navigate menus, search options, and enter text with live validation and masking. The library implements interactive prompts through a synchronous blocking I/O model combined with ANSI cursor control and terminal-event-driven rendering, allowing for real-time UI updates. Its template-driven output form

    Goclicommand-linegolang
    View on GitHub↗6,396
  • yomguithereal/react-blessedYomguithereal avatar

    Yomguithereal/react-blessed

    4,496View on GitHub↗

    react-blessed is a React renderer for the blessed library that enables the construction of interactive command-line interfaces using a component-based architecture. It functions as a terminal user interface framework that maps a virtual component tree to a terminal environment, allowing React's declarative state management to control blessed terminal widgets and layout nodes. The system supports the integration of custom renderers through a dedicated creation function to change how nodes are instantiated. It provides a mechanism to retrieve original terminal library objects through references

    JavaScriptblessedclireact
    View on GitHub↗4,496
  • veeso/tui-realmveeso avatar

    veeso/tui-realm

    963View on GitHub↗

    This project is a framework for building stateful, component-driven terminal user interfaces in Rust. It provides a structured architecture for managing complex command line applications by decoupling rendering logic from application state through a centralized message-passing system. By utilizing a component-based model, it enables developers to construct interactive interfaces that handle event routing, focus management, and lifecycle orchestration in a predictable manner. The framework distinguishes itself through its focus on modularity and developer productivity. It employs trait-based c

    Rustconsolecrosstermgui
    View on GitHub↗963
  • anomalyco/opentuianomalyco avatar

    anomalyco/opentui

    12,131View on GitHub↗

    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

    TypeScript
    View on GitHub↗12,131
  • charmbracelet/bubblescharmbracelet avatar

    charmbracelet/bubbles

    7,796View on GitHub↗

    Bubbles is a terminal user interface toolkit and component library providing a set of pre-built, reusable widgets for creating interactive command-line applications. It functions as a framework for building complex tools that require real-time updates and keyboard navigation. The library includes a variety of specialized interface elements such as fuzzy-filterable item lists, single-line and multi-line text inputs, and tabular data grids. It also provides visual feedback components including animated loading spinners, progress meters, countdown timers, and stopwatches. Additional capabilitie

    Goclielm-architecturehacktoberfest
    View on GitHub↗7,796
  • nsf/termbox-gonsf avatar

    nsf/termbox-go

    4,786View on GitHub↗

    termbox-go is a Go terminal user interface library and cross-platform terminal emulator abstraction. It provides a system for creating text-based graphical interfaces by managing a terminal cell buffer and handling raw input events. The library functions as a terminal cell buffer manager and input handler. It maintains an internal grid of characters and colors, using a back buffer to synchronize updates to the physical screen and translate keyboard and mouse events into structured data. Its capability surface covers text user interface rendering and terminal display management, including cur

    Go
    View on GitHub↗4,786
  • ratatui/ratatuiratatui avatar

    ratatui/ratatui

    18,525View on GitHub↗

    Ratatui is a Rust framework for building interactive, stateful terminal user interfaces. It provides a modular architecture that maps application data to visual components, enabling the creation of complex, text-based applications that run directly in the terminal. The library distinguishes itself through an immediate-mode rendering system that utilizes double-buffering to minimize flickering and reduce communication overhead. It employs a constraint-based layout engine to partition screen space into nested segments, allowing for the construction of sophisticated visual hierarchies that remai

    Rustcliratatuirust
    View on GitHub↗18,525
  • enquirer/enquirerenquirer avatar

    enquirer/enquirer

    7,946View on GitHub↗

    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

    JavaScript
    View on GitHub↗7,946
  • jonathanslenders/python-prompt-toolkitjonathanslenders avatar

    jonathanslenders/python-prompt-toolkit

    10,498View on GitHub↗

    python-prompt-toolkit is a Python library and terminal user interface framework used for building interactive command line interfaces. It provides a toolkit for constructing complex terminal applications with advanced input handling and layout management. The project features a real-time syntax highlighting engine and a rendering system that ensures correct alignment and display of double-width Unicode characters. It includes specialized capabilities for command line autocompletion, providing ghost text suggestions and searchable input history. The framework covers a broad range of interface

    Python
    View on GitHub↗10,498
  • tconbeer/harlequintconbeer avatar

    tconbeer/harlequin

    6,165View on GitHub↗

    Harlequin is a terminal-based SQL IDE that runs queries against DuckDB and SQLite databases, with a plug-in adapter system for connecting to additional database engines. It provides a full-screen text editor with syntax highlighting and fuzzy autocomplete for writing SQL, and displays query results in a scrollable table within the terminal. The application distinguishes itself through a tree-based data catalog that lets you browse database schemas, local files, and remote S3 objects, with the ability to insert or copy paths directly into the query editor. It supports custom key bindings throu

    Python
    View on GitHub↗6,165
  • flatiron/promptflatiron avatar

    flatiron/prompt

    1,956View on GitHub↗

    Prompt is a terminal interface management library for Node.js applications that collects, validates, and styles interactive command-line user input. It handles user response collection and input stream controls, allowing developers to build command-line scripts and automation tools that require structured user input. The library supports asynchronous event-driven prompt flows through both callback patterns and modern promises, alongside conditional prompt bypassing driven by command-line arguments, default values, preset overrides, and previous answers. Captured terminal responses can be appe

    JavaScript
    View on GitHub↗1,956
  • spectreconsole/spectre.consolespectreconsole avatar

    spectreconsole/spectre.console

    11,210View on GitHub↗

    Spectre.Console is a .NET framework designed for building structured, feature-rich command-line applications. It provides a comprehensive toolkit for managing complex command hierarchies, type-safe argument parsing, and dependency injection, allowing developers to decouple business logic from input processing while maintaining modular application designs. The framework distinguishes itself through a sophisticated terminal user interface toolkit that enables the creation of dynamic, interactive console experiences. It utilizes a markup-based rendering system to display styled text, tables, cha

    C#ansi-colorscli-parserconsole
    View on GitHub↗11,210
  • microsoft/editmicrosoft avatar

    microsoft/edit

    13,550View on GitHub↗

    This project is a terminal-based text editor and local file manipulation utility designed for modifying documents directly within a command-line environment. It functions as a text processing tool that enables users to perform file updates and content adjustments without requiring a graphical user interface. The editor provides a terminal-based user interface framework that renders interactive components through low-level character stream manipulation. It supports automated text processing by utilizing regular expression-based pattern matching to locate and replace character sequences across

    Rusteditorrustterminal
    View on GitHub↗13,550
  • mimecorg/vuidomimecorg avatar

    mimecorg/vuido

    6,062View on GitHub↗

    Vuido is a framework for building native desktop applications for Windows, macOS, and Linux using Vue.js components, without requiring Electron or Chromium. It maps Vue components directly to native widgets from the libui library, creating lightweight applications that run on a single-threaded event loop and compile templates at build time for optimized runtime performance. The framework provides a complete Vue.js component-to-native bridge, enabling two-way data binding via v-model, component-based window composition, and platform-specific package generation for distributing executables. It

    JavaScriptdesktoplibuivue
    View on GitHub↗6,062
  • cliutils/cli11CLIUtils avatar

    CLIUtils/CLI11

    4,322View on GitHub↗

    CLI11 is a header-only C++ library for parsing command line arguments and managing configuration files. It maps shell input to typed variables and supports the creation of complex command hierarchies. The library is distinguished by its support for nested subcommands with infinite depth and prefix matching. It integrates configuration management by allowing application settings to be loaded from TOML or INI files, with the ability to fall back to environment variables. The project provides a comprehensive set of tools for argument parsing, including flags and positional arguments, alongside

    C++clicli-parsercpp11
    View on GitHub↗4,322
  • johnlindquist/kitjohnlindquist avatar

    johnlindquist/kit

    4,189View on GitHub↗

    Kit is a desktop automation framework and scriptable UI toolkit designed for building personalized productivity tools. It serves as a cross-platform CLI wrapper and macOS system automator, providing an environment to execute scripts that manage operating system tasks, file management, and application workflows. The project distinguishes itself with a dedicated LLM integration layer for structured data extraction and text generation, alongside a specialized UI framework for creating interactive input forms, HTML windows, and floating widgets. It features deep macOS integration through AppleScr

    TypeScript
    View on GitHub↗4,189