TakoA structured framework for terminal applications.
Build rich, scalable TUIs in Go. UI library agnostic. Extensible by design.
Build rich, scalable TUIs in Go. UI library agnostic. Extensible by design.

Tako doesn't dictate your renderer. Use Bubble Tea, tview, tcell, or termbox. We handle the infrastructure, you choose the canvas.
Say goodbye to messy global states. Organize your TUI into clean, decoupled layers, components, and services for maximum maintainability.
Build modular extensions. Distribute and integrate independent plugins seamlessly without altering the core framework logic.
Replace tightly-coupled code with our built-in Service Container. Easily resolve loggers, config, and events via clean interfaces.
Our Key Router guarantees keystrokes only reach active elements.
Quickly implement modals, overlays, and complex navigations using built-in high-level patterns like OverlayManager and DialogService.
_contracts.UIRenderer with any library you like — tview, tcell, Bubble Tea, or a raw terminal renderer. Register it once via the service container and Tako handles the rest. tako.Run(app). package main
import (
"log"
"github.com/takoterm/tako"
"github.com/takoterm/tako/contracts"
"github.com/takoterm/tako/pkg/adapter/bubbletea"
)
func main() {
app := tako.NewApp()
app.Keys().Bind("ctrl+c", func() {
app.Shutdown()
})
// Use the official Bubble Tea adapter — the most popular
// Go TUI library is supported out of the box.
app.Container().Singleton(
new(contracts.UIRenderer),
bubbletea.NewAdapter(app.Context(), app.EventBus(), app.Router(), &myLayout{}),
)
if err := tako.Run(app); err != nil {
log.Fatalf("tako: %v", err)
}
}Treat your TUI like a modern web app. Use overlays, dialogs, and absolute positioning without managing complex array states.
Decouple your components using the powerful built-in Event Bus. Broadcast actions across your entire application effortlessly.
Debug visually. Tako includes a built-in Inspector and Profiler to monitor container bindings, events, and performance in real-time.
The contracts.UIRenderer interface is the only surface the framework ever calls. Swap your library at any time — your plugins, event bus, key router, storage, and devtools keep working.
Bubble Tea is the most popular Go TUI library, so Tako ships an official Bubble Tea adapter (pkg/adapter/bubbletea) and also uses it internally for its Inspector and log viewer commands — but this is a private detail in internal/ui. Your app is never affected.