Show HN: Giggles – A batteries-included React framework for TUIs

Published: (March 2, 2026 at 09:26 PM EST)
1 min read

Source: Hacker News

Overview

I built a framework that handles focus and input routing automatically for you—something born out of the gaps left by Ink and inspired by Charmbracelet’s Bubble Tea.

Features

  • Hierarchical focus and input routing
    Define focus regions with useFocusScope and compose them freely—e.g., a text input inside a list inside a panel just works. Each component owns its keys; unhandled keypresses bubble up to the appropriate parent automatically. No global handler like useInput, no coordination code required.

  • UI components (15 total)
    Includes Select, TextInput, Autocomplete, Markdown, Modal, Viewport, CodeBlock (with diff support), VirtualList, CommandPalette, and more. All come with sensible defaults and render‑prop APIs for full customization.

  • Terminal process control
    Spawn processes and stream output into your TUI with hooks such as useSpawn and useShellOut. Hand off to external programs like vim or less, and reclaim control cleanly when they exit.

  • Screen navigation & keybinding registry
    Built‑in support for navigation, a ? help menu, and theming.

  • React 19 compatible

Getting Started

npx create-giggles-app

Documentation & Demos

Live interactive demos and documentation are available at:

Discussion

Comments can be found on Hacker News.

0 views
Back to Blog

Related posts

Read more »

LazyLogcat is available in Homebrew now

Android Studio's Logcat panel is great, but I don't want to use the IDE when I need access to logs only. So I built lazylogcat — a keyboard‑driven terminal UI f...

Drizzle joins PlanetScale

I am excited to announce that the Drizzlehttps://orm.drizzle.team/ team is joining PlanetScale to continue their mission of building the best database tools for...