A Go-based CLI tool that provides enhanced versions of Linux networking commands with better visualization and testing capabilities.
- Enhanced Route Management: Improved
ip routecommands with tree visualization and efficient route lookup - Network Interface Display: Enhanced
ip linkcommands with hierarchical display options - Tree Visualization: Hierarchical display of routes and network interfaces
- Cross-Platform: Builds for Linux and Darwin (macOS)
git clone https://github.com/your-username/goute.git
cd goute
make buildThe binary will be available in the bin/ directory.
# Show routing table
goute ip route show
# Show routing table in tree format
goute ip route show --tree
# Find route for specific IP
goute ip route get 8.8.8.8# Show network interfaces
goute ip link show
# Show network interfaces in tree format
goute ip link show --tree--tree: Display output in hierarchical tree format-o <format>: Output format (available for some commands)
- Go 1.21 or later
- Make
goute/
├── cmd/ # Command definitions (Cobra CLI)
│ ├── ip/
│ │ ├── route/ # Route command implementations
│ │ └── link/ # Link command implementations
├── internal/
│ ├── commands/ # Command execution abstraction
│ ├── route/ # Route parsing and management
│ ├── link/ # Link parsing and management
│ └── errors/ # Custom error types
├── testing/ # Test data files
└── bin/ # Built binaries
- Command Abstraction: Swappable command runners for testing vs. production
- Efficient Route Lookup: Trie data structure for fast route resolution
- Rich Parsing: Handles complex route attributes (scope, protocol, metrics)
- Quality Assurance: Comprehensive linting, security scanning, and testing
- Fork the repository
- Create a feature branch
- Make your changes
- Run quality checks with
make check - Submit a pull request
The CLI uses the Cobra framework with a hierarchical command structure:
goute(root command)ip(IP utilities)route(routing table commands)show/list- Display routing tablesget <ip>- Find route for specific IP
link(network interface commands)show/list- Display network interfaces
The tool enhances standard Linux networking commands with improved visualization and better data organization.