This project is open to contributions!
Fork the repository on GitHub.
Dev container (recommended): Open the repo in VS Code and choose "Reopen in Container" when prompted. Everything is ready to go.
| Command | Description |
|---|---|
go run . |
To run the current code |
go run . -demo |
To run with standardized demo interfaces and network hosts (demo wifi interface has 50 hosts for stress testing) |
make build |
Build the nibble binary |
make fix |
Format, vet, and fix the codebase |
make demo |
Generate demo.gif using VHS |
- Open or select an issue before starting significant work so we can discuss the approach.
- Keep PRs focused, one feature or fix per PR.
- Run
make fixbefore submitting to ensure code is formatted and vetted. - If you're adding a feature, update the README if it affects usage or hotkeys.
- Don't forget to keep the help.go views up to date
main.go Entry point
internal/
history/ Scan history storage and retrieval
delete/ History deletion logic
paths/ History file path management
ports/ Port list management
services/ Port-to-service name lookup
scanner/ Network scanning
config/ Scanner configuration (port lists)
demo/ Demo mode scanner
ip4/ Real IPv4 scanner (ARP, banners, OS detection)
linux/ Linux-specific network code
macos/ macOS-specific network code
windows/ Windows-specific network code
shared/ Shared types: Scanner interface, results, OUI lookup
tui/ Bubble Tea UI (views, models, rendering)
views/
common/ Shared UI components and styles
history/ Scan history browser view
main/ Main/home view
ports/ Port configuration view
scan/ Live scan view
target/ Target host detail view
- Test manually all affected features, and verify your change works with no unintended side effects.
- Open a pull request against
mainwith a clear description of what is added/fixed and why.