Development build, October 2026. UCompute is in development. There is no public release or download yet. The first half of this note applies to any GGUF file from any tool.
A GGUF file is a few hundred megabytes to tens of gigabytes of weights that you are about to hand to an inference engine. Downloads get cut off, mirrors go stale, and a file with the same name can be replaced upstream. Checking the hash takes a minute and tells you one precise thing: whether the bytes on your disk are the bytes the Hub lists for that file.
Large files on the Hugging Face Hub, including GGUF weights, are tracked as Git LFS objects, and the SHA-256 of each such file is its LFS object id; repositories on the Hub’s newer Xet storage still publish it. You can read it without downloading the file, in two ways.
The raw pointer (replace the repository and file name):
curl -sL https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct-GGUF/raw/main/qwen2.5-0.5b-instruct-q4_k_m.gguf
version https://git-lfs.github.com/spec/v1
oid sha256:74a4da8c9fdbcd15bd1f6d01d621410d31c6fc00986f5eb687824e7b93d7a9db
size 491400032
Or the repository tree API, which lists every file with its size and, for files stored in LFS (all the GGUF files here), an lfs.oid that is the SHA-256. Ignore the top-level oid: it is the 40-character Git object id, not the file’s hash.
curl -s https://huggingface.co/api/models/Qwen/Qwen2.5-0.5B-Instruct-GGUF/tree/main
Both read the main branch. If you downloaded from a specific commit, replace main with that commit id in either URL, because the file under a name can change between commits.
Check the size first: if it differs from size, the download stopped early or is a different file, and there is no need to hash it.
macOS
shasum -a 256 qwen2.5-0.5b-instruct-q4_k_m.gguf
Linux
sha256sum qwen2.5-0.5b-instruct-q4_k_m.gguf
Windows (PowerShell)
(Get-FileHash -Algorithm SHA256 .\qwen2.5-0.5b-instruct-q4_k_m.gguf).Hash
Compare the 64 hexadecimal characters with the pointer’s oid (the part after sha256:) or the tree API’s lfs.oid. Every character must match; Windows prints uppercase and the Hub lowercase, which is the same value.
A match proves the bytes are identical to the file the Hub served for that name at that commit. It does not prove who trained the model, that the weights behave as the model card says, or that the file is safe to load; it only removes “corrupted or swapped in transit” from the list of possibilities. If the publisher’s account or repository were changed, the pointer would change with it, which is why pinning a commit matters.
UCompute’s development builds run this check themselves and pin more than the file name.
74a4da8c…a9db the Hub publishes, and its download URL names a fixed commit rather than main, so a later upload under the same file name would not change what is fetched; bytes that did not match the pinned hash would be rejected in any case.No platform is declared supported yet. macOS 26.2 on Apple M2 and Windows 11 on an Intel Core Ultra 7 258V with Arc 140V are experimental; Linux, other GPUs and phones (as clients) are planned.
UCompute’s code is licensed under Apache-2.0. The source has not been published yet.
Corrections and questions: hello@ucompute.org. Please send anything security-related there rather than posting it publicly. UCompute is in development. There is no public release or download yet.
Follow new notes: Bluesky @ucompute.org or the Atom feed.