Repo of the Day
oliveryasuna/ink-frame: Grids of bordered boxes for Ink, where the borders actually join where they meet.
Published: Oct 6, 2026
Open repository ↗Grids of bordered boxes for Ink, where the borders actually join where they meet. - oliveryasuna/ink-frame
Summary
ink-addons is a Bun monorepo of small libraries that extend Ink for terminal UIs. It focuses on one specific problem: drawing grids of bordered boxes in the terminal where the borders actually join where they meet. The repo ships three packages, each documented in its own README.
What it is useful for
The core package, @oliveryasuna/ink-frame, addresses a recurring pain point in Ink: when you place bordered boxes next to each other, their borders typically overlap or double up. ink-frame produces grids where adjacent borders share a single character, so layouts look like one connected frame instead of stacked boxes.
The other two packages build on that primitive:
@oliveryasuna/ink-frame-scrolladds a scrollable viewport sized to fit a givenink-framerect, useful when a pane holds content longer than the screen.@oliveryasuna/ink-frame-layoutlets you declare grid templates (rows, columns, spans) that compile down toink-framerectangles, instead of hand-computing coordinates.
Together they are useful for CLI dashboards, REPLs, admin tools, or any Ink-based app that needs multi-pane layouts, tables with rules, or scrollable regions inside a fixed frame.
How engineers can use it
The repo is a Bun workspace, so setup uses Bun. The README pins the Bun version in .bun-version, and the documented commands are:
bun install # install every workspace
bunx tt # run the default 'verify' task
bunx tt --help # list available tasks
Tasks are defined with ts-task; the root runs repo-wide checks and merges in each package's own build and lint tasks. The layout is conventional: packages/* holds the published packages, and shared/ holds build and task helpers.
For per-package API details (props, sizing rules, example code), the README explicitly directs you to each package's own README under packages/ink-frame, packages/ink-frame-scroll, and packages/ink-frame-layout. The README does not document a unified usage walkthrough beyond the workspace setup, so treat those per-package READMEs as the primary reference.
One documented constraint to be aware of: the maintainer's contribution policy does not accept fully AI-generated pull requests, and the project is licensed MIT.