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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf4a4eec9c5c32eef35456187f2618b78938f3022e361d31ef5bb3cbe5b2367a
|
|
| MD5 |
8c3bbbfe849efa3208781f5f33113754
|
|
| BLAKE2b-256 |
2a928c6e862406a424ab5028008f0abac157be0205eb581aa4507e9ef1f2966b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bf133bd32fd9b06e8f8ef8c23a5c3393cfecfbb922dfdd358d67d26f7d4fb21
|
|
| MD5 |
1bb8ca1fd16687ac1b23c3d108287e0f
|
|
| BLAKE2b-256 |
1c2624d59923cd67cb650842ee0b6043ec773e79a4050766467370348136c267
|