We welcome contributions! This guide will help you set up your development environment and submit high-quality pull requests.
- Python 3.10+
- uv (Package manager)
- Node.js (For frontend development)
Clone the repo and install dependencies:
git clone https://github.com/Hyper3Labs/HyperView.git
cd HyperView
# Create virtual environment and install dev dependencies
uv venv .venv
source .venv/bin/activate
uv pip install -e ".[dev]"
# Install frontend dependencies
cd frontend
npm install
cd ..By default, HyperView installs hyper-models from PyPI.
If you want to develop HyperView and hyper-models side-by-side (without publishing hyper-models), you can tell uv to use a local checkout instead:
- Clone
hyper-modelsnext to the HyperView repo (as a sibling directory):
cd ..
git clone https://github.com/Hyper3Labs/hyper-models
cd HyperView- Add the following to HyperView's
pyproject.toml(keep this change local unless the maintainers decide otherwise):
[tool.uv.workspace]
members = ["../hyper-models"]
[tool.uv.sources]
hyper-models = { workspace = true }- Use uv's project commands (
uv run ...,uv sync, etc.) sotool.uv.sourcesis respected.
For the best development experience, run the backend and frontend in separate terminals.
Runs the Python API server at http://127.0.0.1:6262.
uv run hyperview --dataset cifar10_demo --hf-dataset uoft-cs/cifar10 --split train --image-key img --label-key label --samples 200 --model openai/clip-vit-base-patch32 --no-browserTip: Use HF_DATASETS_OFFLINE=1 if you have cached datasets and want to work offline.
Runs the Next.js dev server at http://127.0.0.1:3000 with hot reloading.
cd frontend
npm run devThe frontend automatically proxies API requests (/api/*) to the backend.
Please ensure all checks pass before submitting a PR.
# Python
uv run pytest # Run unit tests
uv run ruff format . # formatting
uv run ruff check . --fix # Linting
# Frontend
cd frontend
npm run lintThe Python package bundles the compiled frontend. If you modify the frontend, you must regenerate the static assets so they can be served by the Python backend in production/demos.
bash scripts/export_frontend.shThis compiles the frontend and places artifacts into src/hyperview/server/static/. Do not edit files in that directory manually.
- Scope: Keep changes focused. Open an issue first for major refactors or new features.
- Tests: Add tests for new logic where practical.
- Visuals: If changing the UI, please attach a screenshot or GIF to your PR.
- Format: Ensure code is formatted with
ruff(Python) andprettier(JS/TS implicit innpm run lint).