Loomcast
Python SDK and CLI for seamlessly managing local LLM runtimes (Ollama, LM Studio, and llama.cpp).
Installation
pip install loomcast
To work on Loomcast itself, install it from a clone in editable mode with the development dependencies:
pip install -e ".[dev]"
Quick Start
CLI Usage
# Check status of local runtimes
loomcast status
# Diagnose configuration, runtimes, catalog and integrity
loomcast doctor
# List installed models
loomcast list
# Search catalog for models
loomcast search code
# Recommend models for a specific task or tag
loomcast recommend coding
# Install a model
loomcast install llama3 --backend ollama
# Batch install all models in a category
loomcast install-category code --backend ollama
# Send a prompt to a model
loomcast chat llama3 "Hello world!" --backend ollama
# Verify installed model integrity
loomcast verify llama3 --backend ollama
# Update an installed model
loomcast update llama3 --backend ollama
# Remove an installed model
loomcast remove llama3 --backend ollama
# View or change configuration
loomcast config
loomcast config --set-default lmstudio
Model installation, removal and updating are driven through the runtime's API,
which only Ollama exposes. LM Studio and llama.cpp report an explanatory error
instead: load models through the LM Studio application, or start llama-server
with the model you want.
Python SDK Usage
import loomcast
print(loomcast.__version__)
# Search catalog
results = loomcast.search("code")
for model in results:
print(model.name, model.description)
# Recommend models for a task
recs = loomcast.recommend("coding")
# List what is installed locally
print(loomcast.list_installed())
# Install a model, and batch install a whole category
loomcast.install("llama3", runtime_type="ollama")
installed, failed = loomcast.install_category("code", runtime_type="ollama")
# Send chat messages
response = loomcast.chat(
"llama3", [{"role": "user", "content": "Hello!"}], runtime_type="ollama"
)
print(response)
# Verify model integrity
verification = loomcast.verify("llama3", runtime_type="ollama")
print(f"Verified: {verification.verified}, Digest: {verification.digest}")
# Update returns True when the digest changed, False when already current
changed = loomcast.update("llama3", runtime_type="ollama")
# Remove an installed model
loomcast.remove("llama3", runtime_type="ollama")
For finer control over configuration or dependency injection, drive
LoomcastManager directly:
from loomcast import LoomcastConfig, LoomcastManager
manager = LoomcastManager(config=LoomcastConfig(default_backend="ollama"))
print(manager.list_available_runtimes())
Documentation
Detailed documentation guides are available in the docs/ directory:
Metadata
Release files for loomcast 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| loomcast-0.2.0.tar.gz | 38.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| loomcast-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.5 kB
Release files / loomcast-0.2.0.tar.gz
| Download URL | loomcast-0.2.0.tar.gz |
|---|---|
| Size | 38.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
47f5085b1a7d631855cf42a9b422d0f53225f1fe77e863efd9f297a8d31fcd50
|
|
BLAKE2b-256 checksum How to use checksums |
a9f4c9672c1bceae19f470777577899fc44183dfa48512930e9daad67ecc839d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Release files / loomcast-0.2.0-py3-none-any.whl
| Download URL | loomcast-0.2.0-py3-none-any.whl |
|---|---|
| Size | 33.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2b53ab8eea9dea3c801421b2b7a9d862ca8f2b6e3403020ac941ac82924dcd89
|
|
BLAKE2b-256 checksum How to use checksums |
c3cee7ddb2a6aab3bb82b8a45cc652e57a2011f526a20016f18fd265c0716125
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Security for loomcast 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.