awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
Textualize avatar

Textualize/textual

0
View on GitHub↗
36,285 星标·1,222 分支·Python·MIT·9 次浏览textual.textualize.io↗

Textual

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 interface refreshes, eliminating the need for manual re-rendering logic. The layout engine allows developers to define widget geometry and visual properties using cascading style rules, enabling responsive designs that scale proportionally. Furthermore, an asynchronous message bus and non-blocking event loop coordinate communication between widgets and background tasks, ensuring the interface remains responsive during heavy computations.

The toolkit includes a comprehensive library of pre-styled components, such as data tables, text editors, tree views, and tabbed interfaces, alongside a fuzzy-matching command palette for efficient user navigation. It also provides robust developer tooling, including live CSS editing, snapshot testing for visual regressions, and the ability to serve terminal applications directly to web browsers.

Features

  • Terminal Application Frameworks - Provides a base application class to capture user input and manage screen updates in terminal environments.
  • Terminal User Interface Frameworks - Constructs terminal user interfaces using a library of pre-styled widgets and a flexible layout system.
  • Command Palettes - Displays a command palette modal for searching and executing commands using keyboard navigation.
  • Component Hierarchies - Organizes the user interface into a tree of nested objects that manage their own lifecycle, state, and rendering.
  • Declarative UI Frameworks - Enables the creation of sophisticated, interactive user interfaces using a declarative component model.
  • Terminal UI Components - Provides interactive checkbox controls for toggling options within terminal-based applications.
  • Terminal User Interfaces - Provides an event-driven framework for building interactive, graphical-style applications in terminal environments.
  • Application Definitions - Provides a base class to configure CSS paths, driver settings, and initial screen layouts.
  • Reactive Component Models - Updates interface elements automatically in response to underlying data changes.
  • Buttons - Display a focusable button that triggers specific actions through mouse clicks or keyboard input, supporting visual variations for different states.
  • CSS Styling - Applies visual styles and layout rules to widgets using a cascading stylesheet syntax.
  • Reactive State Management - Handles state updates automatically to trigger interface refreshes without manual initialization.
  • Reactive State Systems - Automatically tracks state changes in widget properties to trigger targeted interface refreshes.
  • UI Composition - Implements a compose method that yields widget instances to automatically mount them into the application layout.
  • Checkboxes - Display a focusable checkbox that stores a boolean value and allows users to change its state using the enter or space keys.
  • Component Querying - Retrieves widgets from the hierarchy using CSS selectors or type-based matching.
  • Data Tables - Provides interactive tabular components with support for sorting, navigation, and custom cell rendering.
  • Event Handlers - Responds to user interactions like key presses and mouse actions by defining event handler methods.
  • Event Handling - Propagates events from a child widget to its parent to allow parent widgets to respond to unhandled input.
  • List Views - Show a vertical list of items that users can navigate, highlight, and select using keyboard shortcuts or mouse interactions.
  • Navigation Controllers - Controls screen visibility by pushing, popping, or switching between different application containers.
  • Radio Buttons - Display a focusable radio button that stores a boolean value and functions within a group to allow single-choice selection from a list.
  • Tabbed Interfaces - Display a tabbed interface that allows users to switch between content sections using mouse clicks or keyboard navigation with dynamic tab management.
  • Terminal Layout Engines - Enables responsive terminal interface design using hierarchical widget structures and styling rules.
  • Text Input Widgets - Display a single-line text input field that supports focus, custom placeholders, and specific data types to restrict user input.
  • Message Buses - Coordinates communication between widgets and background tasks using a non-blocking event loop.
  • CLI Development - Listed in the “CLI Development” section of the Awesome Python awesome list.
  • Terminal Widget Toolkits - Provides pre-built widgets and controls for rapid construction of keyboard-navigable terminal applications.
  • Asynchronous Task Orchestrators - Provides systems for managing background operations and concurrency without blocking the main thread.
  • Reactive State Management - Synchronizes application data with user interface components to ensure the display reflects current state.
  • Testing Frameworks - Executes key presses and mouse clicks within an asynchronous test environment to verify application behavior.
  • Dropdown Menus - Display a compact, focusable dropdown menu that allows users to select a single value from a list of predefined options.
  • Layout Engines - Calculates widget geometry and visual properties by applying cascading style rules to a hierarchical tree of components.
  • Message Handlers - Automatically maps and executes logic when specific events reach a widget.
  • Selectable Lists - Provides interactive vertical lists supporting selection, focus, and custom item states.
  • Selection Lists - Show a vertical list of selectable options that users can navigate and toggle, supporting custom data types and rich text.
  • Text Input Controls - Collects user text input through terminal-based controls designed for data entry.
  • Theming Systems - Registers custom color themes to provide reusable CSS variables for application components.
  • Data Table Components - Shows structured data in a table format with configurable cursors for navigation and selection.
  • Command Providers - Implements custom search and discovery logic for dynamic command sets.
  • Concurrency Models - Manages concurrent tasks and user input through a non-blocking, single-threaded execution environment.
  • Task Delegation Systems - Offloads blocking operations to background threads to maintain high frame rates in the main interface loop.
  • Button Components - Displays interactive buttons in the terminal with various semantic styles and visual layouts.
  • Event Propagation Systems - Allows parent components to respond to unhandled child interactions through event bubbling.
  • File System Browsers - Show a navigable filesystem tree widget that allows users to browse directories and files within a terminal-based application.
  • Log Viewers - Provides scrollable widgets designed for real-time appending and management of text streams.
  • Markdown Renderers - Provides components for displaying formatted documents with support for typography and code blocks.
  • Masked Inputs - Display a text input field that restricts user entry based on a template mask to provide visual guidance and automatic validation.
  • Text Editors - Display a multi-line text input area that supports text selection, soft wrapping, undo history, and optional syntax highlighting.
  • Tree Views - Show hierarchical data in a focusable tree widget that supports expanding, collapsing, and selecting nodes through keyboard navigation.
  • Widget Styling - Updates terminal display automatically when visual properties are changed on the styles object.
  • Web-Based Terminal Emulators - Serves terminal-based applications directly to web browsers for remote access.
  • Markdown and Markup Tools - Renders and interacts with Markdown documents, including automatic table of contents generation.
  • Fuzzy Matching - Calculates match scores against candidate strings to improve search results.
  • Command Discovery - Yields command hits based on user input or default discovery states.
  • Command Palettes - Provides a searchable, fuzzy-matched command interface for efficient keyboard-driven application control.
  • Terminal Application Runners - Executes terminal applications using a dedicated runner that supports file paths and module imports.
  • Terminal Debugging Tools - Connects a separate console to capture system messages and events in real-time.
  • Background Task Managers - Monitors background task states and performs automatic cleanup when associated widgets are removed.
  • Terminal Emulators - Translates high-level UI commands into platform-specific escape sequences for consistent terminal rendering.
  • Concurrent Task Runners - Runs multiple coroutines concurrently and monitors their completion status and lifecycle.
  • Collapsible Containers - Display a container with a title that allows users to show or hide content by clicking or pressing enter on the component.
  • Data Inspectors - Provides interactive containers for viewing and debugging complex data structures.
  • Flexible Layout Systems - Uses fraction units to define flexible widget dimensions that automatically scale based on window size.
  • Footer Widgets - Show a docked footer at the bottom of a container that automatically lists available keybindings for the currently focused widget.
  • Header Widgets - Show a header at the top of a container that automatically pulls the application title, subtitle, icon, and clock.
  • Loading Indicators - Provides animated visual elements to signal background data processing or loading states.
  • Markdown Viewers - Provides components for rendering and navigating structured markdown content within terminal interfaces.
  • Progress Indicators - Show a progress bar widget to track the status of time-consuming tasks, supporting both indeterminate states and percentage-based completion tracking.
  • Radio Button Groups - Provides containers for managing mutually exclusive selection states among multiple options.
  • Real-time Loggers - Provides widgets for streaming and managing live log output with automatic scrolling.
  • Switch Widgets - Provides toggleable boolean input components with keyboard and styling support.
  • View Switchers - Provides containers that manage and toggle visibility between multiple child widgets.
  • Message Systems - Enables communication between widgets by defining custom message classes and posting them to the queue.

