Skip to main content

Fix ollama pull TLS timeout and disconnects โ€” resumable Ollama model downloader for slow connections

Project description

Pullama ๐Ÿฆ™ Ollama Model Downloader & Installer

The ollama pull alternative built for slow, unstable, and limited internet connections.

If ollama pull keeps restarting, times out, or disconnects mid-download โ€” Pullama fixes that. It resumes interrupted downloads automatically, supports parallel connections via aria2, and installs models directly into Ollama when done, Works on slow connections, unstable Wi-Fi, mobile data, and VPNs.

# Common Ollama pull errors Pullama solves:
net/http: TLS handshake timeout
context deadline exceeded
download interrupted, starting from scratch

Pullama Demo


Install

Linux / macOS (recommended):

pipx install pullama-cli

pipx is the standard (protection) way to install Python CLI tools on modern Linux (Ubuntu 22.04+, Debian 12+). Install pipx first if needed: sudo apt install pipx && pipx ensurepath

Alternative (virtualenvs):

pip install pullama-cli

For faster, more reliable downloads โ€” install aria2 (optional but recommended):

# Linux (Debian/Ubuntu)
sudo apt install aria2

# macOS
brew install aria2

# Windows
winget install aria2

With aria2, Pullama downloads Ollama models using multiple parallel connections โ€” significantly faster and more resilient on slow or throttled connections.


Quick Start

Download & install ollama models in one command

pullama pull tinyllama:latest
pullama pull gemma2:2b
pullama pull deepseek-r1:7b

Pullama downloads the model and installs it into Ollama automatically. Then:

ollama run tinyllama:latest

Resume interrupted Ollama model downloads

If your connection drops, just run the same command again โ€” Pullama resumes from where it stopped:

pullama pull gemma2:2b
# ... connection drops at 60% ...

pullama pull gemma2:2b
# โ„น Resuming from 1.1 GB / 1.7 GB

No flags, no setup. Works after power cuts, network switches, sleep, or days later. This is the core feature ollama pull is missing โ€” once it disconnects, you lose everything.


Pullama vs ollama pull

Feature ollama pull pullama
Resume interrupted download โŒ โœ…
Parallel chunk downloads (aria2) โŒ โœ…
Offline / manual install โŒ โœ…
Download without Ollama installed โŒ โœ…
Export ollama model to another machine โŒ โœ…
Track download progress across sessions โŒ โœ…
Works on slow / unstable connections โš ๏ธ unreliable โœ…
SHA256 verification โŒ โœ…

Commands

Track your downloads

pullama list
  Model                  Size       Downloaded       Installed
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  tinyllama:latest        608 MB    608/608 MB  โœ”   โœ” yes
  gemma2:2b               1.7 GB    856 MB/1.7 GB   โœ— no

Get direct download URLs

For users who prefer to download Ollama models manually with wget, curl, IDM, or any other download manager:

pullama get gemma2:2b

Prints direct blob URLs and ready-to-use curl commands โ€” useful for downloading ollama models on a separate machine or through a proxy.

Manual Ollama model installation

Already downloaded the files? Install them into Ollama without re-downloading:

pullama install --model gemma2:2b --blobsPath ./downloads

Download Ollama models without ollama (offline install)

Pullama works even if Ollama isn't installed yet. It saves the model files locally so you can install them later โ€” or copy them to another machine or a friend with no internet:

pullama pull gemma2:2b
# โš  Ollama not found โ€” downloading to: ~/pullama-models/gemma2-2b/
# โœ” gemma2:2b downloaded!
#   Saved to: ~/pullama-models/gemma2-2b/
#
#   Once Ollama is installed, run:
#     pullama install --model gemma2:2b --blobsPath ~/pullama-models/gemma2-2b/

Copy the folder to a USB drive, give it to a friend, install on an air-gapped machine โ€” it just works.


How it works

Ollama stores models as SHA256-named blob files. Pullama downloads each blob directly into Ollama's models directory (~/.ollama/models or /usr/share/ollama/.ollama/models for system installs) and writes the manifest last โ€” so Ollama only sees the model once everything is verified complete.

If a download is interrupted, the partial blob stays on disk. On the next run, Pullama checks the existing file size and sends an HTTP Range: bytes=X- request to continue exactly where it stopped โ€” no re-downloading from zero.

With aria2: splits each file into 4 parallel chunks. Bypasses per-connection throttling and dramatically improves speed on slow connections.

Without aria2: uses Python's built-in HTTP client with the same resume logic.


Model name format

tinyllama:latest                    # official model, explicit tag
gemma2:2b                           # official model
deepseek-r1:7b                      # official model
huihui_ai/deepseek-r1:8b            # community model (namespace/model:tag)

Platform support

Platform Supported
Linux โœ”
macOS โœ”
Windows โœ”

License

MIT


Credits

Pullama started as a fork of oget by fr0stb1rd. The original idea of fetching direct download URLs from the Ollama registry belongs to them. Pullama extends it with resumable downloads, automatic Ollama install, aria2 support, state tracking, smart path detection, and a fully rewritten CLI built for slow and unstable connections.

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

pullama_cli-1.0.2.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pullama_cli-1.0.2-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file pullama_cli-1.0.2.tar.gz.

File metadata

  • Download URL: pullama_cli-1.0.2.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pullama_cli-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8526eb1b4b0f689dcb2fb84e694ad638e9037f24edf8b84108669e3dc2c37dac
MD5 7ce549d8511855d8e698a52f14ea6731
BLAKE2b-256 5d21f1e4205e07eddc9aab7130c193985de4f2682afc1133c6ed32882519a947

See more details on using hashes here.

Provenance

The following attestation bundles were made for pullama_cli-1.0.2.tar.gz:

Publisher: publish.yml on Steve-sy/pullama

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pullama_cli-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: pullama_cli-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pullama_cli-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4182d1614fc8d0df9ef45ace67f4c01c8aa3c46649ef49fc4edf0c12dcbfde26
MD5 8cf5faea45e7a76f7de4a799643a4e3f
BLAKE2b-256 e57ed95a12af07af05bc3f2b888851422de3fdd24ebe93fb389d29347f698337

See more details on using hashes here.

Provenance

The following attestation bundles were made for pullama_cli-1.0.2-py3-none-any.whl:

Publisher: publish.yml on Steve-sy/pullama

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page