awscbtui is a terminal UI for browsing AWS CodeBuild projects, builds, and live CloudWatch Logs. It provides a fast, keyboard-driven interface to inspect builds, tail logs, and run common actions without leaving the terminal.
- Browse CodeBuild projects and builds
- View build details (phases, environment, artifacts)
- Tail CloudWatch Logs for a selected build with efficient buffering
- Command log showing AWS calls and timings
- Configurable keybindings and refresh intervals
- Fake AWS implementations for fast unit tests
cmd/awscbtui: CLI entrypoint (main.go)pkg/ui: TUI code (layout, renderers, keymap, navigation)pkg/state: AppState, intents, reducer, selectorspkg/jobs: Background job dispatcher, timers, job typespkg/aws: AWS SDK wrappers and DTOs;fake/contains test fakespkg/config: Config loading and app settingspkg/logging: Command log and logger adapterpkg/util: Utilities (ring buffer, debounce, backoff, clipboard)test/: Unit tests for reducers, intents, and fakesdocs/: Design, PLAN, STRUCTURE, and NOTES
Prerequisites
- Go 1.20+
- AWS credentials/config in
~/.awsor environment variables for real AWS access
Build
go build -o bin/awscbtui ./cmd/awscbtuiRun
# run with real AWS credentials
./bin/awscbtui
# run with fakes (TBD: feature flag to use fakes)
./bin/awscbtui --use-fakesThe app loads AWS config from the environment and ~/.aws. App-specific config can be placed in ~/.config/awscbtui/config.yml (example config coming soon). Precedence: environment > AWS config > app config.
- Keep UI updates on the main goroutine; use channels for worker results.
- Use contexts for cancellable background jobs.
- Write reducer tests first for predictable state management.
- Use fakes in
pkg/aws/fakefor fast unit tests without hitting AWS.
Run tests
go test ./...Linting & formatting
gofmt -w .
# Optional: golangci-lint runSee docs/PLAN.md for milestone breakdown (skeleton, AWS integration, logs tailing, UX polish).