cd /news/ai-infrastructure/range-open-a-1-tb-ai-model-in-3-seco… · home › topics › ai-infrastructure › article
[ARTICLE · art-141312] src=getrange.sh ↗ pub= topic=ai-infrastructure verified=true sentiment=↑ positive

Range – open a 1 TB AI model in 3 seconds without downloading it

Software engineer Andrey Grehov released Range, an open-source tool that opens a shell in a container image, Hugging Face repository, or S3/HTTP environment by reading only the bytes a program touches rather than downloading the whole source. In benchmarks run on EC2 m6i.large in us-east-1 on 28 September 2026, Range answered a llama.cpp chat prompt from the 6.38 GB unsloth/gemma-3-270m-it-GGUF repository in 6.7 seconds with the image indexed versus 18.3 seconds for docker pull plus hf download, and read a single tensor from the 1.03 TB, 61-shard moonshotai/Kimi-K2-Instruct model in 3.4 seconds while moving 9.5 MB of the model. Range installs as a macOS or Linux release archive (x86-64 or arm64), requires Lima for its Linux VM on macOS, and needs root plus the nbd, erofs and overlay kernel modules on Linux.

read4 min views1 publishedSep 28, 2026

README.md

Range opens a shell in a container image, a Hugging Face repository, or an environment in S3 or on any HTTP server, without down it first. Only the bytes your program reads cross the network.

$ range shell python:3.12
$ range shell python:3.12 --mount hf://moonshotai/Kimi-K2-Instruct:/model
$ range shell s3://<your-bucket>/dev.range

No Docker, no daemon and no pull. Linux runs it natively. On macOS, Range runs Linux in a small VM that it manages itself.

Measured on EC2 in us‑east‑1, with the image indexed once. See bench.log.

demo.txt

$ range run ghcr.io/ggml-org/llama.cpp:light-b11206 \
    --mount hf://unsloth/gemma-3-270m-it-GGUF:/model -- \
    llama-cli -m /model/gemma-3-270m-it-Q4_K_M.gguf -st \
    -p "Why is the sky blue? Answer in one sentence."

The sky is blue because of a phenomenon called Rayleigh scattering,
where blue light is scattered more than other colors.

Range opens the llama.cpp image from its registry and mounts the model repository at /model. The repository holds 6.38 GB in 24 files. Range reads one of them. With the image indexed, the answer took 6.7 s from an empty cache. docker pull plus hf download took 18.3 s. The very first run, which also indexes the image, took 15.5 s.

$ range run python:3.12 --mount hf://moonshotai/Kimi-K2-Instruct:/model -- \
    du -sh --apparent-size /model
959G    /model

Kimi K2 is 1.03 TB in 61 shards. A Python script inside read its config, the header of one shard and one tensor. That took 3.4 s with the image indexed, and moved 9.5 MB of the model. The other 60 shards never left Hugging Face.

Range reads a file when a program opens it. A program that reads a whole model still downloads the whole model, once.

bench.log

Empty cache to output docker pull Range, first run Range, indexed Range, again
Chat demo 18.3 s 579 MB 15.5 s 590 MB 6.7 s 317 MB 4.2 s 0 MB
python:3.12 15.8 s 435 MB 16.5 s 415 MB 2.8 s 48 MB 1.1 s 0 MB
rust:1.82 19.6 s 569 MB 22.4 s 546 MB 8.0 s 125 MB 1.6 s 0 MB
eclipse-temurin:21 7.9 s 232 MB 9.2 s 225 MB 2.9 s 49 MB 1.0 s 0 MB
Kimi K2, 1 TB not tried 1.03 TB 17.6 s 433 MB 3.4 s 56 MB 1.2 s 0 MB

The commands: import json and sqlite3, cargo --version, java -version, and a read of one Kimi K2 tensor. A first run reads each layer once to index it. The python:3.12 index is 4.1 MB. Medians of three, m6i.large, us‑east‑1, 28 September 2026. Every run starts empty, except "again". The bars replay at 3x speed.

problem.txt

A machine that needs a large environment downloads all of it, every time, to use a small part.

Range reads only the bytes each machine touches, and the next run fetches them before it asks.

design.txt

ReadAt(offset, length) -> bytes. Range turns a source into a disk, and turns each read of that disk into a ranged request to the source.

install.txt

A release archive for macOS or Linux, x86-64 or arm64. On macOS, Range also needs Lima for its Linux VM. Then open a shell in any image:

$ curl -fsSL https://github.com/andreygrehov/range/releases/latest/download/range_$(uname -s)_$(uname -m).tar.gz | tar -xz
$ brew install lima      # macOS only
$ ./range shell python:3.12

For your own environments, build once, and every first run reads lazily:

$ range build --from-oci python:3.12 -o py.range
$ range publish py.range s3://<your-bucket>/py.range
$ range shell s3://<your-bucket>/py.range

A published artifact needs no indexing. The go1.23 demo artifact was ready in 0.41 s on its first run, and moved 6 MB of 1.03 GB.

Or build from source, with Go 1.25 or newer:

$ git clone https://github.com/andreygrehov/range && cd range && make install

Linux needs root and the nbd, erofs and overlay kernel modules. range doctor checks them. Windows works through WSL2, untested.

about_me.txt

I am a software engineer at AWS. Range is my personal project.

── more in #ai-infrastructure 4 stories · sorted by recency
── more on @range 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/range-open-a-1-tb-ai…] indexed:0 read:4min 2026-09-28 · —