원클릭으로
opentui
OpenTUI core development with vanilla TypeScript imperative API — components, layout, input, styling, animations, debugging.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
OpenTUI core development with vanilla TypeScript imperative API — components, layout, input, styling, animations, debugging.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Create, verify, and improve AGENTS.md files. Minimal, focused, progressive disclosure. Fixes bloat, contradictions, stale info.
Audit and plan website optimisation for AI agents, AI search, LLM discoverability, llms.txt, structured data, and sitemaps.
Build distinctive, production-grade frontend interfaces (websites, components, dashboards, layouts) with polished UI design that avoids generic AI aesthetics.
Generate and validate Awesome list READMEs following sindresorhus/awesome standards.
Scaffold type-safe TypeScript projects with the Better-T-Stack CLI — new projects, features, or troubleshooting.
Build full-stack TypeScript apps with Convex — server functions, schema, auth, file storage, real-time, frontend integration, testing, deployment.
| name | opentui |
| description | OpenTUI core development with vanilla TypeScript imperative API — components, layout, input, styling, animations, debugging. |
Expert assistance for building terminal user interfaces with OpenTUI's imperative API.
# Install dependencies
bun install @opentui/core
# Zig is required for native modules
# Install from: https://ziglang.org/download/
| Component | Purpose | Import |
|---|---|---|
TextRenderable | Text display with styling | import { TextRenderable } from "@opentui/core" |
BoxRenderable | Container with borders/backgrounds | import { BoxRenderable } from "@opentui/core" |
GroupRenderable | Layout containers | import { GroupRenderable } from "@opentui/core" |
InputRenderable | Single-line text input | import { InputRenderable } from "@opentui/core" |
SelectRenderable | Dropdown selection | import { SelectRenderable } from "@opentui/core" |
ScrollBoxRenderable | Scrollable content areas | import { ScrollBoxRenderable } from "@opentui/core" |
CodeRenderable | Syntax-highlighted code | import { CodeRenderable } from "@opentui/core" |
import { createCliRenderer } from "@opentui/core"
import { BoxRenderable, TextRenderable } from "@opentui/core"
async function main() {
const renderer = await createCliRenderer()
const box = new BoxRenderable()
const text = new TextRenderable("Hello, OpenTUI!")
box.add(text)
renderer.getRoot().add(box)
renderer.start()
// Handle Ctrl+C to exit
renderer.on("key", (key) => {
if (key.name === "c" && key.ctrl) {
renderer.destroy()
process.exit(0)
}
})
}
main()
import { Yoga } from "@opentui/core"
const group = new GroupRenderable()
group.setStyle({
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
width: 80,
height: 24,
})
See LAYOUT.md for all Yoga properties.
renderer.on("key", (key: KeyEvent) => {
if (key.name === "escape") process.exit(0)
if (key.name === "c" && key.ctrl) process.exit(0)
})
const input = new InputRenderable()
input.on("submit", (value: string) => {
console.log("Submitted:", value)
})
input.on("change", (value: string) => {
console.log("Changed:", value)
})
See INPUT.md for complete event handling patterns.
import { Color, parseColor } from "@opentui/core"
// Create colors
const red = new Color(255, 0, 0) // RGB integers
const blue = Color.fromInts(0, 0, 255) // Static method
const green = parseColor("#00FF00") // Parse hex
// Apply styles
box.setStyle({
backgroundColor: red,
foregroundColor: blue,
borderStyle: "double",
paddingLeft: 2,
paddingRight: 2,
})
See STYLING.md for color system and style properties.
import { Timeline } from "@opentui/core"
const box = new BoxRenderable()
const timeline = new Timeline({
duration: 1000,
easing: (t) => t * (2 - t), // easeOutQuad
})
timeline.to(box, {
backgroundColor: new Color(255, 0, 0),
}, {
onUpdate: () => renderer.render()
})
timeline.play()
See ANIMATION.md for animation patterns.
// Enable console overlay
import { consoleOverlay } from "@opentui/core"
renderer.attach(consoleOverlay())
// Now console.log() appears in terminal overlay
console.log("Debug: initialized")
Use /opentui for:
For React-specific development, use /opentui-react
For SolidJS-specific development, use /opentui-solid
For project scaffolding and examples, use /opentui-projects
/sst/opentui (168 code snippets, High reputation).search-data/research/opentui/