awesome-repositories.com
Blog
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
vadimdemedes avatar

vadimdemedes/ink

0
View on GitHub↗
38,933 stars·1,013 forks·TypeScript·MIT·12 viewsterm.ink↗

Ink

Ink is a declarative framework for building interactive command-line applications using a component-based architecture. It functions as a console renderer that maps component trees to terminal output buffers, allowing developers to manage stateful interfaces through standard component reconciliation. By translating high-level layout and style properties into terminal control codes, it enables the creation of responsive, dynamic interfaces within the console.

The framework distinguishes itself by integrating a cross-platform layout engine that applies a flexible box model to the character-based grid, facilitating complex visual structures. It provides a low-level abstraction layer for raw input stream interception, which allows for granular handling of keystrokes and control sequences. This combination of a virtual terminal buffer and direct stream management ensures consistent behavior and visual presentation across different operating systems and terminal environments.

Beyond its core rendering capabilities, the project supports a wide range of interface features including text styling, input handling, and lifecycle management. It includes mechanisms for capturing pasted content and notifying assistive technologies of screen updates to support accessibility. The framework manages the entire application lifecycle, ensuring that render output is fully flushed to the terminal during process exits.

Features

  • Terminal UI Frameworks - Provides a declarative library for building interactive command-line interfaces using component-based architecture and standard layout primitives.
  • Terminal User Interfaces - Provides a framework for building complex, interactive command-line applications with responsive layouts and visual styling.
  • Declarative Terminal Frameworks - Uses a declarative component tree to calculate UI changes and apply minimal updates to the terminal output buffer.
  • Terminal Rendering Engines - Translates high-level style and layout properties into standard terminal control codes for cross-platform text formatting.
  • React Console Renderers - Maps React component trees to terminal output buffers for dynamic and stateful command-line applications.
  • Interactive Terminal Runtimes - Builds responsive command-line applications by managing component trees and input streams.
  • Console Rendering Engines - Manages stateful command-line output by mapping component trees to terminal buffers for dynamic user interfaces.
  • Cross-Platform Console Tooling - Develops command-line utilities that maintain consistent behavior and visual presentation across different operating systems.
  • Terminal Input Interceptors - Configures the terminal input stream to capture raw keystrokes and control sequences directly for granular user interaction handling.
  • Terminal Layout Engines - Calculates element dimensions and positions using a cross-platform layout engine to enable responsive design within a character-based grid.
  • Command Line Interfaces - Framework for building interactive CLI apps using React.
  • JavaScript CLI Frameworks - React-based framework for interactive CLI apps.
  • Renderers - Renderer for building interactive command-line interfaces.
  • Renderers and Integration - Renderer for interactive command-line interfaces.
  • TUI Libraries - React for Node.js CLI apps.
  • Terminal Emulators - Manages raw input streams and ANSI escape sequences to provide consistent terminal behavior across different operating systems.
  • Terminal Buffering Systems - Maintains an in-memory representation of the terminal screen to track state changes before flushing them to the actual console.
  • Terminal UI Components - Creates complex visual structures using a flexible box model that manages dimensions, spacing, alignment, and borders.
  • Terminal UI Layouts - Positions interface elements using flexible containers that manage spacing, alignment, and borders.
  • Terminal Layout Engines - Translates flexible box model properties into coordinate-based rendering for complex console interfaces.
  • Terminal Event Handlers - Registers callbacks to receive character data and key-press metadata to enable navigation and control.
  • Terminal Stream Controllers - Intercepts user data by controlling standard input streams and raw mode settings.
  • Console Application Styling - Enhances the readability and visual impact of command-line output by applying colors, font weights, and decorative formatting.
  • Terminal Input Handlers - Captures and processes complex user interactions like keyboard events and clipboard data within text-based interfaces.
  • Terminal Input Trackers - Tracks key states and input sequences to ensure accurate user interaction across various command-line applications.
  • Terminal Accessibility Tools - Notifies assistive technologies about screen changes by applying standard roles and labels to terminal output.
  • Terminal Text Stylers - Improves readability by applying colors, font weights, and decorative effects to console output.

Star history

Star history chart for vadimdemedes/inkStar history chart for vadimdemedes/ink

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

Open-source alternatives to Ink

Similar open-source projects, ranked by how many features they share with Ink.
  • charmbracelet/gumcharmbracelet avatar

    charmbracelet/gum

    22,814View on GitHub↗

    Gum is a toolkit for building interactive, visually styled command-line interfaces and prompts directly within shell scripts. It functions as a library of modular components that allow developers to enhance terminal workflows by adding structured layouts, formatted text, and user-input widgets to standard command-line operations. The project distinguishes itself by providing a suite of specialized utilities for common shell tasks, such as fuzzy-matched selection menus, interactive file system navigation, and confirmation dialogs. It translates high-level styling and layout instructions into t

    Gobashshell
    View on GitHub↗22,814
  • 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
  • willmcgugan/richwillmcgugan avatar

    willmcgugan/rich

    56,640View on GitHub↗

    Rich is a Python terminal formatting library and user interface framework. It provides tools for rendering rich text, colors, and complex layouts within a terminal environment, including specialized formatters for markdown and source code syntax highlighting. The library distinguishes itself through high-level UI components such as tables with unicode borders, hierarchical tree views for nested data structures, and a system for building structured terminal user interfaces. It also includes a debugging visualizer for pretty-printing complex data and formatting error tracebacks. The capability

    Python
    View on GitHub↗56,640
  • charmbracelet/bubbleteacharmbracelet avatar

    charmbracelet/bubbletea

    43,164View on GitHub↗

    This framework provides a functional architecture for building interactive command-line applications. It utilizes a reactive runtime engine that synchronizes application state, user input, and visual output through a central event-driven message loop. By employing a unidirectional data flow pattern, the framework separates the definition of application state from the logic that processes updates and the declarative rendering process that transforms state into terminal-ready output. The framework distinguishes itself through its approach to side-effect management and terminal environment adapt

    Goclielm-architectureframework
    View on GitHub↗43,164
See all 30 alternatives to Ink→

Frequently asked questions

What does vadimdemedes/ink do?

Ink is a declarative framework for building interactive command-line applications using a component-based architecture. It functions as a console renderer that maps component trees to terminal output buffers, allowing developers to manage stateful interfaces through standard component reconciliation. By translating high-level layout and style properties into terminal control codes, it enables the creation of responsive, dynamic interfaces within the console.

What are the main features of vadimdemedes/ink?

The main features of vadimdemedes/ink are: Terminal UI Frameworks, Terminal User Interfaces, Declarative Terminal Frameworks, Terminal Rendering Engines, React Console Renderers, Interactive Terminal Runtimes, Console Rendering Engines, Cross-Platform Console Tooling.

What are some open-source alternatives to vadimdemedes/ink?

Open-source alternatives to vadimdemedes/ink include: charmbracelet/gum — Gum is a toolkit for building interactive, visually styled command-line interfaces and prompts directly within shell… nsf/termbox-go — termbox-go is a Go terminal user interface library and cross-platform terminal emulator abstraction. It provides a… willmcgugan/rich — Rich is a Python terminal formatting library and user interface framework. It provides tools for rendering rich text,… charmbracelet/bubbletea — This framework provides a functional architecture for building interactive command-line applications. It utilizes a… arthursonzogni/ftxui — FTXUI is a C++ terminal user interface library and cross-platform console framework used for building interactive… spectreconsole/spectre.console — Spectre.Console is a .NET framework designed for building structured, feature-rich command-line applications. It…