https://github.com/oetzilabs/better-opentui
reimplementation of sst/opentui with Effect-TS
https://github.com/oetzilabs/better-opentui
bun effect-ts javascript opentui tui typescript
Last synced: 9 months ago
JSON representation
reimplementation of sst/opentui with Effect-TS
- Host: GitHub
- URL: https://github.com/oetzilabs/better-opentui
- Owner: oetzilabs
- License: mit
- Created: 2025-08-19T20:45:49.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-09T11:32:09.000Z (9 months ago)
- Last Synced: 2025-09-09T14:31:02.599Z (9 months ago)
- Topics: bun, effect-ts, javascript, opentui, tui, typescript
- Language: TypeScript
- Homepage:
- Size: 571 KB
- Stars: 7
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# better-opentui
(the name is WIP and a joke, I don't really think its "better")
I made this library from "scratch" by looking at the [OpenTUI](https://github.com/sst/opentui) codebase and trying to understand it.
"better-opentui" is an **_experimental reimplementation_** of OpenTUI, a toolkit for building terminal user interfaces with [Effect-TS (website)](https://effect.website/), [Effect-TS (github)](https://github.com/effect-ts/effect) and [Zig](https://ziglang.org/).
**THERE WILL BE A LOT OF BREAKING CHANGES, SINCE THIS IS A WORK IN PROGRESS.**
## Usage
To install dependencies:
```bash
bun install
```
This also checks if you have zig installed and if not, it will install it for you, and build the zig project under [this directory](./packages/core/src/zig).
## Examples:
```bash
bun run examples/styled-text.ts
```
```bash
bun run examples/multi-select.ts
```
```bash
bun run examples/file-select.ts
```
# Acknowledgements
A big thanks to [@sst](https://github.com/sst), [@kommander](https://github.com/kommander) and every contributor for their work on OpenTUI and making it available as MIT licensed code for everyone to use.
(I copy pasted the MIT License from the OpenTUI repository, I hope that's fine)