// Command tui is the correx terminal UI: a Bubble Tea client that speaks the // correx WebSocket protocol to apps/server. package main import ( "context" "flag" "fmt" "os" tea "charm.land/bubbletea/v2" "github.com/correx/tui-go/internal/app" "github.com/correx/tui-go/internal/ws" ) func main() { host := flag.String("host", "localhost", "server host") port := flag.Int("port", 8080, "server port") flag.Parse() if path := os.Getenv("CORREX_TUI_LOG"); path != "" { f, err := tea.LogToFile(path, "tui") if err != nil { fmt.Fprintln(os.Stderr, "correx tui: cannot open log file:", err) os.Exit(1) } defer f.Close() app.EnableDebugLog() } client := ws.New(*host, *port) ctx, cancel := context.WithCancel(context.Background()) defer cancel() go client.Run(ctx) // Alt-screen is requested per-frame via the View's AltScreen field in v2. p := tea.NewProgram(app.NewModel(client)) if _, err := p.Run(); err != nil { fmt.Fprintln(os.Stderr, "correx tui error:", err) os.Exit(1) } }