Repository Analysis

charmbracelet/bubbletea

A powerful little TUI framework 🏗

3.2 Likely human-written View on GitHub
3.2
Adjusted Score
3.2
Raw Score
100%
Time Factor
2026-05-18
Last Push
42,773
Stars
Go
Language
16,669
Lines of Code
168
Files
51
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 1LOW 50

Pattern Findings

51 matches across 4 categories. Click a row to expand file-level details.

Over-Commented Block48 hits · 48 pts
SeverityFileLineSnippet
LOWraw.go1package tea
LOWraw.go21// for _, attr := range msg {
LOWcolor.go41}
LOWoptions.go41 return func(p *Program) {
LOWoptions.go101 }
LOWoptions.go121// return nil
LOWtea.go61
LOWtea.go81
LOWtea.go101 // breaking the unidirectional data flow of Bubble Tea.
LOWtea.go121 // }
LOWtea.go141 // WindowTitle sets the terminal window title. Support depends on the
LOWtea.go161 AltScreen bool
LOWtea.go181 //
LOWtea.go201//
LOWtea.go221// case "shift+enter":
LOWtea.go241type KeyboardEnhancements struct {
LOWtea.go261 // ReportAssociatedText requests the terminal to report the text associated
LOWtea.go281}
LOWtea.go381}
LOWtea.go441 // filter supplies an event filter that will be invoked before Bubble Tea
LOWtea.go461 //
LOWtea.go961// queried for various capabilities.
LOWscreen.go21 return clearScreenMsg{}
LOWscreen.go41//
LOWexec.go21// For non-interactive i/o you should use a Cmd (that is, a tea.Cmd).
LOWexec.go41// cmd := ExecProcess(c, func(err error) Msg {
LOWkey.go201// convenient and readable to use this method when matching against keys.
LOWkey.go221}
LOWkey.go261
LOWkey.go281//
LOWkey.go301// 'A', '1', '!', etc.).
LOWkey.go321 //
LOWkey.go341 // Console API.
LOWkey.go361// - alt
LOWmouse.go41 MouseButton11
LOWmouse.go61// case MouseMsg:
LOWcursed_renderer.go141
LOWcursed_renderer.go501 // just a cursor visibility change, we don't need to enter
LOWtermcap.go1package tea
LOWtermcap.go21// switch msg := msg.(type) {
LOWenviron.go1package tea
LOWkeyboard.go1package tea
LOWkeyboard.go21 // }
LOWcommands.go61// the entire specified duration. For example, if we're ticking for one minute
LOWcommands.go81// func tickEvery() Cmd {
LOWcommands.go121// a message containing the time at which the tick occurred.
LOWcommands.go141// func (m model) Init() (Model, Cmd) {
LOWexamples/progress-static/main.go1package main
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMexamples/keyboard-enhancements/main.go41 // This allows for more nuanced input handling in terminal applications.
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippet
LOWoptions.go14// Example usage:
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippet
LOWlogging.go15// Don't forget to close the file when you're done with it.