An Astronomy-First Open-Source Astrology Engine
From raw JPL kernel reads to advanced predictive techniques: one library with a documented Python API and native performance paths.
Every capability above, running in your browser
No install, no sign-up for the free tools: the same engine that computes the numbers.
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.
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.
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.
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.
Comprehensive Predictive Engine
Secondary/tertiary/minor progressions, primary directions (Placidus semi-arc & mundane), solar/lunar returns, Firdaria, Zodiacal Releasing, Vimshottari Dasha, and more.
Advanced Astronomy
NASA-canon eclipse solver, heliacal phenomena, occultations, astrocartography, galactic coordinates, parans, retrograde stations, harmonics, and synastry.
Validation-First Design
Comprehensive test suite referencing authoritative sources. Validation reports with documented residuals. Reproducible pipelines for research-grade work.
11,223 Position-Capable Asteroids
The external installed ephemeris manifest covers 11,223 bodies in 449 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.
1from datetime import datetime, timezone2from moira import Moira, HouseSystem3from moira.patterns import find_all_patterns4from moira.houses import house_of56m = Moira() # auto-discovers installed JPL kernel78# 1. Planetary positions - full reduction using the installed JPL kernel9chart = 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")1213# 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")2021# 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)}")2526# 4. House placement lookup27sun_house = house_of(chart.planets['Sun'].longitude, houses)28print(f"Sun is in house: {sun_house}")
Evaluate engines from evidence
Inspect Moira's generated capability receipts, then apply the same neutral checklist to any engine you consider.
Moira’s published capability receipts
These values come from the frozen v6.8.2 documentation manifest and its generated registries. They describe admitted surfaces, not universal support for every historical variant.
- 22 house systems
- 22 admitted registry entries
- 12 ayanamshas (Vedic sidereal)
- 12 admitted registry entries
- Fixed-star registry
- 1,809 source-governed entries
- Position-capable asteroid ephemerides
- 11,223 bodies; external install required
- 512 Arabic Parts
- 512 admitted definitions
- Documentation snapshot
- Published from v6.8.2 at 8542fae5af1e
Questions to ask of any engine
A durable evaluation records evidence and boundaries instead of relying on a competitor scoreboard that can become stale.
- License: read the official terms for the engine and its dependencies.
- Data: identify required kernels, catalogs, coverage, and redistribution terms.
- Techniques: verify supported methods, admitted variants, and explicit omissions.
- Evidence: inspect intermediate stages, validation scope, and reproducible receipts.
- Errors: check how unsupported inputs, missing data, and out-of-range requests fail.
- Provenance: record the exact version, release source, and data identity you evaluated.
Review the official license texts
Moira's repository is MIT-licensed. The MIT license permits commercial and closed-source use subject to its notice and disclaimer; adopters remain responsible for the licenses of their other code, data, and dependencies.
Moira v6.8.2 LICENSEThe Swiss Ephemeris project offers an AGPL option and a professional-license option. The correct obligations depend on how the software is integrated, modified, distributed, and offered over a network; review the official license and obtain legal advice for your use case.
Swiss Ephemeris LICENSEThese summaries are product information, not legal advice. Review the official license texts and obtain legal advice for your architecture and distribution.
License review checklist
- Review the licenses of the engine, wrappers, native libraries, and every other dependency.
- Identify the source and terms for kernels, catalogs, and other distributed data.
- Document how the engine is integrated, modified, and exposed by your application.
- Review what your distribution model requires for notices, source, and bundled artifacts.
- Evaluate network use and hosted-service obligations for your specific architecture.
Documented surfaces, explicit boundaries
The published site describes what the v6.8.2 documentation snapshot admits and shows where adopters must make their own technical and legal decisions.
What Moira publishes
- Versioned documentation and validation reports generated from a frozen engine commit
- Source-governed registries for house systems, ayanamshas, aspects, lots, and fixed stars
- Explicit policy objects, admitted variants, and named omissions on documented techniques
- Historical numerical receipts that retain their engine version and validation scope
What adopters still decide
- Choose and provision the appropriate JPL kernel and optional catalog data.
- Confirm that the admitted technique and policy match the intended method.
- Test supported date ranges, polar behavior, missing-data paths, and error handling.
- Review every license and data term in the final application architecture.
Moira's repository is MIT-licensed. The MIT license permits commercial and closed-source use subject to its notice and disclaimer; adopters remain responsible for the licenses of their other code, data, and dependencies.
Review the v6.8.2 LICENSEThese summaries are product information, not legal advice. Review the official license texts and obtain legal advice for your architecture and distribution.
Named validation evidence is published for specific scopes and versions. View the version-bound validation source
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.

Named authorities, corpora, tolerances, and engine versions

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.
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.
Researchers
Reproducible pipelines with documented residuals. Compare results against authoritative sources. Cite specific calculation parameters.
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.
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
Ready to build with Moira?
Install in seconds. MIT licensed. No hidden dependencies.