Installation
GEO Optimizer installs as a local Python project with an isolated virtual environment. No system-level packages are modified.
Requirements
| Requirement | Minimum Version | Notes |
|---|---|---|
| Python | 3.8+ | Python 3.10+ recommended |
| Git | Any | Used to clone and update the repository |
| OS | macOS, Linux, WSL | Windows via WSL only |
Verify your prerequisites:
python3 --version # Should print 3.8 or higher
git --version # Any version works
Recommended Installation
The safest approach is to download the install script, inspect it, and then run it:
# Download the installer
curl -sSL https://raw.githubusercontent.com/auriti-web-design/geo-optimizer-skill/main/install.sh -o install.sh
# Inspect the script (always good practice)
less install.sh
# Run it
bash install.sh
This installs to ~/geo-optimizer-skill by default and:
- Clones the repository from GitHub
- Creates an isolated Python virtual environment (
.venv) - Installs dependencies (
requests,beautifulsoup4,lxml) - Generates a
./geowrapper script for easy execution
Never blindly pipe scripts from the internet into your shell. Downloading and reviewing the script before running it is a security best practice.
Quick Install (One-Line)
If you have reviewed the script previously or trust the source:
curl -sSL https://raw.githubusercontent.com/auriti-web-design/geo-optimizer-skill/main/install.sh | bash
Custom Installation Path
To install in a directory other than ~/geo-optimizer-skill, use the --dir flag:
# Equals syntax
bash install.sh --dir=/opt/geo-optimizer
# Space syntax
bash install.sh --dir /opt/geo-optimizer
If using the one-line curl method, you need to pass the flag differently:
curl -sSL https://raw.githubusercontent.com/auriti-web-design/geo-optimizer-skill/main/install.sh | bash -s -- --dir=/opt/geo-optimizer
What Gets Installed
After installation, the directory structure looks like this:
~/geo-optimizer-skill/
├── geo # Wrapper script (run commands without activating venv)
├── install.sh # Installer (can re-run safely)
├── update.sh # Updater
├── requirements.txt # Python dependencies
├── scripts/
│ ├── geo_audit.py # Site audit (0-100 score)
│ ├── generate_llms_txt.py # llms.txt generator
│ └── schema_injector.py # JSON-LD schema tools
├── ai-context/ # AI platform context files
│ ├── claude-project.md
│ ├── chatgpt-custom-gpt.md
│ ├── chatgpt-instructions.md
│ ├── cursor.mdc
│ ├── windsurf.md
│ └── kiro-steering.md
├── tests/ # Test suite
├── docs/ # Internal documentation
├── references/ # Methodology & templates
└── .venv/ # Python virtual environment
Running Scripts
The ./geo wrapper lets you run any script without manually activating the virtual environment:
cd ~/geo-optimizer-skill
# Using the wrapper (recommended)
./geo scripts/geo_audit.py --url https://example.com
# Or activate the venv manually
source .venv/bin/activate
python scripts/geo_audit.py --url https://example.com
Updating
To update GEO Optimizer to the latest version:
cd ~/geo-optimizer-skill
bash update.sh
The update script:
- Verifies the installation is a valid Git repository
- Shows the current version (commit hash)
- Pulls the latest code from
main - Reinstalls dependencies (detects
.venv/bin/pip, falls back topip3orpip) - Shows the new version
You can also update by re-running install.sh. If the repository already exists at the target path, it performs a git pull origin main instead of a fresh clone.
Uninstalling
To remove GEO Optimizer completely:
rm -rf ~/geo-optimizer-skill
No system files, PATH modifications, or global packages are touched during installation, so deletion is clean.
Troubleshooting
Python not found
If python3 is not available, install it via your package manager:
# macOS (Homebrew)
brew install python
# Ubuntu/Debian
sudo apt update && sudo apt install python3 python3-venv python3-pip
# Fedora
sudo dnf install python3 python3-pip
Permission denied on install.sh
chmod +x install.sh
bash install.sh
Virtual environment creation fails
Ensure the venv module is available:
# Ubuntu/Debian may need this package
sudo apt install python3-venv
Git clone fails behind a proxy
git config --global http.proxy http://proxy.example.com:8080
bash install.sh
Next: Usage -- run your first audit and generate optimization assets.