Skip to content

Adopt uv for Python dependency management — replace manual pip/venv setup with one uv sync #32

@AsharibAli

Description

@AsharibAli

Problem

Setting up the toolkit's Python side currently requires several manual steps that vary by platform:

  • python3 -m pip install -r tools/requirements.txt for the base dependencies
  • Manually creating/activating a virtualenv (docs show python -m venv .venv + source .venv/bin/activate)
  • pip install modal && python3 -m modal setup as a separate step for the Modal CLI
  • pip install openai-whisper hidden in a commented-out line of requirements.txt for karaoke captions
  • --break-system-packages workarounds on Debian/Ubuntu (PEP 668) in the OpenClaw skill

There's also no lockfile, so installs aren't reproducible, and users on a machine without the right Python version have to install one themselves first.

Proposal

Adopt uv as the Python project manager:

  • A root pyproject.toml + uv.lock so the entire setup becomes one command: uv sync
  • Optional heavy/niche deps become extras: uv sync --extra whisper, uv sync --extra modal
  • All tool invocations documented as uv run tools/<tool>.py — no venv activation, auto-syncs the env
  • uv installs a compatible Python automatically (.python-version pins 3.12)
  • 10–100x faster installs than pip, fully reproducible via the lockfile
  • tools/requirements.txt kept as a pip fallback for anyone not using uv

Out of scope: docker/** images (containers manage their own deps) and the changelog history.

I have this working end-to-end and will open a PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions