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
AlecAivazis avatar

AlecAivazis/surveyArchived

0
View on GitHub↗
4,113 stars·351 forks·Go·MIT·14 views

Survey

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 responses meet specific rules before they are processed. It handles the underlying terminal abstraction for POSIX and Windows environments, using raw-mode input and ANSI rendering to create an interactive prompting experience.

Features

  • Interactive Prompt Toolkits - A comprehensive Go toolkit for building interactive TUIs with selectable lists, text input, and validation.
  • Terminal User Interface Frameworks - Provides a framework and set of components for building interactive, text-based user interfaces and forms within a terminal.
  • CLI Confirmation Prompts - Provides a specialized terminal utility for capturing binary yes/no confirmations from users.
  • Command-Line Input Toolkits - Ships a collection of visual input controls specifically designed for structured data collection in terminals.
  • Interactive Input Collecters - Facilitates the sequential gathering of multiple user responses into a structured data format.
  • CLI Input Validation - Implements rules and constraints to verify command-line input and request retries for invalid data.
  • Selection Lists - Provides paginated, keyboard-navigable lists for selecting one or multiple options in the terminal.
  • User Input Capture - Captures single-line strings, multi-line blocks, and obscured password entries through interactive prompts.
  • Cross-Platform Terminal Abstractions - Provides a unified API that abstracts the differences between Windows console APIs and POSIX terminal codes.
  • ANSI Escape Sequence Renderers - Implements raw terminal control codes to manage cursor movement and text styling for interactive interfaces.
  • Prompt Interaction State Machines - Uses a deterministic state machine to manage the sequence of input, validation, and re-rendering in prompts.
  • External Editor Integration - Integrates external system editors into the prompt flow for capturing long-form text input.
  • External Editor Integrations - A CLI utility that opens a temporary file in the system text editor to capture complex multi-line input.
  • Custom Logic Validation - Allows developers to define custom functional logic to validate user input beyond simple pattern matching.
  • Raw Mode Input Handlers - Disables terminal line buffering and echo to capture individual keystrokes for real-time navigation.
  • Terminal Interface Design - Provides a framework for creating structured and accessible layouts that guide users through data entry steps.

Star history

Star history chart for alecaivazis/surveyStar history chart for alecaivazis/survey

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

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

Start searching with AI

Projects sharing features with Survey

These projects share indexed features with Survey. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • 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
  • 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
Compare all 30 related projects→

Frequently asked questions

What does alecaivazis/survey do?

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.

What are the main features of alecaivazis/survey?

The main features of alecaivazis/survey are: Interactive Prompt Toolkits, Terminal User Interface Frameworks, CLI Confirmation Prompts, Command-Line Input Toolkits, Interactive Input Collecters, CLI Input Validation, Selection Lists, User Input Capture.

Which projects share features with alecaivazis/survey?

Projects with overlapping indexed features include: terkelg/prompts — This project is a Node.js CLI input library and toolkit for building interactive command-line user interfaces. It… peterbrittain/asciimatics — Asciimatics is a cross-platform terminal user interface framework and console wrapper. It functions as a… cronvel/terminal-kit — Terminal-kit is a Node.js toolkit for building command-line applications and console user interfaces. It provides a… jroimartin/gocui — gocui is a console user interface library for the Go programming language. It provides a toolkit for building… c-bata/go-prompt — go-prompt is a library for building interactive command-line interfaces in Go. It serves as a cross-platform console… chjj/blessed — This project is a terminal user interface library for Node.js, designed to facilitate the construction of interactive…