Complete Jami al-Tirmidhi — 3,956 hadiths with full Arabic text and English translations. Offline-first, zero dependencies. CLI + Python library.
Project description
jami-al-tirmidhi
The complete Jami al-Tirmidhi — 3,956 hadiths, full Arabic & English.
Offline-first · zero dependencies · published on both npm and PyPI.
✨ Features
| Feature | Details | |
|---|---|---|
| 📚 | Complete Collection | All 3,956 authentic hadiths from Jami al-Tirmidhi |
| 🌐 | Bilingual | Full Arabic text + English translation |
| ⚡ | Offline-first | Data bundled — no CDN needed |
| 🔧 | Zero Dependencies | Nothing extra to install |
| 🔍 | Full-text Search | Search English text and narrator names instantly |
| 🖥️ | CLI | Terminal access with Arabic/English/both flags |
| ⚛️ | React Hook | One command generates useTirmidhi() |
| 🐍 | Python | Identical API — same camelCase method names |
| 📘 | TypeScript | Full type definitions included |
🚀 Installation
npm install jami-al-tirmidhi # JS local
npm install -g jami-al-tirmidhi # JS global CLI
pip install jami-al-tirmidhi # Python
🟨 JavaScript / Node.js
const tirmidhi = require('jami-al-tirmidhi'); // CJS
import tirmidhi from 'jami-al-tirmidhi'; // ESM
tirmidhi.get(1)
tirmidhi.getByChapter(1)
tirmidhi.search('prayer')
tirmidhi.search('prayer', 5)
tirmidhi.getRandom()
tirmidhi[0]
tirmidhi.length
tirmidhi.metadata
tirmidhi.chapters
tirmidhi.find(h => h.id === 23)
tirmidhi.filter(h => h.chapterId === 1)
tirmidhi.slice(0, 10)
⚛️ React
cd my-react-app
tirmidhi --react # generates src/hooks/useTirmidhi.js
import { useTirmidhi } from '../hooks/useTirmidhi';
function HadithOfTheDay() {
const tirmidhi = useTirmidhi();
if (!tirmidhi) return <p>Loading...</p>;
const h = tirmidhi.getRandom();
return <div><strong>{h.english.narrator}</strong><p>{h.english.text}</p></div>;
}
🐍 Python
from jami_al_tirmidhi import Tirmidhi
tirmidhi = Tirmidhi()
tirmidhi.get(1)
tirmidhi.getByChapter(1)
tirmidhi.search("prayer")
tirmidhi.search("prayer", limit=5)
tirmidhi.getRandom()
tirmidhi[0]
tirmidhi.length
tirmidhi.find(lambda h: h.id == 23)
tirmidhi.filter(lambda h: h.chapterId == 1)
tirmidhi.slice(0, 10)
# Custom path
tirmidhi = Tirmidhi(data_path="/path/to/tirmidhi.json")
🖥️ CLI
tirmidhi 1
tirmidhi 2345 -a # Arabic only
tirmidhi 2345 -b # Arabic + English
tirmidhi 23 34 # Hadith 34 within chapter 23
tirmidhi --search "prayer"
tirmidhi --search "fasting" --all
tirmidhi --chapter 1
tirmidhi --random
tirmidhi --react
tirmidhi --version
📂 Structure
jami-al-tirmidhi/
├── data/
│ ├── tirmidhi.json ← source of truth (replace with your real data)
│ ├── tirmidhi.json.gz ← generated (shipped in packages)
│ └── chapters/ ← generated (gitignored)
├── bin/index.js ← CLI
├── src/ ← JS source
├── types/index.d.ts
├── python/jami_al_tirmidhi/ ← Python package
├── scripts/build.mjs
├── examples/
├── docs/
└── tests/
🔧 Development
# Place your real tirmidhi.json in data/
node scripts/build.mjs # compress, generate chapters/, copy to python/
# Test locally before publishing
python -m build --wheel
python -m zipfile -l dist\jami_al_tirmidhi-1.0.0-py3-none-any.whl | findstr "tirmidhi.json.gz"
pip install dist\jami_al_tirmidhi-1.0.0-py3-none-any.whl --force-reinstall
tirmidhi 23
Publishing is automatic via GitHub Actions on every GitHub Release.
📄 License
GNU Affero General Public License v3.0 (AGPL-3.0)
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 jami_al_tirmidhi-1.0.0.tar.gz.
File metadata
- Download URL: jami_al_tirmidhi-1.0.0.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac76a74a3f18c23af1bdf84920dc182885f7e82e5de588305a498653d5bbce1b
|
|
| MD5 |
dd20305708f691ef00f3a684f2952144
|
|
| BLAKE2b-256 |
fac544fb54b5706f007c9bc0e5253e64b5f8f286d44cb0a277e1c392b0400767
|
File details
Details for the file jami_al_tirmidhi-1.0.0-py3-none-any.whl.
File metadata
- Download URL: jami_al_tirmidhi-1.0.0-py3-none-any.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b09f8a834f4a47e5e9ec2649c7333592322fdee32d4a2e8fb31eabcdf600e142
|
|
| MD5 |
3957748de9e80a825a1fa2e0b9ae2e96
|
|
| BLAKE2b-256 |
4bcaa3c09d0f3b8c8d173445bba759c50eac31a17c2957bcb0f3f6a1f8773666
|