Built for Every Practitioner

Who Uses Moira

Three distinct audiences — each with different needs, different workflows, and different reasons to choose Moira over the alternatives.

Developers

Building production applications

Moira's MIT license and four-tier import surface make it the right foundation for any application that needs reliable astronomical computation without AGPL licensing constraints.

Key Capabilities
  • REST API backend for chart calculations
  • Batch processing of historical ephemeris data
  • Real-time transit and progression alerts
  • Synastry and composite chart generation
  • Integration with existing Python data pipelines
  • Custom aspect orb policies via AspectPolicy
MIT License
No AGPL copyleft — ship closed-source apps without legal risk
Pure Python API
No C compiler required for your users; pip install just works
Typed returns
All vessels are typed dataclasses — IDE autocomplete works
Policy objects
Customize aspect orbs, house systems, and ayanamshas per request
FastAPI integration patternDevelopers
from moira.facade import Moira, HouseSystem
from datetime import datetime, timezone

# Initialize once — kernel auto-detected
m = Moira()

def calculate_chart(birth_dt: datetime, lat: float, lon: float) -> dict:
    chart = m.chart(birth_dt)
    houses = m.houses(birth_dt, latitude=lat, longitude=lon,
                      system=HouseSystem.PLACIDUS)
    aspects = m.aspects(chart)

    return {
        "planets": {
            name: {"longitude": p.longitude, "speed": p.speed}
            for name, p in chart.planets.items()
        },
        "asc": houses.asc,
        "mc": houses.mc,
        "aspects": [
            {"body1": a.body1, "aspect": str(a.aspect), "orb": a.orb}
            for a in aspects
        ],
    }

Ready to get started?

Install Moira, download a JPL kernel, and compute your first chart in under five minutes.