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

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.0.tar.gz (14.0 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.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pullama_cli-1.0.0.tar.gz
  • Upload date:
  • Size: 14.0 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.0.tar.gz
Algorithm Hash digest
SHA256 bd66946a95b7f6c5459136c11c98b276577833583ecb6e1a74038a9bdb820eff
MD5 c2dbc7f590d9ecbcac9f002751e26fc0
BLAKE2b-256 07ee1256b04723e1c33cb4efd001bdb3afcbefb1cd4602610e5ee37a592ec927

See more details on using hashes here.

Provenance

The following attestation bundles were made for pullama_cli-1.0.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: pullama_cli-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.0 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5c40db350eb7b9cd454a9df3b3fda937bdfde1d29d3fc511193da287d86f0a2a
MD5 3d13d8d0198e594b91eab0ed079cab9b
BLAKE2b-256 d93495c2ecb54c459df6e26fc4c8d237949aee67fffff0066e2e1383787acdff

See more details on using hashes here.

Provenance

The following attestation bundles were made for pullama_cli-1.0.0-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