A beautiful console-based network monitoring tool with ASCII graphs
Project description
NetWatch - Network Monitor ๐
A beautiful console-based network monitoring tool with real-time ASCII graphs and colorful interface.
โจ Features
- ๐ฏ Interface Selection: Choose specific network interfaces to monitor or monitor all
- ๐ Real-time Traffic: Live monitoring of sent/received bytes per second
- ๐ Cumulative Stats: Total bytes sent and received since monitoring started
- ๐จ Beautiful ASCII Graphs: Colorful real-time traffic history graphs
- ๐ Colorful Interface: Rich terminal colors with emojis and visual elements
- ๐ Cross-platform: Works on Windows, Linux, and macOS
- โก Easy Installation: Simple pip install from anywhere
๐ Installation
Method 1: Install from Source (Recommended)
- Clone or download the project
- Navigate to the project directory
- Install in development mode:
pip install -e .
Method 2: Install from PyPI
pip install netwatch-monitor
๐ฎ Usage
After installation, simply run:
netwatch
The tool will:
- Show all available network interfaces
- Let you select which interfaces to monitor:
0- Monitor ALL interfaces1,2,3- Monitor specific interfaces (comma-separated)
- Start real-time monitoring with beautiful ASCII graphs
Example Usage
$ netwatch
๐ NetWatch - Network Monitor
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Starting network monitoring...
๐ Gathering interface data...
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ AVAILABLE NETWORK INTERFACES
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
1. Ethernet
2. Wi-Fi
3. Loopback
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฏ SELECTION OPTIONS:
0 - Monitor ALL interfaces
1,2,3 - Monitor specific interfaces (comma-separated)
Example: '1,3' to monitor interfaces 1 and 3
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Enter your selection: 1
โ
Selected interfaces:
- Ethernet
๐ Monitoring started for 1 interface(s)
โฑ๏ธ Updates every second - Press Ctrl+C to stop
๐ Interface Display
For each selected interface, you'll see:
- Real-time Traffic: Current bytes per second (sent/received)
- Cumulative Traffic: Total bytes since monitoring started
- ASCII Graphs: Beautiful colored graphs showing traffic history
- Visual Elements: Emojis, colors, and borders for better readability
๐จ Features Details
ASCII Graphs
- Width: 65 characters
- Height: 6 rows
- Colors: Different color schemes for sent (blue) and received (green) traffic
- Intensity: Multiple intensity levels based on traffic volume
- Scale: Automatic scaling with max value display
Interface Selection
- Smart Selection: Easy number-based selection
- Multiple Interfaces: Monitor several interfaces simultaneously
- All Interfaces: Quick option to monitor everything
- Validation: Input validation with helpful error messages
๐ ๏ธ Requirements
- Python 3.6+
- psutil (automatically installed)
- Works on Windows, Linux, and macOS
- Terminal with ANSI color support (most modern terminals)
๐ง Development
Project Structure
netwatch/
โโโ netwatch/
โ โโโ __init__.py
โ โโโ monitor.py # Core monitoring logic
โ โโโ cli.py # Command line interface
โโโ setup.py # Package setup
โโโ pyproject.toml # Modern Python packaging
โโโ requirements.txt # Dependencies
โโโ README.md # This file
Building from Source
# Clone the repository
git clone <repository-url>
cd netwatch
# Install in development mode
pip install -e .
# Run the tool
netwatch
๐ฏ Use Cases
- Network Debugging: Monitor interface activity during troubleshooting
- Performance Monitoring: Track bandwidth usage on specific interfaces
- Development: Monitor network activity during application development
- System Administration: Quick network interface overview
- Educational: Learn about network interfaces and traffic patterns
๐ Cross-Platform Support
Windows
- Full support with PowerShell and Command Prompt
- Colorful interface with emoji support
- All network interfaces detected
Linux
- Native terminal support
- Works with all major distributions
- Systemd service compatible
macOS
- Terminal.app and iTerm2 support
- Full color and emoji support
- Works with all network interfaces
๐ Commands
- Start:
netwatch - Stop:
Ctrl+C - Interface Selection: Follow on-screen prompts
๐ Examples
Monitor All Interfaces
netwatch
# Select: 0
Monitor Specific Interfaces
netwatch
# Select: 1,3,5
Monitor Single Interface
netwatch
# Select: 1
๐ Troubleshooting
Common Issues
- No interfaces shown: Make sure you have network interfaces configured
- Colors not working: Ensure your terminal supports ANSI colors
- Permission errors: Some systems may require elevated privileges for network monitoring
- Import errors: Make sure psutil is installed:
pip install psutil
Requirements
- Minimum Python 3.6
- psutil library
- Terminal with ANSI color support
๐ License
This project is open source and available under the MIT License.
๐ค Contributing
Contributions are welcome! Please feel free to submit pull requests or report issues.
๐ฎ Future Features
- Export data to CSV/JSON
- Historical data storage
- Web interface
- Network alerts/notifications
- Bandwidth usage graphs
- Custom refresh intervals
- Multiple monitoring modes
Made with โค๏ธ for network monitoring enthusiasts!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file netwatch_monitor-1.0.1.tar.gz.
File metadata
- Download URL: netwatch_monitor-1.0.1.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7827690dfb862cf21a1b9ef29a4d785dcd329a1d574523688878b0af1d7fcd4
|
|
| MD5 |
f31f5a8b753376d840dd0b4eda0db04b
|
|
| BLAKE2b-256 |
ca93ef9bf45bfb7f00db0a0a953ef00d8c7703589e7412cad63f3642f6f437d1
|
Provenance
The following attestation bundles were made for netwatch_monitor-1.0.1.tar.gz:
Publisher:
publish.yml on PC0staS/netwatch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netwatch_monitor-1.0.1.tar.gz -
Subject digest:
f7827690dfb862cf21a1b9ef29a4d785dcd329a1d574523688878b0af1d7fcd4 - Sigstore transparency entry: 274273328
- Sigstore integration time:
-
Permalink:
PC0staS/netwatch@41e24850b2ce6a12eb655edac34020252d5742e0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PC0staS
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@41e24850b2ce6a12eb655edac34020252d5742e0 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file netwatch_monitor-1.0.1-py3-none-any.whl.
File metadata
- Download URL: netwatch_monitor-1.0.1-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba0495e3baa6549e9481343946cdd40b5f24f17f981e0c34470c67a41f21349d
|
|
| MD5 |
08be184662c0a716b211dfeac398f3ee
|
|
| BLAKE2b-256 |
0964863b205933f080d759687c6dc012327a1460199e082a4fc699b6864ee7cb
|
Provenance
The following attestation bundles were made for netwatch_monitor-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on PC0staS/netwatch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netwatch_monitor-1.0.1-py3-none-any.whl -
Subject digest:
ba0495e3baa6549e9481343946cdd40b5f24f17f981e0c34470c67a41f21349d - Sigstore transparency entry: 274273337
- Sigstore integration time:
-
Permalink:
PC0staS/netwatch@41e24850b2ce6a12eb655edac34020252d5742e0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PC0staS
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@41e24850b2ce6a12eb655edac34020252d5742e0 -
Trigger Event:
workflow_dispatch
-
Statement type: