6 releases
new 0.2.2 | May 9, 2025 |
---|---|
0.2.1 | Apr 9, 2025 |
0.1.3 | Apr 6, 2025 |
0.1.2 | Mar 22, 2025 |
#565 in Visualization
123 downloads per month
115KB
668 lines
MyIP
A clean, intuitive terminal UI for network interface monitoring.
Installation • Usage • Interface Details • Contributing
Installation
Prerequisites
- Rust toolchain (1.70 or later)
- Network connectivity (for public IP detection)
Using Cargo
# Install the latest version
cargo install myip-tui
# Or specify a version
cargo install myip-tui@0.2.0
Usage
Simply run the application from your terminal:
myip
Keyboard Controls
Key | Action |
---|---|
q |
Quit application |
ESC |
Quit application |
Interface Details
MyIP provides a detailed view of your network interfaces in a clean, organized terminal UI:
Main Screen Elements
- Header: Displays your hostname
- Public IP: Shows your external IP address (fetched from online services)
- Interface Panels: Each network interface is displayed with:
- Status (up/down)
- IPv4 and IPv6 addresses
- MAC address (when available)
- MTU and link speed (when available)
- RX/TX traffic statistics
- Real-time traffic graph
- Debug Panel: Shows detected interfaces and diagnostic information
- Footer: Displays keyboard controls
Network Traffic Graphs
Each interface panel includes a real-time graph that visualizes:
- RX (Download): Shown in green
- TX (Upload): Shown in red
The graph automatically scales based on traffic volume and provides meaningful units (B/s, KB/s, MB/s).
Public IP Detection
MyIP attempts to fetch your public IP address from multiple services:
- api.ipify.org
- ifconfig.me/ip
- icanhazip.com
- ipinfo.io/ip
- myexternalip.com/raw
The application uses a 5-second timeout to ensure responsiveness even if connectivity is limited.
Troubleshooting
Common Issues
No Public IP Displayed
- Check your internet connection
- The application tries multiple services, so one may be blocked
- Ensure you have the
default-tls
feature enabled in reqwest
Missing Network Statistics
- Some interfaces may not provide statistics through sysinfo
- The application attempts to fall back to using the
netstat
command - Check the debug panel for interfaces with missing statistics
Network Interfaces Not Showing
- Ensure you're running with appropriate permissions
- Some virtual interfaces or non-standard interfaces may not be detected
- Check the debug panel to see which interfaces were detected
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the GNU General Public License v3.0 (GPL-3.0) - see the LICENSE file for details.
Acknowledgements
- ratatui for the terminal interface library
- Crossterm for terminal control
- Tokio for async runtime
- Sysinfo for system information
- local-ip-address for network interface detection
- Reqwest for HTTP requests
Dependencies
~12–26MB
~376K SLoC