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  |  1155 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.2

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.2
File Size Uploaded
openjyotish-1.6.2.tar.gz 1.5 MB Details

Built distribution (wheel)

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

Total release size: 3.0 MB

Release files / openjyotish-1.6.2.tar.gz

Download URL openjyotish-1.6.2.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
a9db1f9a45db5fad7e3177bbbbf979b1b49fdf877004882cfff40d282d127906
BLAKE2b-256 checksum
How to use checksums
84d4a56333671d1341952ead3201d5ebf155ed745c4516a1ffa66f699e49f45f
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 17, 2026.

Transparency log

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

Download URL openjyotish-1.6.2-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
94c4233572445150e56b92c0ab25b42de7edf25f6318e300ae5719806288aa4a
BLAKE2b-256 checksum
How to use checksums
3688a230d5208a380072ffb89de3983046ca673dc8b632f4111b62c578c79828
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 17, 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

1.6.3

2 release files

This release

1.6.2 This release

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