Skip to main content

A comprehensive library for AI model delivery, testing, and benchmarking

Project description

Algorithm Nexus

License

Algorithm Nexus packages a diverse set of AI algorithm stacks — models, frameworks, and related tooling — within a unified Python environment. Each algorithm stack is described by a Nexus package: a small metadata directory that records the package's dependencies, models, and validation requirements. The nexus CLI validates Nexus packages and supports contributors in keeping their packages well-formed.

Roadmap

Version 0.1 (Alpha, End of April 2026)

  • Project requirements for dependencies resolution, Nexus package definition, testing and benchmarking
  • Protocol and tools for cross package dependency resolution in place, supporting with/without vLLM with latest and pinned scenarios
  • Benchmarking and testing protocols defined
  • Nexus package and model owner responsibilities defined
  • Rules for contributing a new Nexus Package defined
  • Initial CI in place, supporting Nexus package structure validation (without vLLM validation), dependency resolution and models inference testing
  • Nexus package for TerraTorch integrated

Version 0.2 (Beta, End of May 2026)

  • Requirements for models integration with vLLM defined
  • CI workflows extended with validation of vLLM integration requirements and benchmarking tasks
  • Agentic skills implemented for generation of a Nexus package and PR
  • Agentic functionalities implemented for supporting the implementation of the vLLM plugins required for a model
  • Integration of Tokamind Fusion models

Version 0.3 (First Release, End of June 2026)

  • Agentic functionalities extended to supporting the deployment of the integrated models
  • Integration of additional algorithm packages from beta-test phase
  • Models scoreboard implemented to track the performance of the integrated models

Installation

Choose the section that matches your goal:

Installing algorithm nexus packages in your environment

Algorithm Nexus is not published to PyPI. All installs reference a tagged GitHub Release.

Each release ships three mutually-exclusive dependency variants. Pick the one that matches your environment:

Variant vLLM included Intended use
ecosystem No Research and exploration environments
candidate Yes (latest) Pre-production evaluation
product Yes (stable pin) Production deployments

Install a variant

Each release tag includes a pinned, hash-verified requirements file for every variant. Install using uv:

uv pip install -r https://raw.githubusercontent.com/IBM/algorithm-nexus/refs/tags/{version}/requirements-{variant}.txt

Replace {version} with the release tag (e.g. v0.1.0) and {variant} with ecosystem, candidate, or product.

Contributing your python library to algorithm nexus

Note: This project is currently in closed beta. Contributions are open to IBM contributors only.

Contributing a package means adding your Python library as an Algorithm Nexus dependency, creating a Nexus package metadata directory under packages/, and opening a pull request from a fork of the nexus repository.

Before you begin you will need:

  • Your algorithm package publicly available on GitHub
  • uv installed
  • A fork of this repository checked out locally

Set up your local environment:

cd algorithm-nexus
uv sync --group dev --extra cli
uv run pre-commit install

Then create a branch and follow one of the two paths below.

Option A — Coding Agent (Recommended)

An agent skill is available for adding Nexus packages. Open the algorithm nexus repository in your coding agent and ask it to add your python package to the nexus giving it your package repository URL e.g.

Add the package at ${URL} to the nexus

replacing ${URL} with your packages repo URL.

Option B — Manual

Follow the step-by-step guide in docs/contributing/add_new_nexus_package.md, which covers variant classification, nexus.yaml authoring, dependency resolution with uv add, and opening a PR.

Before opening a pull request

Read CONTRIBUTING.md for DCO sign-off requirements, commit message conventions (Conventional Commits / Angular style), and coding style checks. All checks must pass before a PR can be merged.

Developing Algorithm Nexus

For IBM contributors working on the CLI, validation logic, tests, or CI infrastructure. This setup is a superset of the package contributor setup — it adds the test dependency group.

git clone https://github.com/IBM/algorithm-nexus.git
cd algorithm-nexus
uv sync --extra cli --group dev --group test
uv run pre-commit install --install-hooks
uv run pre-commit install --hook-type commit-msg

