A powerful network monitoring and protection application built with Tauri, Rust, and React. TinyShield provides real-time visibility into your Mac's network connections and allows you to block unwanted traffic at the application level.
- Real-time Network Monitoring: Track all TCP and UDP connections in real-time
- Hostname Resolution: Automatically resolve IP addresses to human-readable domain names
- Process Attribution: Identify which applications are making network connections
- Traffic Statistics: Monitor data sent and received for each connection
- Domain Blocking: Block specific websites and domains with wildcard support
- Application Blocking: Prevent specific applications from accessing the internet
- IP Address Filtering: Block connections to specific IP addresses or CIDR ranges
- Port-based Rules: Control access based on destination ports
- Flexible Rule Engine: Support for wildcards, regex patterns, and CIDR notation
- Modern macOS Interface: Native-feeling UI built with React and Tauri
- Real-time Updates: Live connection monitoring without performance impact
- Intuitive Rule Management: Easy-to-use interface for creating and managing block rules
- Traffic Visualization: Charts and graphs showing network activity
- Detailed Statistics: Comprehensive view of network usage by domain and application
- SQLite Database: Local storage for rules, logs, and statistics
- Export/Import Rules: Backup and share your blocking configurations
- Historical Data: Keep logs of past connections and blocked attempts
- Data Cleanup: Automatic cleanup of old logs to save disk space
- Network Monitoring: Uses
netstatandlsoffor connection discovery - DNS Resolution: Async hostname resolution with caching
- Rule Engine: Flexible pattern matching for blocking decisions
- Database Layer: SQLite integration for persistent storage
- Event System: Real-time communication between monitoring service and UI
- TypeScript: Type-safe React components
- Modern UI: Clean, responsive interface with dark/light mode support
- Real-time Updates: WebSocket-like communication with backend via Tauri events
- Data Visualization: Charts and graphs using Recharts
- Icon System: Lucide React icons for consistent UI
- Tauri Framework: Bridge between Rust backend and React frontend
- Native macOS: Full access to system-level networking APIs
- IPC Communication: Efficient inter-process communication
- Event-driven Architecture: Reactive updates without polling
- macOS 15 or later
- Rust (latest stable version)
- Node.js 18+ or Bun
- Xcode Command Line Tools
git clone <repository-url>
cd tinyshieldFrontend dependencies:
bun install
# or
npm installBackend dependencies will be automatically installed when building.
bun tauri dev
# or
npm run tauri devbun tauri build
# or
npm run tauri build- Refresh Interval: How often to scan for new connections (default: 1000ms)
- Protocol Monitoring: Enable/disable TCP and UDP monitoring
- Hostname Resolution: Toggle DNS lookups for better performance
- Logging: Control what gets logged to the database
example.com- Block specific domain*.example.com- Block domain and all subdomains*.ads.*- Block domains containing "ads"
chrome- Block Chrome browser*torrent*- Block any application with "torrent" in the name
192.168.1.100- Block specific IP192.168.1.0/24- Block entire subnet10.*.*.*- Block private network range
80- Block HTTP traffic80-443- Block port range80,443,8080- Block specific ports
TinyShield requires elevated privileges to monitor network connections. The application:
- Uses standard Unix tools (
netstat,lsof) for network discovery - Does NOT intercept or modify actual network traffic in this version
- Stores all data locally in SQLite database
- Never sends data to external servers
- All monitoring data stays on your local machine
- No telemetry or analytics are collected
- Rules and logs are stored in local SQLite database
- Export/import functions use local JSON files only
- β Basic network monitoring
- β Rule-based filtering
- β SQLite storage
- β React UI
- β Real-time updates
- macOS System Extension: True packet-level filtering
- Advanced SNI Decryption: Extract hostnames from encrypted traffic
- Network Extension Integration: System-level blocking
- VPN Detection: Monitor VPN connections
- Bandwidth Monitoring: Track data usage per application
- Custom Block Pages: Show custom pages for blocked requests
- Scheduling: Time-based rule activation
- Parental Controls: Kid-safe browsing features
- Network Profiles: Different rules for different network environments
We welcome contributions! Please see our contributing guidelines for more information.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- System Extension Development: Help implement true system-level filtering
- Performance Optimization: Improve monitoring efficiency
- UI/UX Improvements: Enhance the user interface
- Testing: Add comprehensive test coverage
- Documentation: Improve docs and tutorials
This project is licensed under the MIT License - see the LICENSE file for details.
TinyShield is a network monitoring tool designed for legitimate system administration and security purposes. Users are responsible for complying with all applicable laws and regulations when using this software. The authors are not responsible for any misuse of this tool.
- Issues: Report bugs and request features on GitHub Issues
- Discussions: Join community discussions on GitHub Discussions
- Documentation: Check the wiki for detailed guides and tutorials
- Built with Tauri - The Rust-powered app framework
- UI powered by React and Lucide Icons
- Charts provided by Recharts
- Inspired by tools like Little Snitch and LuLu for macOS