awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
charmbracelet avatar

charmbracelet/huh

0
View on GitHub↗
6,575 Stars·220 Forks·Go·mit·7 Aufrufe

Huh

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 unavailable, making terminal forms accessible to visually impaired users. Huh also supports multi-step form workflows, timed auto-submission with countdown timers, and secure input collection that masks typed characters.

Additional capabilities include file path browsing through an interactive directory navigation interface, scrollable lists for compact viewports, custom validation functions with error messages, and animated spinner widgets for indicating background work. The library integrates forms as composable models within terminal applications, with a centralized theme system that applies consistent colors, borders, and typography across all form elements.

Features

  • Terminal - Builds interactive multi-step forms in the terminal with text inputs, selects, confirmations, and file pickers.
  • Go TUI Libraries - Builds interactive terminal forms with text inputs, selects, confirmations, and file pickers using Go and Bubbletea.
  • Terminal Form Frameworks - Forms are embedded as a Bubbletea model within a Tea program, inheriting its message-passing architecture and terminal rendering lifecycle.
  • TUI Form Embeddings - Embeds forms as standard Bubbletea models within terminal applications for custom layout and state management.
  • Channel-Based Event Loops - Drives form progression and field updates through a central event loop that dispatches keyboard and timer events over Go channels.
  • Composable Field Widgets - Builds forms as a tree of composable field widgets, each implementing a shared interface for rendering, input handling, and validation.
  • CLI Confirmation Prompts - Display a yes/no prompt and return the user's binary choice before proceeding.
  • Multi-Step Orchestrators - Orchestrates a sequence of input groups as pages, guiding a user through structured data entry.
  • Dynamic Input Forms - Creates forms that show, hide, or modify fields at runtime based on user input and conditional rules.
  • Reflection-Based Model Bindings - Each form field is bound to a Go model struct, with values automatically read and written through reflection-based mapping.
  • Dynamic Field Populators - Recomputes field titles and choices based on the current value of another field in the form.
  • Conditional Field Adapters - Update field titles and options based on previous selections as the user progresses.
  • Short-form Text Inputs - Prompts the user to enter a line of free-form text and returns the submitted value.
  • Keyboard Navigation - Navigates and completes terminal forms using only keyboard controls without requiring a mouse.
  • Select Inputs - Chooses one or more options from a presented list of choices.
  • Single-Select Inputs - Presents a list of choices and records the one the user picks, supporting any value type.
  • Selection Lists - Presents a list of choices and stores the selected value.
  • Accessible Terminal Inputs - Collecting user input in terminal environments with screen reader support and secure text masking.
  • Text Input Widgets - Accepts free-form text from the user, validating and returning the entered value.
  • Conditional Field Visibility - Displays or hides input fields based on the value of another field, adapting the form to user choices.
  • Runtime Field Graph Resolutions - Resolves field visibility and order at runtime by evaluating conditional rules against the current form state, enabling adaptive flows.
  • Text Input Fields - Ships single-line text input fields with optional validation and character limits.
  • Interactive File Pickers - Navigates directories and selects a file path using an interactive file browser.
  • Timed Auto-Submissions - Running terminal forms with automatic submission after a configurable countdown timer expires.
  • Secure Input Session Support - Collects sensitive text input without echoing characters to the terminal, protecting against shoulder surfing.
  • Form Field Announcements - Announce form fields and their labels to screen readers, switching to text prompts when a visual interface is not accessible.
  • Terminal Fallback Bridges - Detects non-TUI environments and switches to a text-prompt mode that reads fields aloud via standard output, maintaining accessibility.
  • Text Prompt Fallbacks - Renders form fields as standard text prompts so assistive technology can navigate them without a visual interface.
  • Multi-line Text Inputs - Provides multi-line text input fields with configurable character limits for terminal forms.
  • Terminal Directory Browsers - Browsing and selecting file paths through an interactive directory navigation interface.
  • Terminal Input Validation - Validates terminal form input against custom functions and displays error messages on rejection.
  • Field Grouping Containers - Steps through related fields organized into labeled groups one at a time.
  • Scrollable Form Lists - Scrolls through a long list of options or fields inside a compact terminal viewport.
  • Multiple Selections - Selects several items from a list with an optional limit on the number of selections.
  • Terminal Accessibility Tools - Renders forms with screen reader announcements and falls back to text prompts when visual UI is unavailable.
  • Conditional Field Skipping - Jumps over a field when a rule is met, letting users bypass irrelevant questions.

Star-Verlauf

Star-Verlauf für charmbracelet/huhStar-Verlauf für charmbracelet/huh

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Open-Source-Alternativen zu Huh

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Huh.
  • cosscom/cossAvatar von cosscom

    cosscom/coss

    10,125Auf GitHub ansehen↗

    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

    TypeScriptnextjsradix-uireact
    Auf GitHub ansehen↗10,125
  • gluestack/gluestack-uiAvatar von gluestack

    gluestack/gluestack-ui

    4,931Auf GitHub ansehen↗

    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

    TypeScriptaccessibilitycomponent-librarycustomizable-components
    Auf GitHub ansehen↗4,931
  • skim-rs/skimAvatar von skim-rs

    skim-rs/skim

    6,592Auf GitHub ansehen↗

    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

    Rustfuzzyfinderrustskim
    Auf GitHub ansehen↗6,592
  • taiga-family/taiga-uiAvatar von taiga-family

    taiga-family/taiga-ui

    4,002Auf GitHub ansehen↗

    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

    TypeScriptangularbest-practicescdk
    Auf GitHub ansehen↗4,002
Alle 30 Alternativen zu Huh anzeigen→

Häufig gestellte Fragen

Was macht charmbracelet/huh?

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.

Was sind die Hauptfunktionen von charmbracelet/huh?

Die Hauptfunktionen von charmbracelet/huh sind: Terminal, Go TUI Libraries, Terminal Form Frameworks, TUI Form Embeddings, Channel-Based Event Loops, Composable Field Widgets, CLI Confirmation Prompts, Multi-Step Orchestrators.

Welche Open-Source-Alternativen gibt es zu charmbracelet/huh?

Open-Source-Alternativen zu charmbracelet/huh sind unter anderem: cosscom/coss — Coss is an accessible UI component library and design system framework used to build web interfaces. It provides a… gluestack/gluestack-ui — gluestack-ui is a cross-platform React component library built with Tailwind CSS. It provides over 30 pre-built,… skim-rs/skim — Skim is a cross-platform interactive fuzzy finder that runs as a terminal application, a Rust library, a Vim and… taiga-family/taiga-ui — Taiga UI is an Angular UI component library and accessible design system used for building enterprise web interfaces.… filamentphp/filament — Filament is a full-stack framework for building administrative panels and management interfaces within the Laravel… chakra-ui/ark — Ark is a headless UI component library that delivers accessible, cross-framework primitives with behavior governed by…