Skip to main content

Just-In-Time Downloads — download specific files from GitHub without cloning

Project description

jit

Just Instead of cloning The whole repo.

A tiny Python CLI to download specific files or folders from any public (or private) GitHub repo — no git clone needed.


Why?

Sometimes you just need one file. Or one folder. Not 500MB of history.

git clone https://github.com/torvalds/linux   # ❌ 4GB download
jit get torvalds/linux/Makefile               # ✅ 1 file, done

Install

pip install jit-cli

Or from source:

git clone https://github.com/yourname/jit
cd jit
pip install -e .

Usage

jit get — Download a file or directory

# Single file
jit get owner/repo/path/to/file.py

# From a specific branch or tag
jit get owner/repo@main/path/to/file.py
jit get owner/repo@v2.1.0/CHANGELOG.md

# Whole directory (recursive)
jit get psf/requests/src/requests

# Paste a GitHub URL directly
jit get https://github.com/torvalds/linux/blob/master/Makefile

# Save to a specific output directory
jit get microsoft/vscode/src/vs/base -o ./vscode-base

jit ls — Browse a repo without downloading

jit ls golang/go
jit ls facebook/react/packages

jit multi — Download many files at once

# Inline
jit multi torvalds/linux/Makefile psf/requests/README.md

# From a file (one target per line)
jit multi -f filelist.txt

Example filelist.txt:

# Python tools I always want
psf/requests/src/requests/adapters.py
psf/black/src/black/__init__.py
# Config templates
owner/repo@main/configs/base.yml

jit info — Repo summary

jit info golang/go

Target format

Format Example
owner/repo/path torvalds/linux/Makefile
owner/repo@branch/path microsoft/vscode@main/package.json
owner/repo@tag/path psf/requests@v2.31.0/README.md
Full GitHub URL https://github.com/owner/repo/blob/branch/path

Auth & rate limits

GitHub's unauthenticated API limit is 60 requests/hour. For heavy use, set a token:

export GITHUB_TOKEN=ghp_yourtoken

Or pass inline:

jit get owner/repo/file.py --token ghp_yourtoken

Options

Flag Commands Description
-o, --output DIR get, multi Output directory (default: .)
-t, --token TOKEN all GitHub personal access token
-q, --quiet get, multi Suppress per-file output

No dependencies

jit uses only Python's standard library. Nothing to install beyond Python 3.7+.


License

MIT

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

jitd-1.0.0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

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

jitd-1.0.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jitd-1.0.0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for jitd-1.0.0.tar.gz
Algorithm Hash digest
SHA256 bf4a4eec9c5c32eef35456187f2618b78938f3022e361d31ef5bb3cbe5b2367a
MD5 8c3bbbfe849efa3208781f5f33113754
BLAKE2b-256 2a928c6e862406a424ab5028008f0abac157be0205eb581aa4507e9ef1f2966b

See more details on using hashes here.

File details

Details for the file jitd-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: jitd-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for jitd-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4bf133bd32fd9b06e8f8ef8c23a5c3393cfecfbb922dfdd358d67d26f7d4fb21
MD5 1bb8ca1fd16687ac1b23c3d108287e0f
BLAKE2b-256 1c2624d59923cd67cb650842ee0b6043ec773e79a4050766467370348136c267

See more details on using hashes here.

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