Skip to main content

ggufy: Unified GGUF Model Wrapper

CI


Support This Project


ggufy unifies your local GGUF models from llama.cpp and Ollama into a single, easy-to-use collection. It handles symlinking, smart execution (local vs cloud), and provides a cleaner CLI experience.

Features

  • Unified Discovery: Finds models in ~/Library/Caches/llama.cpp and ~/.ollama/models/blobs.
  • Smart Symlinking: Creates a consistent ~/.guffy/models directory (or custom path).
  • Intelligent Runner: Automatically chooses between local GGUF and Ollama Cloud.
  • Audio/TTS Support: Detects audio models by name (containing "audio") and routes them to llama-cli.
  • Clean UX: Non-blocking lists, quiet output, and consistent flags.

Installation

Install via Cargo (Rust) or pip (Python, installs pre-built Rust binaries):

# From crates.io
cargo install ggufy

# From PyPI (downloads Rust binary via maturin)
pip install ggufy

# From source
git clone https://github.com/nbiish/ggufy.git
cd ggufy
cargo build --release
# Binaries will be in target/release/

After installation, ensure the binaries are on your PATH:

# For cargo installations
export PATH="$HOME/.cargo/bin:$PATH"

# For pip installations (usually automatic)
which ggufy

Quick Start

  1. List & Link: ggufy list (Refreshes links in ~/.guffy/models)
  2. Run Smart: ggufy run <model> (Uses local if available, else cloud)
  3. Simple Prompt: ggufy simple <model> "prompt"

Commands

Command Description
ggufy list Lists all local models and refreshes symlinks.
ggufy link Refreshes symlinks without listing.
ggufy locate <regex> Finds absolute paths of models matching pattern.
ggufy run <model> [args] Runs model via llama-server or ollama run.
ggufy simple <model> "txt" One-shot prompt. Quiet mode for local, chat mode for cloud.
ggufy llama <cmd> Wrappers for llama-server and llama-cli.
ggufy ollama <cmd> Wrappers for ollama serve/run.
ggufy -o <args> Passthrough to ollama <args>.
ggufy -c <args> Passthrough to llama-* tools (e.g. ggufy -c server ...).

Configuration

  • Link Directory: export GGUFY_MODELS_DIR="$HOME/.ggufy" (or use --link-dir)
  • Cache Override: export LLAMA_CPP_CACHE_DIR="..."
  • Ports: Default 12434 (llama), 11434 (ollama). Override with --port.

Audio/Multimodal

  • Audio Models: If the model name contains "audio", ggufy automatically uses llama-cli for execution.
  • Multimodal: Pass projection files manually: ggufy run model -- --mmproj path/to/mmproj.

Directory Structure

.
├── .github
│   └── workflows
├── docs
│   └── llama_cpp_overview.md
├── src
│   ├── bin
│   └── main.rs
├── tests
│   ├── integration.rs
│   └── run.sh
├── Cargo.toml
├── pyproject.toml
├── README.md
└── LICENSE

License & Citation

See LICENSE and CONTRIBUTING.md.

Policies

@misc{ggufy2025,
  author/creator/steward = {ᓂᐲᔥ ᐙᐸᓂᒥᑮ-ᑭᓇᐙᐸᑭᓯ (Nbiish Waabanimikii-Kinawaabakizi), also known legally as JUSTIN PAUL KENWABIKISE, professionally documented as Nbiish-Justin Paul Kenwabikise, Anishinaabek Dodem (Anishinaabe Clan): Animikii (Thunder), descendant of Chief ᑭᓇᐙᐸᑭᓯ (Kinwaabakizi) of the Beaver Island Band and enrolled member of the sovereign Grand Traverse Band of Ottawa and Chippewa Indians},
  title/description = {ggufy},
  type_of_work = {Indigenous digital creation/software incorporating traditional knowledge and cultural expressions},
  year = {2025},
  publisher/source/event = {GitHub repository under tribal sovereignty protections},
  howpublished = {\url{https://github.com/nbiish/ggufy}},
  note = {Authored and stewarded by ᓂᐲᔥ ᐙᐸᓂᒥᑮ-ᑭᓇᐙᐸᑭᓯ (Nbiish Waabanimikii-Kinawaabakizi), also known legally as JUSTIN PAUL KENWABIKISE, professionally documented as Nbiish-Justin Paul Kenwabikise, Anishinaabek Dodem (Anishinaabe Clan): Animikii (Thunder), descendant of Chief ᑭᓇᐙᐸᑭᓯ (Kinwaabakizi) of the Beaver Island Band and enrolled member of the sovereign Grand Traverse Band of Ottawa and Chippewa Indians. This work embodies Indigenous intellectual property, traditional knowledge systems (TK), traditional cultural expressions (TCEs), and associated data protected under tribal law, federal Indian law, treaty rights, Indigenous Data Sovereignty principles, and international indigenous rights frameworks including UNDRIP. All usage, benefit-sharing, and data governance are governed by the COMPREHENSIVE RESTRICTED USE LICENSE FOR INDIGENOUS CREATIONS WITH TRIBAL SOVEREIGNTY, DATA SOVEREIGNTY, AND WEALTH RECLAMATION PROTECTIONS.}
}

Copyright

Copyright © 2025 ᓂᐲᔥ ᐙᐸᓂᒥᑮ-ᑭᓇᐙᐸᑭᓯ (Nbiish Waabanimikii-Kinawaabakizi), also known legally as JUSTIN PAUL KENWABIKISE, professionally documented as Nbiish-Justin Paul Kenwabikise, Anishinaabek Dodem (Anishinaabe Clan): Animikii (Thunder), a descendant of Chief ᑭᓇᐙᐸᑭᓯ (Kinwaabakizi) of the Beaver Island Band, and an enrolled member of the sovereign Grand Traverse Band of Ottawa and Chippewa Indians. This work embodies Traditional Knowledge and Traditional Cultural Expressions. All rights reserved.

Metadata

Release files for ggufy 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ggufy 0.2.0
File Size Uploaded Provenance
ggufy-0.2.0.tar.gz 144.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ggufy 0.2.0
File Interpreter ABI Platform
ggufy-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details

Total release size: 1.8 MB

Release files / ggufy-0.2.0.tar.gz

Download URL ggufy-0.2.0.tar.gz
Size 144.5 kB
Tags Source
SHA-256 checksum
How to use checksums
31f0ddabd9d75a8de5f7aab81a57f9e1296c24c5eb421340da36f1b5b61693f5
BLAKE2b-256 checksum
How to use checksums
f0b9563250f3be675740c1657f5af38502ae8a8277d8980bdc462095447f45ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / ggufy-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ggufy-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d31398967257a991cfee6a97d3ce470ba1e62dad6e27e7579a4ded02f6696f3d
BLAKE2b-256 checksum
How to use checksums
26a02f615b1286116e96aeb4277443df57887b9e2ae4156d1d89eefa2a209cee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Security for ggufy 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.

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