The Most Comprehensive Open-Source Astrology Engine

From raw JPL kernel reads to advanced predictive techniques: one library with a documented Python API and native performance paths.

22
house systems
10,025
position-capable asteroid ephemerides
1,809
fixed stars, Gaia DR3-linked
24
ecliptic + declination aspect types
13,200 BCE – 17,191 CE
ephemeris range (JPL DE441)

Every capability above, running in your browser

No install, no sign-up for the free tools: the same engine that computes the numbers.

Astronomy-First

JPL DE440/DE441 Foundation

Built on NASA's most accurate planetary ephemeris. Iterative light-time correction, multi-body relativistic deflection, annual aberration, every step documented and inspectable.

Transparency

Auditable Calculations

Every intermediate value is accessible. Python API owns orchestration and per-stage controls. Explicit computational policy, deterministic behavior, and documented residuals against ERFA/SOFA.

Stellar Coverage

1,809-Star Sovereign Registry

Sovereign registry with proper motion, parallax, epoch propagation, and Stellar Quality classification. Versioned external-reference evidence is published with its corpus and engine version.

Chart Calculation

22 House Systems + Aspect Patterns

Placidus, Koch, Regiomontanus, Campanus, Morinus, Porphyry, Whole Sign, Equal, APC, Sunshine, and more. 22 ecliptic aspect types plus 2 declination aspect types, multi-body patterns, and antiscia.

Predictive Techniques

Comprehensive Predictive Engine

Secondary/tertiary/minor progressions, primary directions (Placidus semi-arc & mundane), solar/lunar returns, Firdaria, Zodiacal Releasing, Vimshottari Dasha, and more.

Advanced Features

Advanced Astronomy

NASA-canon eclipse solver, heliacal phenomena, occultations, astrocartography, galactic coordinates, parans, retrograde stations, harmonics, and synastry.

Research Grade

Validation-First Design

Comprehensive test suite referencing authoritative sources. Validation reports with documented residuals. Reproducible pipelines for research-grade work.

Asteroid Fleet

10,025 Position-Capable Asteroids

The external installed ephemeris manifest covers 10,025 bodies in 401 shards. Separately, the family catalog records 342 families and 200,726 unique numbered asteroids; catalog membership alone is not an ephemeris.

From install to chart in five lines

Moira's API is designed to be explicit and readable. No magic defaults, no hidden configuration. Every parameter has a clear name and a documented effect.

01
Install
pip install moira-astro — supported prebuilt wheels include the native runtime; source builds require C++17, CMake, and pybind11.
02
Configure Kernel
Run moira-kernel-manager (GUI) or moira-download-kernels (CLI) to fetch a JPL DE440/DE441 kernel. One-time setup.
03
Compute
Call m.chart(), m.houses(), m.fixed_star() and more with explicit parameters.
04
Inspect
Access intermediate values, validation reports, and calculation traces.
moira_quickstart.py
1from datetime import datetime, timezone
2from moira import Moira, HouseSystem
3from moira.patterns import find_all_patterns
4from moira.houses import house_of
5 
6m = Moira() # auto-discovers installed JPL kernel
7 
8# 1. Planetary positions - full reduction using the installed JPL kernel
9chart = m.chart(datetime(2000, 1, 1, 12, 0, tzinfo=timezone.utc))
10print(f"Sun: {chart.planets['Sun'].longitude:.6f} deg")
11print(f"Moon: {chart.planets['Moon'].longitude:.6f} deg")
12 
13# 2. House cusps (Placidus, London)
14houses = m.houses(
15 datetime(2000, 1, 1, 12, 0, tzinfo=timezone.utc),
16 latitude=51.5074, longitude=-0.1278,
17 system=HouseSystem.PLACIDUS,
18)
19print(f"ASC: {houses.asc:.4f} deg | MC: {houses.mc:.4f} deg")
20 
21# 3. Aspect patterns (21 multi-body configurations)
22patterns = find_all_patterns(chart.longitudes())
23for p in patterns:
24 print(f"{p.name}: {', '.join(p.bodies)}")
25 
26# 4. House placement lookup
27sun_house = house_of(chart.planets['Sun'].longitude, houses)
28print(f"Sun is in house: {sun_house}")

