package main import ( "fmt" "os" tea "github.com/charmbracelet/bubbletea" ) type model int func (m model) Init() tea.Cmd { return nil } func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch msg.String() { case "ctrl+c", "q": return m, tea.Quit case "+": return m + 1, nil case "-": return m - 1, nil } } return m, nil } func (m model) View() string { return fmt.Sprintf("Count: %d\nPress + to increment, - to decrement, q to quit.\n", m) } func main() { p := tea.NewProgram(model(0), tea.WithAltScreen()) if err := p.Start(); err != nil { fmt.Fprintf(os.Stderr, "Error running program: %v\n", err) os.Exit(1) } }