This project requires Python 3.11. Python 3.12 is not supported due to dependency issues.
The anthropic package (used for LLM agent features) depends on tokenizers, which requires Rust and maturin to build from source on Python 3.12. The Rust installation process fails on Python 3.12 with the error:
Rust not found, installing from a temporary directory
Unsupported platform: Python 3.12
Even with --only-binary flags, pip may attempt to build from source if binary wheels are unavailable for your platform.
Just run ./setup.sh and it will handle everything!
The setup script will automatically:
- Detect if you have Python 3.12 or another incompatible version
- Install Python 3.11 for you (via brew on Mac, apt/dnf on Linux)
- Remove any existing venv created with the wrong Python version
- Create a new venv with Python 3.11
- Install all dependencies with binary wheels only (no Rust compilation)
You don't need to do anything manually - just run:
./setup.sh# Install Python 3.11
brew install python@3.11
# Run setup (it will handle the rest)
./setup.sh# Install Python 3.11
sudo apt-get update
sudo apt-get install python3.11 python3.11-venv python3.11-dev
# Run setup (it will handle the rest)
./setup.sh# Install Python 3.11
sudo dnf install python3.11
# Run setup (it will handle the rest)
./setup.shTermux handles this automatically - just run ./setup.sh
The setup.sh script intelligently handles Python versions:
- Searches for Python 3.11 - Tries
python3.11first, then checkspython3version - Auto-installs if needed - If you have Python 3.12, it installs Python 3.11 alongside it
- Cleans up old venvs - Removes any venv created with the wrong Python version
- Creates fresh venv - Uses Python 3.11 to create the virtual environment
- Binary-only install - Forces
--only-binaryfor problematic packages to avoid Rust builds
.python-version- Specifies Python 3.11 for pyenv and other version managerssetup.sh- Validates Python version before setupfix_tokenizers.sh- Checks Python version and provides guidance
If you absolutely cannot use Python 3.11:
- Install Rust manually (complex, platform-dependent)
- Remove anthropic from requirements (disables LLM agent features)
- Use older tokenizers version (may have compatibility issues)
Recommended: Just use Python 3.11 - it's the simplest and most reliable solution.