Full details on coding standards, legal requirements (DCO), commit conventions, and manual lint commands are in CONTRIBUTING.md.

CLI Reference

Algorithm Nexus provides the nexus CLI for working with Nexus packages.

Validating nexus packages

To validate the structure and configuration of a Nexus package run:

nexus validate package /path/to/package

This will examine the following:

  • Package structure: Verifies required files (nexus.yaml, model.yaml) and directories exist
  • YAML syntax: Ensures all configuration files are valid YAML
  • Schema validation: Validates configuration against Pydantic models for correct field types and required fields
  • Cross-validation: Checks dependencies between configurations
  • Model declarations: Ensures all models have corresponding directories
  • Duplicate detection: Checks for duplicate HuggingFace model IDs

In case of validation errors, a detailed report guides you to fix each issue.

Discovering packages and benchmarks

Algorithm Nexus provides commands to discover and list packages, benchmark packages, and experiments across your repository.

List all Nexus packages

nexus list packages [PACKAGES_ROOT]

Lists all valid Nexus packages found in the packages directory (default: ./packages). Supports JSON and CSV output formats with -o json or -o csv. Use --strict to show warnings for packages that fail to load.

Example:

nexus list packages ./packages --strict

List benchmark packages

nexus list benchmark-packages [PACKAGES_ROOT]

Lists all benchmark packages registered across Nexus packages. Shows which Nexus packages use each benchmark package. Filter by a specific Nexus package with --nexus-package.

Example:

nexus list benchmark-packages ./packages --nexus-package terratorch

List benchmark experiments

nexus list benchmark-experiments [PACKAGES_ROOT]

Lists all benchmark experiments with their associated benchmark packages and Nexus packages. Filter by a specific Nexus package with --nexus-package.

Example:

nexus list benchmark-experiments ./packages -o json

Get benchmark requirements

nexus get benchmark-requirements NEXUS_PACKAGE [PACKAGES_ROOT]

Retrieves the benchmark requirement specifiers for a specific Nexus package. Output in requirements.txt format with -o txt for use with pip.

Example:

nexus get benchmark-requirements terratorch ./packages -o txt --output-file requirements.txt

Output formats

Most list commands support multiple output formats:

  • Table (default): Human-readable table output
  • JSON (-o json): Machine-readable JSON format
  • CSV (-o csv): Comma-separated values for spreadsheets
  • TXT (-o txt): Requirements file format (get commands only)

Use --output-file to write output to a file instead of stdout.

Contributing

This project is currently in closed beta. We are not accepting external contributions at this time.

For IBM contributors:

License

This project is licensed under the Apache License 2.0 — see the LICENSE file for details.

Maintainers

See MAINTAINERS.md for the list of project maintainers.

Support

Acknowledgments

This project is part of IBM's commitment to open-source AI infrastructure and collaboration with Red Hat.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

algorithm_nexus-0.2.1.tar.gz (52.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

algorithm_nexus-0.2.1-py3-none-any.whl (45.0 kB view details)

Uploaded Python 3

File details

Details for the file algorithm_nexus-0.2.1.tar.gz.

File metadata

  • Download URL: algorithm_nexus-0.2.1.tar.gz
  • Upload date:
  • Size: 52.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for algorithm_nexus-0.2.1.tar.gz
Algorithm Hash digest
SHA256 76dfe13efbba9e4abab28397ce5ffe94ba9ba7c7a2c5db0090ed7ab1225d5e83
MD5 e842934f2dddf24cf59ea056d8c9ece0
BLAKE2b-256 d4dbaf5857c03b3496b9626fa58210b8f20ad7613ce65c2520edc212f7bd5e23

See more details on using hashes here.

File details

Details for the file algorithm_nexus-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: algorithm_nexus-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 45.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for algorithm_nexus-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6a083967ada62a21299a3846dc42caa6a594ba1a420f8e887fecd0c2dbfe17d6
MD5 ecee05e4521dba37a88ab7ba8bb3b828
BLAKE2b-256 47113fe63bbc3b697fe8720079af23df54050d6886bee9a4dcc6b4ac66c7d8a8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page