Skip to main content

ModelDock

ModelDock

The lightweight, Python-first model manager for local AI models — the package manager for local LLMs.

CI CodeQL Coverage PRs Forks Stars Contributors License: MIT Python PyPI version Downloads PyPI


ModelDock discovers, downloads, caches, verifies, and loads local LLMs through pluggable runtime adapters. It does not run inference itself; it orchestrates runtimes (starting with Ollama). No more manual ollama pull commands — just write md.load("llama3") and ModelDock handles the rest.

Features

  • Python-first APImd.load("llama3") auto-installs if missing and returns a ready client.
  • Searchable registry — browse models, categories, capabilities, and sizes without leaving Python.
  • Bulk installationmd.install_category("coding") pulls recommended models at once.
  • Smart caching — never re-download installed models; content-addressed offline cache.
  • Extensible runtimes — Ollama ships first; LM Studio, llama.cpp, Jan AI, GPT4All, vLLM are drop-in adapters.
  • Cross-platform — Windows, macOS, Linux via platformdirs.
  • Zero-config, beginner-friendly — dynamic catalog from ollama.com with offline caching.

Quick Start

Prerequisites

  • Python 3.9–3.12
  • A local Ollama install (for the first runtime)

Installation

pip install modeldock
# with the Ollama backend helper (optional):
pip install modeldock[ollama]

Basic Usage

import modeldock as md

# Auto-installs if missing, then returns a ready-to-use client
client = md.load("llama3")

print(client.chat(model="llama3", messages=[{"role": "user", "content": "Hi!"}]))

Installation

From PyPI

pip install modeldock

From Source

git clone https://github.com/OpenAgentHQ/modeldock.git
cd modeldock
python -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e ".[dev,ollama]"

Usage

Discover and manage models

import modeldock as md

md.list()                       # browse the catalog
md.search("coding")             # search by name / capability / category
md.installed()                  # what's already local
md.info("qwen3")                # sizes, capabilities, variants
md.recommend(task="vision")     # guided pick

md.install("llama3")            # explicit download
md.install_category("coding")   # bulk install
md.update("llama3")             # pull newer tag
md.remove("llama3")             # uninstall
md.verify("llama3")             # integrity check

Command line

modeldock load llama3
modeldock install-category coding
modeldock list
modeldock search vision
modeldock cache status

See QUICKSTART.md for the full CLI/SDK reference.

Architecture

ModelDock follows Clean Architecture with SOLID principles. Dependencies point inward: clicoreportsadapters. The domain and ports layers are pure (no I/O); concrete runtimes implement the RuntimePort protocol.

Interface:   modeldock/__init__.py (SDK)  +  modeldock/cli (Typer)
Application: modeldock/core/   (services, LifecycleOrchestrator, ModelManager)
Domain:      modeldock/domain/ (pure entities, no I/O)
Ports:       modeldock/ports/  (typing.Protocol interfaces)
Adapters:    modeldock/adapters/ (runtimes, registry, downloaders, cache, progress)
Common:      modeldock/common/ (config, logging, platform, http, errors)

Catalog Source

ModelDock scrapes ollama.com/library for a live model catalog, cached locally for 24 hours. Set catalog_source in config or MODELDOCK_CATALOG_SOURCE env var:

Value Behavior
auto Try dynamic, fallback to bundled (default)
ollama Dynamic only — requires internet
bundled Static catalog.json only — fully offline

See Architecture.md for the full design contract.

Configuration

Config lives at ~/.config/modeldock/config.toml (Linux/macOS) or %APPDATA%\modeldock\config.toml (Windows). Env vars MODELDOCK_* override.

default_backend = "ollama"
auto_install    = true
log_level       = "INFO"
progress_style  = "rich"
Variable Description Default
MODELDOCK_LOG_LEVEL DEBUG/INFO/WARNING/ERROR ERROR
MODELDOCK_DEFAULT_BACKEND Runtime backend ollama
MODELDOCK_AUTO_INSTALL Auto-download missing models false
MODELDOCK_CACHE_DIR Override cache location platform default

Supported Runtimes

Runtime Status
Ollama ✅ Fully supported
LM Studio, llama.cpp, Jan AI, GPT4All, vLLM Planned adapters

Documentation

File Purpose
PROJECT.MD Product vision, pain points, roadmap
Architecture.md Design contract
AGENT.md Agent/contributor rules + coding standards
QUICKSTART.md 30-second user start
Development.md Build, test, CI, release setup
CONTEXT.md Orientation hub
INSTRUCTIONS.md How to work in this repo
RELEASE.md Release process

Contributing

Contributions are welcome! See CONTRIBUTING.md for setup, branch naming, coding standards, and the PR process.

You can claim an issue to work on by commenting /claim on it — a maintainer will assign it to you.

Support

See SUPPORT.md for more options.

Security

To report security vulnerabilities, see SECURITY.md. Do not open public issues for security problems.

Changelog

See CHANGELOG.md for a list of changes.

Author

ModelDock is created and maintained by Himanshu kumar (OpenAgentHQ).

License

ModelDock is licensed under the MIT License — see LICENSE for details.

Download files

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

Source Distribution

modeldock-0.1.3.tar.gz (48.6 kB view details)

Uploaded Source

Built Distribution

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

modeldock-0.1.3-py3-none-any.whl (71.0 kB view details)

Uploaded Python 3

File details

Details for the file modeldock-0.1.3.tar.gz.

File metadata

  • Download URL: modeldock-0.1.3.tar.gz
  • Upload date:
  • Size: 48.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for modeldock-0.1.3.tar.gz
Algorithm Hash digest
SHA256 b0000ffcabf64f912ce5adca775db6e109f78725ca6ad997183722fe46788bea
MD5 e64106c9dc9efb2b45a1b88d86a49cc2
BLAKE2b-256 0a8fbe5ec1c9c32ebaa48314e5bbca6c14c1a69b7a9d15284b4a769b119cb4f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for modeldock-0.1.3.tar.gz:

Publisher: release.yml on OpenAgentHQ/modeldock

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modeldock-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: modeldock-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 71.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for modeldock-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2a3209d02106dc5239e2a035a2b9132d1edcbe03e7173aeb40ad82637fc059cc
MD5 fb9c3d375a5ecb4a2fba8934673b296c
BLAKE2b-256 5b9dbca2500620057ee552e218e453b75361ac2c3ed361c24c9b4fe65faf58b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for modeldock-0.1.3-py3-none-any.whl:

Publisher: release.yml on OpenAgentHQ/modeldock

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.0

2 files

This release

0.1.3 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page