Moira vs. the competition

The comprehensiveness claim, tested feature by feature against the most popular Python astrology libraries.

FeatureMoiraKerykeionImmanuelSwiss Eph.
Python API with inspectable stagesYesNoNoNo
Inspectable intermediate stagesYesNoNoNo
JPL DE440/DE441 kernel supportYesNoNoYes
IAU-aligned precession/nutationYesNoNoYes
Fixed star catalogYespartialYesYes
22 house systemsYesYespartialpartial
Eclipse & occultation engineYesNopartialYes
Heliacal phenomenaYesNoNoYes
12 ayanamshas (Vedic sidereal)YesYesNoYes
Primary directions (built-in)YesNoNoNo
Vimshottari Dasha & NakshatrasYesNoNoNo
Astrocartography (ACG lines)YesNoNoNo
512 Arabic PartsYesNoNoNo
Documented validation residualsYesNoNoYes
MIT License (commercial friendly)YesNoNoNo
Harmograms / spectral research engineYesNoNoNo
Synastry, composite & Davison chartsYespartialpartialNo
SVG chart generationNoYesNoNo

MIT vs. AGPL licensing

Swiss Ephemeris (and the wrappers built on it) requires AGPL compliance — any application using it must also be open-sourced — or a paid commercial license. Moira is MIT licensed: free for closed-source commercial use, no copyleft obligations, no license fee.

* Kerykeion and Immanuel are wrappers over the Swiss Ephemeris C library (pyswisseph). Swiss Ephemeris is a powerful C library with 25+ house systems, eclipses, and fixed stars, but it requires AGPL or a paid commercial license, uses compiled C binaries, and does not expose intermediate calculation stages. Primary directions, Dasha systems, and astrocartography are not part of its core API and require separate implementation.

Read the case study: shipping commercial software without the AGPL

Moira vs. Swiss Ephemeris

Swiss Ephemeris is a serious, well-validated C library. This is a developer-to-developer comparison of what each approach offers and where the trade-offs lie.

SE

Swiss Ephemeris

LanguageC library (pyswisseph Python binding)
LicenseAGPL-3.0 or CHF 750+ commercial
KernelBundled Astrodienst files (not JPL SPICE)
Intermediate stagesNot accessible, black-box C
House systems25+ systems
Fixed starsCatalog included
Primary directionsNot in core API
Dasha / NakshatrasNot in core API
AstrocartographyNot in core API
HarmogramsNot available

Swiss Ephemeris is mature, accurate, and widely deployed. The AGPL license means any application using it must also be open-sourced, or you pay for a commercial license. The C binary means you cannot step through the calculation, modify a stage, or validate an intermediate value without reading C source.

M

Moira

LanguagePython API + C++17 native core
LicenseMIT: commercial use free, forever
KernelJPL DE441/DE440/DE430 SPICE files
Intermediate stagesFully accessible, individually toggleable
House systems22 systems
Fixed stars1,809 sovereign registry + Gaia DR3
Primary directionsBuilt-in (Placidus semi-arc & mundane)
Dasha / NakshatrasVimshottari Dasha, 27 nakshatras
AstrocartographyACG lines, Local Space, Gauquelin
HarmogramsH1–H5 spectral research engine

Moira's Python API orchestrates a C++17 native core for performance while keeping every stage inspectable. The MIT license removes all commercial friction. Features like primary directions, Dasha systems, harmograms, and astrocartography are first-class citizens, not afterthoughts.

When to choose which

