Three interconnected CLI improvements: New status command (cmd/status.go): - Fetches live claude.ai subscription data using the claudeai client - Renders rate-limit windows (5-hour, 7-day all/Opus/Sonnet) with color-coded progress bars: green <50%, orange 50-80%, red >80% - Shows overage spend limits and usage percentage - Handles partial data gracefully (renders what's available) - Clear onboarding guidance when no session key is configured Setup wizard rewrite (cmd/setup.go): - Replace raw bufio.Reader prompts with charmbracelet/huh multi-step form - Three form groups: welcome screen, credentials (session key + admin key with password echo mode), and preferences (time range + theme select) - Pre-populates from existing config, preserves existing keys on empty input - Dracula theme for the form UI - Graceful Ctrl+C handling via huh.ErrUserAborted Table renderer modernization (internal/cli/render.go): - Replace 120-line manual box-drawing table renderer with lipgloss/table - Automatic column width calculation, rounded borders, right-aligned numeric columns (all except first) - Filter out "---" separator sentinels (not supported by lipgloss/table) - Remove unused style variables (valueStyle, costStyle, tokenStyle, warnStyle) and Table.Widths field Config display update (cmd/config_cmd.go): - Show claude.ai session key and org ID in config output Dependencies (go.mod): - Add charmbracelet/huh v0.8.0 for form-based TUI wizards - Upgrade golang.org/x/text v0.3.8 -> v0.23.0 - Add transitive deps: catppuccin/go, harmonica, hashstructure, etc.
52 lines
2.1 KiB
Modula-2
52 lines
2.1 KiB
Modula-2
module cburn
|
|
|
|
go 1.24.2
|
|
|
|
require (
|
|
github.com/BurntSushi/toml v1.6.0
|
|
github.com/charmbracelet/bubbles v1.0.0
|
|
github.com/charmbracelet/bubbletea v1.3.10
|
|
github.com/charmbracelet/huh v0.8.0
|
|
github.com/charmbracelet/lipgloss v1.1.0
|
|
github.com/spf13/cobra v1.9.1
|
|
modernc.org/sqlite v1.46.1
|
|
)
|
|
|
|
require (
|
|
github.com/atotto/clipboard v0.1.4 // indirect
|
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
|
github.com/catppuccin/go v0.3.0 // indirect
|
|
github.com/charmbracelet/colorprofile v0.4.1 // indirect
|
|
github.com/charmbracelet/harmonica v0.2.0 // indirect
|
|
github.com/charmbracelet/x/ansi v0.11.6 // indirect
|
|
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
|
|
github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0 // indirect
|
|
github.com/charmbracelet/x/term v0.2.2 // indirect
|
|
github.com/clipperhouse/displaywidth v0.9.0 // indirect
|
|
github.com/clipperhouse/stringish v0.1.1 // indirect
|
|
github.com/clipperhouse/uax29/v2 v2.5.0 // indirect
|
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/mattn/go-localereader v0.0.1 // indirect
|
|
github.com/mattn/go-runewidth v0.0.19 // indirect
|
|
github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect
|
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
|
github.com/muesli/cancelreader v0.2.2 // indirect
|
|
github.com/muesli/termenv v0.16.0 // indirect
|
|
github.com/ncruces/go-strftime v1.0.0 // indirect
|
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
|
github.com/spf13/pflag v1.0.6 // indirect
|
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
|
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect
|
|
golang.org/x/sys v0.38.0 // indirect
|
|
golang.org/x/text v0.23.0 // indirect
|
|
modernc.org/libc v1.67.6 // indirect
|
|
modernc.org/mathutil v1.7.1 // indirect
|
|
modernc.org/memory v1.11.0 // indirect
|
|
)
|