A powerful productivity suite that combines intelligent website blocking with focus management to help you achieve your optimal flow state. ZenFlow creates a distraction-free digital environment, enabling deep work and enhanced productivity.
- 🛡️ Intelligent Website Blocking: Network-level filtering with automatic domain discovery
- ⏱️ Focus Timer: Customizable work/break sessions based on the Pomodoro Technique
- 📊 Progress Analytics: Detailed statistics and insights about your focus sessions
- 🎯 Goal Setting: Daily focus goals and streak tracking
- 🔄 Smart Break Management: Automated break scheduling to maintain productivity
- 💾 Persistent Settings: Your preferences and statistics are automatically saved
- 🖥️ Modern UI: Clean, intuitive interface designed for minimal distraction
# Clone the repository
git clone https://github.com/anassk01/zenflow.git
cd zenflow
# Run the installation script (requires root privileges)
sudo ./install.shThe installation script will automatically:
- Install all required system dependencies
- Set up Python virtual environment
- Install Python packages
- Create necessary directories
- Add desktop entry and command-line launcher
After installation, you can run ZenFlow in two ways:
-
From the Applications Menu
- Find and click on ZenFlow in your system's application menu
-
From Terminal
zenflow
The application requires root privileges and will prompt for your password when needed.
If you prefer to install manually or the automatic installation fails, follow these steps:
sudo apt-get update
sudo apt-get install python3-dev python3-pip python3-venv libnetfilter-queue-dev chromium-browser chromium-chromedriver build-essential iptablessudo dnf install python3-devel python3-pip libnetfilter_queue-devel chromium chromium-headless chromedriver gcc iptablessudo pacman -Syu python-pip python-virtualenv libnetfilter_queue chromium gcc iptables# Create installation directory
sudo mkdir -p /opt/zenflow
sudo cp -r . /opt/zenflow/
# Create and activate virtual environment
cd /opt/zenflow
python3 -m venv venv
source venv/bin/activate
# Install Python dependencies
pip install -r requirements.txt
# Create user directories
mkdir -p ~/.config/zenflow
mkdir -p ~/.local/share/zenflow
# Create desktop entry
sudo cp resources/zenflow.desktop /usr/share/applications/
# Create launcher script
sudo tee /usr/local/bin/zenflow << EOL
#!/bin/bash
source /opt/zenflow/venv/bin/activate
sudo /opt/zenflow/venv/bin/python /opt/zenflow/main.py "\$@"
EOL
sudo chmod +x /usr/local/bin/zenflow-
ImportError: No module named 'netfilterqueue'
- Ensure python3-dev/python3-devel is installed
- Try reinstalling:
pip install --no-cache-dir netfilterqueue
-
ChromeDriver version mismatch
- ZenFlow automatically manages ChromeDriver, but you can manually install it:
# Ubuntu/Debian sudo apt-get install chromium-chromedriver # Fedora sudo dnf install chromedriver
-
Permission denied
- Make sure to run ZenFlow with sudo:
sudo zenflow - Or use the desktop entry which handles permissions automatically
- Make sure to run ZenFlow with sudo:
-
Network filtering not working
- Verify iptables is installed and running
- Ensure you're running with root privileges
- Check the logs at
~/.local/share/zenflow/zenflow.log - Verify all dependencies are installed correctly
- Try running the installation script again
- Open an issue on GitHub with the error message and log contents
To completely remove ZenFlow:
# Run the cleanup script (recommended)
sudo ./cleanup.shOr manually:
# Stop any running processes
sudo pkill -f "python.*zenflow"
# Remove application files
sudo rm -rf /opt/zenflow
sudo rm -f /usr/share/applications/zenflow.desktop
sudo rm -f /usr/local/bin/zenflow
# Remove user data (optional)
rm -rf ~/.config/zenflow
rm -rf ~/.local/share/zenflowThis project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request. Check our contribution guidelines in CONTRIBUTING.md.
ZenFlow respects your privacy:
- All data is stored locally on your machine
- No external analytics or tracking
- Network filtering is done locally without sending data to external servers
