Python package manager for the Utopic native runtime
Project description
Utopic Package Manager
Python package management for the Utopic native runtime.
This repository is intentionally thin. The wheel installs Python launchers plus
the small Utopic native source tree. Dependency checkout, build configuration,
and binary installation all happen later through utopic setup.
Install
uv tool install utopic
utopic setup
utopic setup detects the best local backend and builds the matching native
runtime:
- macOS with a usable Metal device:
metal - NVIDIA host with a usable CUDA compiler:
cuda - everything else:
cpu
The setup command prints the selected backend, detected device, and reason before
building. It installs runtime binaries under ~/.cache/utopic/bin.
If you prefer a project-local environment:
python3 -m venv ~/.venvs/utopic
~/.venvs/utopic/bin/pip install utopic
~/.venvs/utopic/bin/utopic setup
For local development from this checkout:
git clone https://github.com/adavyas/utopic-package-manager.git
cd utopic-package-manager
pip install .
utopic setup
Backend Overrides
Most users should run plain utopic setup. To force a backend:
On NVIDIA hosts, build the CUDA backend:
utopic setup --backend cuda
The CUDA setup path detects the local GPU architecture and selects a suitable CUDA compiler when possible, including CUDA 13 on GB10/DGX Spark hosts. On constrained hosts, limit build parallelism:
utopic setup --backend cuda --jobs 2
If a Mac cannot initialize Metal, or you want a portable CPU-only build:
utopic setup --backend cpu
To force Metal on macOS:
utopic setup --backend metal
Commands
The package installs these launchers:
utopicutopic-serverutopic-mcputopic-acp
Run a one-shot prompt:
utopic run -m /path/to/model.gguf -p "Answer with one word: 2+2?" -n 16
For DiffusionGemma-style canvas models, use the entropy-bound path:
utopic run -m /path/to/diffusiongemma.gguf -p "Answer with one word: 2+2?" -n 16 --eb-steps 48
Run the OpenAI-compatible local server:
utopic-server -m /path/to/model.gguf --host 127.0.0.1 --port 8910 -ngl 99
Health and model list:
curl http://127.0.0.1:8910/health
curl http://127.0.0.1:8910/v1/models
What Setup Owns
The package manager owns the user-facing setup path:
- use the packaged Utopic native source
- fetch the pinned compatible public llama.cpp dependency source
- configure the native build for CPU or CUDA, including CUDA compiler and architecture detection
- build the dependency layer and Utopic
- copy the final binaries into the Utopic cache
The published wheel stays pure Python and does not fetch or compile native code
during pip install. Users should not need to clone dependency repositories or
run build-system commands directly for normal setup.
Use the package-managed binary produced by utopic setup for user-facing runs.
On the 2026-06-21 GB10 smoke, /home/adavya/.cache/utopic-current/bin/utopic
successfully generated from the installed Dream Q4, LLaDA Q4, DiffusionGemma
BF16, and DiffusionGemma Q4 GGUFs. The repo-local native build loaded the same
files, but was stale for DiffusionGemma prompt wrapping.
Development
Build a wheel:
python -m pip wheel . --no-deps -w dist/
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file utopic-0.1.2.tar.gz.
File metadata
- Download URL: utopic-0.1.2.tar.gz
- Upload date:
- Size: 54.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a487f8295890bd69a1e48510d3f1105a6d422cfbd220f208c26b985f6321b4ad
|
|
| MD5 |
b337f37b2b64efca5b765845e9016bcc
|
|
| BLAKE2b-256 |
9616f92559b2deb9b790bf467ad1ba54e1fbee4b4a6f5a2087bfb3bff83e0963
|
Provenance
The following attestation bundles were made for utopic-0.1.2.tar.gz:
Publisher:
python-publish.yml on adavyas/utopic-package-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
utopic-0.1.2.tar.gz -
Subject digest:
a487f8295890bd69a1e48510d3f1105a6d422cfbd220f208c26b985f6321b4ad - Sigstore transparency entry: 1903437745
- Sigstore integration time:
-
Permalink:
adavyas/utopic-package-manager@abc3019728f68a7377696af31117e34fe60d93d3 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/adavyas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@abc3019728f68a7377696af31117e34fe60d93d3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file utopic-0.1.2-py3-none-any.whl.
File metadata
- Download URL: utopic-0.1.2-py3-none-any.whl
- Upload date:
- Size: 59.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c42dbd56299e7b25abb28689b18856f79fc645c924efcf3113c769377ee41f2a
|
|
| MD5 |
af085bf0b2bb73968b528376beec20e3
|
|
| BLAKE2b-256 |
7ae49a8e087443f86b5e9db91d7b1d274795cf6a77b41f74a843bf7f9e6a5851
|
Provenance
The following attestation bundles were made for utopic-0.1.2-py3-none-any.whl:
Publisher:
python-publish.yml on adavyas/utopic-package-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
utopic-0.1.2-py3-none-any.whl -
Subject digest:
c42dbd56299e7b25abb28689b18856f79fc645c924efcf3113c769377ee41f2a - Sigstore transparency entry: 1903437802
- Sigstore integration time:
-
Permalink:
adavyas/utopic-package-manager@abc3019728f68a7377696af31117e34fe60d93d3 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/adavyas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@abc3019728f68a7377696af31117e34fe60d93d3 -
Trigger Event:
release
-
Statement type: