A Go terminal UI for Gobuster built with Bubble Tea and Lip Gloss.
BurstUI provides a small TUI around common Gobuster workflows so you can switch modes, set options, run scans, and review live output without typing the full command each time.
- Supports Gobuster
dir,vhost, anddnsmodes - Startup detection of Gobuster path and version
- Live scan output with scrollable result pane
- Thread count input
- Mode-aware status code filters
- Wordlist file picker
- Optional custom DNS resolver for
dnsmode - Output log export after a scan completes
- Docker
OR
- Go
1.26.1or newer - Gobuster
3.8.2or newer - A working
gobusterbinary in yourPATH
docker pull ghcr.io/ctzisme/burstui:latestRun a BurstUI container with host wordlists mounted read-only and the current directory mounted to /output for saving scan logs.
docker run --rm -it \
-e TERM=xterm-256color \
-v /usr/share/wordlists:/usr/share/wordlists:ro \
-v "$(pwd):/output" \
ghcr.io/ctzisme/burstui:latestMake sure to save logs only to the mounted directory (for example, /output/123.log when using the command above).
go install github.com/ctzisme/burstui@latestOR
git clone https://github.com/ctzisme/burstui
cd burstui
go mod tidy
go build .OR
Download binary releases from the releases page.
Install the recommended Gobuster version v3.8.2:
go install github.com/OJ/gobuster/v3@v3.8.2OR
Install the latest Gobuster release:
go install github.com/OJ/gobuster/v3@latestUse it immediately in the current shell:
export PATH="$(go env GOPATH)/bin:$PATH"Verify that the Go-installed Gobuster is the one being used:
which gobuster
gobuster --versionFor Bash, add this line to ~/.bashrc:
export PATH="$HOME/go/bin:$PATH"To also cover login shells, add the same line to ~/.profile:
export PATH="$HOME/go/bin:$PATH"Then reload your shell:
source ~/.bashrc
hash -rStart the app:
./burstuiWhen BurstUI starts, it will show:
- Gobuster path from
which gobuster - Gobuster version from
gobuster --version
β / β: move between fieldsβ / βonMode: switch modeβ: fill a field with its placeholder when emptyTab/Shift+Tab: switch between form and result paneEnteronBrowse Wordlist: open the wordlist pickerEnteronStart Scan: run GobusterEnteronOutput Log File: save logs after a scan completesctrl+c: quit
Fields:
- Target URL
- Filter Status Codes
- Threads
- Wordlist Path
Generated command shape:
gobuster dir -u https://example.com -w wordlist.txt -s 200,301,302 -t 10 --status-codes-blacklist ""Notes:
- You can set multiple
Filter Status Codes, separated by commas (e.g.200,304,403). - If left empty, BurstUI uses
200
Fields:
- Target URL
- Exclude Status Codes
- Threads
- Wordlist Path
Generated command shape:
gobuster vhost -u https://example.com -w wordlist.txt -t 10 -xs 400 --append-domainNotes:
- You can set multiple
Exclude Status Codes, separated by commas (e.g.400,500). - If left empty, BurstUI uses
400
Fields:
- Domain
- Custom DNS Server (Optional)
- Threads
- Wordlist Path
Generated command shape:
gobuster dns -do example.com -w wordlist.txt -t 10With a custom resolver (optional):
gobuster dns -do example.com -w wordlist.txt -t 10 --resolver 8.8.8.8:53Notes:
- You cannot filter status codes in
dnsmode Custom DNS Serveris optional
After a scan finishes, you can save the collected output to a file using the Output Log File field.
Default output path:
./burstui-output.log
Make sure to save logs only to the mounted directory if using Docker.
main.go: program entrypointmodel.go: model, initialization, Gobuster startup detectionupdate.go: key handling, focus logic, update loopscan.go: Gobuster command construction and output streamingview.go: TUI renderingstyles.go: Lip Gloss styles and log coloring helpersversion.go: version metadata variables for release builds
