Overview
Ascendant is a developer ecosystem for sidereal astrology. Every calculation runs locally, with no hosted API and no external calls.
- TypeScript library: An Effect-first library that computes charts, dashas, Ashtakavarga scores, and transits.
- Python library: The same math, for environments where Python runs.
- Agent skill: Turns a saved birth record into a source of truth and pairs it with a deterministic KP algorithm, so the AI works from computed positions instead of guessing them.
- Birth Chart Calculator: A browser-based tool on the docs site covering Navamsha, Dasha, Jaimini, KP, and Sarvashtakavarga.
Problem
AI agents hallucinate astrology values when they reason from memory, and interpretations buried in model prompts can't be audited. Meanwhile, the underlying calculations are precise and demanding:
- Vimshottari Dasha requires arithmetic anchored to the Moon's natal nakshatra.
- Divisional charts (sixteen in all) transform planetary longitudes by specific ratios.
- Yogas number in the hundreds across canonical texts.
- Ashtakavarga adds a scoring matrix of 360 cells.
Existing software rarely exposes any of this as programmatic, agent-ready tooling.
Approach
Ascendant is an end-to-end workflow across four surfaces:
- The TypeScript library does the math with Effect services.
- The Python package mirrors it for Python runtimes.
- The agent skill saves birth records and answers readings with cited evidence.
- The calculator demonstrates the whole pipeline interactively.
TypeScript library
The astro-ascendant package computes everything through composable Effect services. Provide a UTC moment, latitude, longitude, and optional birth sex, and Chart.generate returns shared placements plus cusp-aware charts: D1 by default, with divisions like D9 on request. The Dasha, Ashtakavarga, and Jaimini modules reuse those placements.
Ayanamsa and house system are typed parameters with immutable defaults. The quickstart uses Krishnamurti and Placidus, and Lahiri and Whole Sign are also available.
Python library
The astro-ascendant package on PyPI computes the same domains locally: divisional charts, the full Vimshottari Dasha timeline, current Dasha lookups, yoga results, and the complete Ashtakavarga result. Charts use the sidereal zodiac, with Lahiri ayanamsa and Whole Sign houses as defaults.
A frozen configuration object holds the resolved enums, timezone, coordinates, and software version, so results are reproducible.
Agent skill
The skill lives in thaletto/ascendant-agents and installs into Claude, Codex, Cursor, Gemini, OpenCode, and more. It takes three arguments:
initcreates or refreshes a reusablepersons/<name>/record from exact birth data.setupinstalls calculation dependencies once per working directory.analysisanswers a reading or timing question from the saved record, grounding claims in stored charts and method references. KP handles timing and yes/no questions; Parashari handles promise, quality, and synthesis.
Person memory accumulates only confirmed events, so readings stay consistent across sessions.
Birth Chart Calculator
The docs site runs the TypeScript library end to end: Navamsha, Dasha, Jaimini, KP, and Sarvashtakavarga from a birth moment and location. A learning guide covers zodiacs, houses, dashas, and the Parashari, Jaimini, and Krishnamurti traditions.
How It Works
The program returns shared placements plus the D1 and D9 charts.
For agent-driven readings, install the skill, save a record, and ask a question:
Tech Stack
- TypeScript
- Effect
- Bun
- Python
- skills.sh
- Codex
- Claude
- Supermemory