Choose Swiss Ephemeris if…
  • You already have a codebase built on pyswisseph
  • You need SVG/PDF chart rendering (Astrodienst tools)
  • You already have a codebase built on pyswisseph
  • You need SVG/PDF chart rendering (Astrodienst tools)
Choose Moira if…
  • You need MIT licensing for commercial products
  • You want to inspect, modify, or validate any calculation stage
  • You need primary directions, Dasha, harmograms, or astrocartography
  • You are building research pipelines that cite specific parameters
  • You want a Python-native API without a C dependency chain

In summary: Swiss Ephemeris remains the standard for C-based applications and existing pyswisseph codebases, while Moira is the Python-native alternative for developers who need MIT licensing, an inspectable astronomical pipeline, and built-in predictive techniques such as primary directions and Vimshottari Dasha.

Most astrology software hides the math. Moira shows it.

Swiss Ephemeris wrappers like Kerykeion and Immanuel delegate all computation to a compiled C library. You get results, but no insight into how they were derived. Moira exposes the full reduction pipeline through a Python API, from raw JPL kernel reads to final astrological output, with a native C++17 core handling performance-critical paths transparently.

Each named transformation has documented Python controls and inspectable evidence, while the native core handles performance-critical paths.

Versioned validation reports against named external authorities
Explicit computational policy: no hidden defaults
Reproducible pipelines for research and peer review
Versioned release history with compatibility and validation notes
AI-ready: llms.txt + AGENTS.md for LLM integration
Digital star chart showing constellation lines
Versioned Validation Evidence

Named authorities, corpora, tolerances, and engine versions

Abstract digital orrery showing orbital mechanics

Python orchestration. C++17 performance.

Moira runs a C++17 native extension (_moira_native) for performance-critical paths, while the Python layer owns the API surface, orchestration, and documented controls for exposed stages.

JPL DE441/DE440 Kernel
Raw barycentric state vectors via SPICE SPK files (C++ native reader)
Light-Time Iteration
Iterative correction for finite speed of light
Relativistic Deflection
Multi-body (Sun, Jupiter, Saturn, Earth) gravitational bending
IAU 2000A/2006 Nutation (C++ native)
Full IAU 2000A series evaluated by _moira_native for speed
Annual Aberration
Velocity-based stellar aberration correction
Topocentric Parallax
WGS-84 observer position correction
Astrological Output
Houses, aspects, dignities, predictive techniques, synastry, harmograms

Built for Those Who Need to Know

Developers

Build astrology applications on a solid, auditable foundation. Python API with C++ performance core means easy integration, fast event searches, and full debuggability.

pip install moira-astro
MIT licensed
Type-annotated API
Kernel Manager GUI

Researchers

Reproducible pipelines with documented residuals. Compare results against authoritative sources. Cite specific calculation parameters.

Documented residuals
Validation reports
Reproducible outputs
JPL/IAU standards

Serious Practitioners

Understand exactly how your chart is computed. Access intermediate values, verify against reference charts, and explore the mathematics of traditional and modern techniques.

Inspectable stages
22 house systems
Zodiacal Releasing
512 Arabic Parts
Moira Workspace: Beta

Professional chart tools, built for precision

The Moira Workspace is a full-featured browser-based environment powered by the same astronomy-first engine behind the Python library. Calculate natal charts, progressions, synastry, and more, with every intermediate stage visible and exportable.

  • Natal, progressed & synastry charts
  • JPL DE441 + IAU 2000A precision
  • All major house systems
  • Interactive chart wheel with aspect filtering
  • No per-chart fee · $19/month or $190/year
Natal Charts
Full planet + house + aspect analysis
Progressions
Secondary & solar arc progressions
Synastry
Composite & relationship charts
Astrocartography
World map with planetary lines
$19/mo
or $190/yr
If you received a promotion code, enter it at checkout
Community · MIT License

Ready to build with Moira?

Install in seconds. MIT licensed. No hidden dependencies.