Star 历史

textualize/textual 的 Star 历史图表textualize/textual 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Textual 的开源替代方案

相似的开源项目,按与 Textual 的功能重合度排序。
  • anomalyco/opentuianomalyco 的头像

    anomalyco/opentui

    12,131在 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
    在 GitHub 上查看↗12,131
  • huntabyte/shadcn-sveltehuntabyte 的头像

    huntabyte/shadcn-svelte

    8,341在 GitHub 上查看↗

    shadcn-svelte is a collection of accessible and customizable user interface elements for Svelte applications. Rather than being distributed as a traditional dependency, these components are provided as source code that is copied directly into the project codebase. The library utilizes a registry-based distribution system, allowing users to install specific UI blocks and components via a command-line interface. This system uses JSON metadata to define dependencies and file paths, while a bootstrapping process automates the configuration of styles and CSS variables. The project integrates Tail

    TypeScriptbits-uishadcn-svelteshadcn-ui
    在 GitHub 上查看↗8,341
  • saadeghi/daisyuisaadeghi 的头像

    saadeghi/daisyui

    41,125在 GitHub 上查看↗

    This project is a utility-first component library that provides a comprehensive suite of pre-styled, reusable interface elements. It functions as a build-time engine that generates design-system-compliant styles by mapping semantic tokens to standard HTML elements and utility classes. By compiling all component styles into static CSS at build time, the library eliminates the need for client-side style calculation, ensuring efficient performance. The library distinguishes itself through a configuration-driven architecture that manages color palettes and visual styles, enabling dynamic switchin

    Sveltecomponentcomponent-librarycomponents
    在 GitHub 上查看↗41,125
  • charmbracelet/bubblescharmbracelet 的头像

    charmbracelet/bubbles

    7,796在 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
    在 GitHub 上查看↗7,796
查看 Textual 的所有 30 个替代方案→

常见问题解答

textualize/textual 是做什么的?

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.

textualize/textual 的主要功能有哪些?

textualize/textual 的主要功能包括:Terminal Application Frameworks, Terminal User Interface Frameworks, Command Palettes, Component Hierarchies, Declarative UI Frameworks, Terminal UI Components, Terminal User Interfaces, Application Definitions。

textualize/textual 有哪些开源替代品?

textualize/textual 的开源替代品包括: anomalyco/opentui — Opentui is a terminal user interface framework for building interactive command line applications. It provides a… huntabyte/shadcn-svelte — shadcn-svelte is a collection of accessible and customizable user interface elements for Svelte applications. Rather… saadeghi/daisyui — This project is a utility-first component library that provides a comprehensive suite of pre-styled, reusable… charmbracelet/bubbles — Bubbles is a terminal user interface toolkit and component library providing a set of pre-built, reusable widgets for… cosscom/coss — Coss is an accessible UI component library and design system framework used to build web interfaces. It provides a… avaloniaui/avalonia — Avalonia is a cross-platform desktop framework that enables the creation of native-feeling applications for Windows,…