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)
Metadata
Release files for jami-al-tirmidhi 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jami_al_tirmidhi-1.0.0.tar.gz | 1.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jami_al_tirmidhi-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.0 MB
Release files / jami_al_tirmidhi-1.0.0.tar.gz
| Download URL | jami_al_tirmidhi-1.0.0.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac76a74a3f18c23af1bdf84920dc182885f7e82e5de588305a498653d5bbce1b
|
|
BLAKE2b-256 checksum How to use checksums |
fac544fb54b5706f007c9bc0e5253e64b5f8f286d44cb0a277e1c392b0400767
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / jami_al_tirmidhi-1.0.0-py3-none-any.whl
| Download URL | jami_al_tirmidhi-1.0.0-py3-none-any.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b09f8a834f4a47e5e9ec2649c7333592322fdee32d4a2e8fb31eabcdf600e142
|
|
BLAKE2b-256 checksum How to use checksums |
4bcaa3c09d0f3b8c8d173445bba759c50eac31a17c2957bcb0f3f6a1f8773666
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|