Command line interface for accessing the Open Web Index shards and slices.
owi-cli docs source install.md
6.8 kB · 283 lines
Markdown

Installation #

Requirements #

  • Python Version: 3.12
  • Package Manager: uv (recommended), pip, conda, mamba, or micromamba
  • Operating Systems: Linux, macOS (Windows not officially tested)

One-Line Install #

The easiest way to install owilix. Supports uv, conda, mamba, and pipx.

curl -fsSL https://openwebindex.net/owilix/install.sh | sh

What the script does:

  • Detects available package managers (uv, conda, mamba, pipx)
  • Lets you choose if multiple are available
  • Installs uv if none found
  • Creates a virtual/conda environment
  • Installs owilix and dependencies
  • Adds to PATH
  • Checks for config migrations

Options (via environment variables):

# Force specific package manager
OWILIX_PM=uv curl -fsSL ... | bash

# Upgrade existing installation
OWILIX_UPGRADE=1 curl -fsSL ... | bash

# Custom install path (for uv/pipx)
OWILIX_PATH=~/my-owilix curl -fsSL ... | bash

If copy/paste inserts \|, remove the backslash and run with a normal pipe (|).


Manual Install with uv #

uv is the recommended installer for fastest performance.

# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create a virtual environment and install owilix
uv venv --python 3.12 ~/.venv/owilix
source ~/.venv/owilix/bin/activate

# Install owilix and explicit URL dependency required by uv
uv pip install \
  "python-http-irods-client @ git+https://opencode.it4i.eu/lexis-platform/data/python-http-irods-client.git@1.1.2" \
  owilix \
  --index-url https://opencode.it4i.eu/api/v4/projects/92/packages/pypi/simple \
  --extra-index-url https://opencode.it4i.eu/api/v4/projects/107/packages/pypi/simple

# Add to PATH (optional)
echo 'export PATH="$HOME/.venv/owilix/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# Verify installation
owilix --help

Using pipx (Isolated Environment) #

⚠️ Known Issue: pipx installation may fail due to git dependency python-http-irods-client. Use the uv venv method above instead.

Pipx installation (may not work)
# Install pipx if not installed
python3 -m pip install --user pipx
pipx ensurepath

# Install owilix
pipx install owilix \
  --index-url https://opencode.it4i.eu/api/v4/projects/92/packages/pypi/simple \
  --pip-args="--extra-index-url=https://opencode.it4i.eu/api/v4/projects/107/packages/pypi/simple"

# Verify
owilix --help

Method 1: Install with pip (in conda/mamba environment) #

Using conda #

# Create and activate environment
conda create -n owi python=3.12
conda activate owi

# Install packages
pip install py4lexis --index-url https://opencode.it4i.eu/api/v4/projects/107/packages/pypi/simple
pip install owilix --index-url https://opencode.it4i.eu/api/v4/projects/92/packages/pypi/simple

# Verify installation
owilix --help

Using mamba (faster than conda) #

# Install mamba if not installed
conda install -n base -c conda-forge mamba

# Create environment
mamba create -n owi python=3.12
mamba activate owi

# Install packages
pip install py4lexis --index-url https://opencode.it4i.eu/api/v4/projects/107/packages/pypi/simple
pip install owilix --index-url https://opencode.it4i.eu/api/v4/projects/92/packages/pypi/simple

# Verify
owilix --help

Using micromamba (minimal, standalone) #

# Install micromamba
"${SHELL}" <(curl -L micro.mamba.pm/install.sh)

# Create environment
micromamba create -n owi python=3.12
micromamba activate owi

# Install packages
pip install py4lexis --index-url https://opencode.it4i.eu/api/v4/projects/107/packages/pypi/simple
pip install owilix --index-url https://opencode.it4i.eu/api/v4/projects/92/packages/pypi/simple

# Verify
owilix --help

Upgrade #

pip install --upgrade py4lexis --index-url https://opencode.it4i.eu/api/v4/projects/107/packages/pypi/simple
pip install --upgrade owilix --index-url https://opencode.it4i.eu/api/v4/projects/92/packages/pypi/simple

Method 2: Install from Source #

For development or latest features:

# Clone the repository
git clone https://opencode.it4i.eu/openwebsearcheu-public/owi-cli.git
cd owi-cli

# Install with uv (recommended)
uv sync

# Run owilix
uv run owilix --help

# Or activate venv
source .venv/bin/activate
owilix --help

Method 3: Using Docker #

Pull the image #

docker pull opencode.it4i.eu:5050/openwebsearcheu-public/owi-cli:latest

# Verify
docker run --rm opencode.it4i.eu:5050/openwebsearcheu-public/owi-cli:latest --help

Run commands #

# Run with your configuration
docker run --rm -it \
  -v "$HOME/.owi:/home/owi/.owi" \
  opencode.it4i.eu:5050/openwebsearcheu-public/owi-cli:latest remote doctor

Set an alias #

Add to your shell profile (~/.bashrc, ~/.zshrc):

alias owilix='docker run --rm -it -v $HOME/.owi:/home/owi/.owi opencode.it4i.eu:5050/openwebsearcheu-public/owi-cli:latest'

Interactive mode (debugging) #

docker run --rm -it --entrypoint bash \
  opencode.it4i.eu:5050/openwebsearcheu-public/owi-cli:latest

# Inside container:
# owilix --help
# which owilix
If mixing Docker and native installations, ensure paths in `owilix.cfg` use `~` prefix for portability.

Quick Verification #

After installation, verify everything works:

# Check version
owilix --version

# Check config version
owilix config version

# Check connections
owilix remote doctor

# List available datasets
owilix remote ls all

For more usage, see the commands section.


Troubleshooting #

Python version issues #

OWILIX requires Python 3.12. If an existing environment uses another version, recreate it explicitly:

conda create -n owi python=3.12

uv conflicting URL error for python-http-irods-client #

If you see an error like: Requirements contain conflicting URLs for package python-http-irods-client

use the direct uv installation below and include python-http-irods-client as an explicit direct requirement:

uv venv --python 3.12 ~/.venv/owilix
source ~/.venv/owilix/bin/activate
uv pip install \
  "python-http-irods-client @ git+https://opencode.it4i.eu/lexis-platform/data/python-http-irods-client.git@1.1.2" \
  owilix \
  --index-url https://opencode.it4i.eu/api/v4/projects/92/packages/pypi/simple \
  --extra-index-url https://opencode.it4i.eu/api/v4/projects/107/packages/pypi/simple

Authentication issues #

If login fails, check that B2ACCESS credentials are valid:

owilix remote doctor

For more help, see the troubleshooting guide.