Skip to main content

OpenJyotish — Free Vedic Astrology Toolkit

Free, open-source, cross-platform Vedic astrology software.
CLI + GUI (PyQt6) + TUI (terminal). AI-powered readings via local LLMs.

37 CLI commands  |  8 GUI categories + sub-tabs  |  9 TUI menus + sub-menus
21-section JSON API for AI agents  |  1175 tests  |  GPL v3.0

Quick Install

Option 1: Release (Windows — no Python needed)

Download the latest openjyotish-v*-windows.zip from Releases.
Extract, double-click OpenJyotish.bat. Includes ephemeris data.

Option 2: From source (Linux / Mac / Windows with Python)

# Linux / Mac
git clone https://github.com/velteyn/OpenJyotish.git
cd OpenJyotish
./install.sh
./run.sh

# Windows
git clone https://github.com/velteyn/OpenJyotish.git
cd OpenJyotish
install.bat
run.bat

Requires: Python 3.11+

Ephemeris data is auto-downloaded by install.sh / install.bat (2 files, ~1MB). pip installs: the app offers the one-time download on first Calculate (or Tools → Ephemeris → Download, or jhora download-ephe). Your own textbook .txt files go in the books folder inside your per-user data directory (Knowledge tab → "Import books…" or jhora knowledge-import f.txt), then Build/Rebuild the Vector DB. The public repo ships a clean database (schema + city atlas, no book texts): your library stays yours. Out of the box you still get a working library: our 10-chapter OpenJyotish Primer plus four public-domain classics (Iyer's Brihat Jataka 1885 and Brihat Samhita 1884, Burgess's Surya Siddhanta 1860, Sastri's Siddhanta Siromani 1861 — provenance in src/jhora/data/books/SOURCES-PD.md). The vector build loads them automatically on first run, so the Guru and Learn cite real textbooks with zero setup.

No-Python downloads (Windows & macOS)

Each release ships ready-to-run binaries — no Python, pip or terminal needed:

Platform Files
Windows OpenJyotish-<ver>-Windows-Setup.exe (installer: wizard, Start menu, uninstaller)
Linux OpenJyotish-<ver>-Linux-amd64.deb (sudo dpkg -i, menu entry + jhora CLI) or -Linux-x86_64.tar.gz

Notes: the apps are unsigned, so Windows SmartScreen will ask once ("More info" → Run). Your charts live per-user (%APPDATA%\OpenJyotish on Windows).

One-Minute Examples

# Get your chart
jhora chart "1973-03-14 14:55 +0100 45.41 11.88"

# Everything at a glance (AI-friendly JSON)
jhora analyze "1973-03-14 14:55 +0100 45.41 11.88"

# Current dasa period
jhora dasa-timeline "1973-03-14 14:55 +0100 45.41 11.88"

# Choghadiya — auspicious/inauspicious time slots for today
jhora choghadiya --lat 28.61 --lon 77.21 --tz 5.5

# Strengths
jhora shadbala --bhava --vimsopaka "birthdata"

# Prediction (Tithi Pravesha)
jhora tithi-pravesha "birthdata"

# Matchmaking
jhora kuta "girl_birthdata" "boy_birthdata"

# AI interpretation (needs Ollama)
# Full guide: https://github.com/velteyn/OpenJyotish/wiki/AI-Complete-Guide
jhora ai "birthdata"
jhora teach "How do I read my 7th house?" --chart "birthdata"

# Launch desktop app
./run.sh

Birth Data Format

All commands accept birth data as: "YYYY-MM-DD HH:MM TZ LAT LON"

"1973-03-14 14:55 +0100 45.41 11.88"
  │         │     │     │      └─ Longitude (E positive)
  │         │     │     └─ Latitude (N positive)  
  │         │     └─ Timezone (+0100 = UTC+1, +0530 = India, -0500 = EST)
  │         └─ Local time (24h)
  └─ Date

GUI

jhora gui or ./run.sh — 8 main categories with sub-tabs:

Category Contains
Dashboard Current dasa, transits, strengths, upcoming
Chart & Varga Chart View (Planets & Data, Ashtakavarga), Planets, Houses & Chalit, Varga Charts, Yogas
Strengths Shadbala, Arudha & Karaka, Ashtakavarga
Dasas Dasa Periods with interactive bar chart
Transits & Tajaka Transits, Tajaka & TP, Mundane
Special Matchmaking, Prasna, Muhurta (incl. Choghadiya)
AI & Learn AI Chat, AI Teacher, Knowledge, Reading
Tools Ephemeris

Getting started: Fill form → "Find" city → "Now" button → "Calculate"

Supported AI Models

Prompt templates, thinking behavior and context needs differ per model, so only this slate is verified (eval harness) and guaranteed:

Pick Model (LM Studio key) For
Quality mistralai/ministral-3-14b-reasoning Best entities/faithfulness; slow on small GPUs
Speed/VRAM qwen/qwen3.5-9b (clean instruct release) Fits 8GB VRAM, fast; weaker entity tracking

Set it in the AI tab's Prefer field (or CLI --preferred-model); the app auto-loads it with a VRAM-safe context and never unloads your own models. Roleplay/abliterated merges and ultra-low quants (IQ1_S) confabulate lore — avoid them for readings. Anything outside the slate may work but is not guaranteed.

Full audit trail, per-model scorecards and setup laws: docs/AI_LESSONS.md.

TUI

jhora tui — interactive terminal app with the same 9-category structure.
Arrow keys ↑↓ to navigate, letters to jump, Enter to select, b to go back, q to quit.

Main Menu:
  1  Birth Data Input          d  Dashboard
  c  Chart & Varga             s  Strengths
  a  Dasas & Timing            t  Transits & Tajaka
  x  Special                   i  AI & Knowledge
  u  Tools                     q  Quit

AI Tool-Calling (JSON API)

One command, everything computed. Pipe to AI agents, jq, or Python:

jhora analyze "birthdata"
# → 10KB JSON — 21 sections, every calculation

# Pipe it around
jhora analyze "..." | jq '.planets.Su.house'
jhora analyze "..." | jq '.dasa.mahadashas[] | select(.current)'
jhora analyze "..." | jq '.dasa.systems'   # current MD in every dasa system
jhora analyze "..." | jq '.choghadiya.current'   # current Choghadiya slot
jhora analyze "..." | jq '.muhurta_adjuncts.chandra_bala'   # daily adjunct grades
import json, subprocess
data = json.loads(subprocess.run(
    ["jhora", "analyze", birthdata], capture_output=True, text=True
).stdout)

All CLI Commands (35)

Command What it does
chart Rasi chart + planets + upagrahas + outer planets
analyze AI-friendly JSON dump (21 sections)
shadbala Six-fold planetary strength (+ --bhava + --vimsopaka)
kuja-dosha Kuja Dosha (Mangal Dosha) Mars affliction
yogas Detect 200+ planetary combinations
ashtakavarga BAV, SAV, Sodhya Pinda, Kakshya bindu
dasa Dasa periods for any system: vimsottari/ashtottari/yogini/sudasa/chara/narayana/kalachakra/brahma/karaka/moola/shoola/trikona/varnada/sthira/navamsa/yogardha/niryana-shoola/lagna-kendradi (MD/AD; system positional, --karaka-role for karaka, --house for shoola)
dasa-timeline Text bar chart with now-marker
conditional-dasas List additional dasa systems that apply
transit Current transits with SAV scores
tajaka Solar return chart
tithi-pravesha Annual solar-tithi ingress
progression Secondary progressions (1 day = 1 year)
kuta Marriage compatibility (Porutham + Ashta Koota)
prasna Horary (108/249/Nadi modes)
muhurta Electional — 11 task types (+ --adjuncts daily table, --janma-nakshatra Bala grades)
choghadiya 8 day + 8 night auspicious/inauspicious time slots
mundane World events, eclipses, ingresses
compare Natal vs transit or two-chart comparison
interpret Rule-based chart reading
traditional-report Formatted traditional-style chart report
knowledge Search Vedic textbooks provided by you in txt format
ai LLM chart reading (Ollama/LM Studio/Unsloth)
teach AI Teacher — learn Vedic astrology
export HTML report (printable to PDF)
ephemeris Daily planet table
varga Any divisional chart (D-1 to D-150)
navamsa D-9 Navamsa
panchanga Monthly calendar (tithi/nakshatra/rahu kalam)
chakras Sarvatobhadra + Kota chakras
lagnas All special lagnas with meanings
sphutas Prasna Marga auspicious points (Tri/Chatus/Pancha/Prana/Deha/Mrityu/Beeja/Kshetra/Yoga)
learning Marana karaka, KP sub-lords, vaiseshikamsas
tui Launch interactive terminal UI
gui Launch desktop GUI

Features

Calculation Engine

Rasi chart (D-1) with South/North/East styles · 23 varga charts (D-2 to D-150) · 18 dasa systems · 5 conditional dasas · Shadbala · Bhava Bala · Vimsopaka Bala (4 schemes) · 200+ yogas · Ashtakavarga (BAV/SAV/Kakshya) · Arudha Padas · Chara Karakas · 36 Sahamas · 20 ayanamsa modes (Lahiri/Raman/KP/Fagan/Tropical/etc.) · Outer planets (Uranus/Neptune/Pluto) · Upagrahas (5 solar + Gulika/Mandi) · Special lagnas (Bhrigu Bindu/Indu/Varnada/Pranapada/Vighati) · KP sub-lords (5 levels) · Chalit/Bhava charts

Forecasting

Transits with SAV scores · Tajaka solar return · Tithi Pravesha · Progressions · Dasa timeline · Mundane (ingresses/eclipses/conjunctions) · Matchmaking (10 Porutham + Ashta Koota 36pt) · Muhurta · Choghadiya · Prasna

AI & Data

Local LLM (Ollama/LM Studio/Unsloth) · RAG pipeline with textbook citations · AI Teacher mode · 8 AI topic templates · Context budgeting for small models · LM Studio setup guard (preferred model auto-load with VRAM-safe context) · Mechanical answer verification (every reading checked against computed data) · Unified SQLite DB (atlas 34K cities + knowledge + charts) · HTML export · JHD import/export · Chart browser · JSON API for AI agents

Architecture

src/jhora/
├── types/          Enums: Graha, Rasi, Nakshatra, Varga, Bhava, Dasa
├── ephemeris/      Swiss Ephemeris wrapper (18 API functions)
├── charts/         ChartBuilder, ChartData (frozen), VargaChartComputer
├── calc/           29 modules: strengths, yogas, dasas, transits, chakras...
├── dasas/          18 dasa systems (+ shared Jaimini core)
├── ai/             AI engine, RAG pipeline, JSON export, teacher
├── interpreter/    Chart reading, knowledge base
├── export/         HTML report generator
├── io/             Atlas (SQLite/FTS5), JHD parser
├── core/           Unified database
├── cli/            Typer CLI (37 commands)
├── tui/            prompt_toolkit menu system
└── ui/             PyQt6 GUI (8-category tabs, chart widget, dasa timeline)

💬 Community & Support

If you want to discuss the project, ask questions, or share your own astrology software tools, join our official community on Reddit: r/AstrologySoftware.

Traditions & Lineage

No single sampradaya — like JHora itself, this toolkit follows an eclectic school with a clear backbone:

  • Parashara core (Brihat Parashara Hora Shastra): Lahiri ayanamsa, whole-sign Rasi houses, Vimsottari dasa, Shadbala, Ashtakavarga — the mainstream North-Indian practice most software implements.
  • Jaimini integration (SJC / Sanjay Rath lineage, via P.V.R. Narasimha Rao's integrated approach): Arudha Padas, Chara Karakas, Rasi dasas (Chara, Narayana, Sudasa).
  • Karnataka muhurta (B.V. Raman): electional rules, Panchaka-Rahita, Durmuhurta/Varjya.
  • Krishnamurti elements: KP sub-lords for stellar precision.
  • Tajaka annual horoscopy: Indo-Persian Varshaphala (solar returns, Muntha, Mudda/Patyayini dasas).

Purists of any single tradition will find foreign bodies here; that mixing is the JHora school this project continues.

Credits

Based on OpenJyotish 8.0 Lite by PVR Narasimha Rao (Sri Jagannath Vedic Centre).
Atlas data: GeoNames.org (CC BY 4.0).

License

GNU GENERAL PUBLIC LICENSE v3.0 — free forever.
Modifications must remain open. Network use counts as distribution.

Release files for openjyotish 1.6.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openjyotish 1.6.3
File Size Uploaded
openjyotish-1.6.3.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for openjyotish 1.6.3
File Interpreter ABI Platform
openjyotish-1.6.3-py3-none-any.whl Python 3 none any Details

Total release size: 3.0 MB

Release files / openjyotish-1.6.3.tar.gz

Download URL openjyotish-1.6.3.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
e77d3bf11662ea841a676183595a35b682b678001346a6b7f68fa180131e179c
BLAKE2b-256 checksum
How to use checksums
76218f0431171f3db8acc6e7d7782c891a8d11b0679b10e6ee380da43fb71cae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / openjyotish-1.6.3-py3-none-any.whl

Download URL openjyotish-1.6.3-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
10814b1ff284a0e4433f17e0e016febf4d2b7ec020baeaa1fb60bea218ba955e
BLAKE2b-256 checksum
How to use checksums
a43dffd5cf416046c455cf6ed5fb49abcf6a090ae7f2ae0c42722ce53f94f29e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release history Release notifications | RSS feed

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

This release

1.6.3 This release

2 release files

1.6.2

2 release files

1.6.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page