Validated astrology computation in TypeScript
Caelus is a clean-room, MIT-licensed TypeScript suite for validated astrology computation. It computes planetary positions, charts, events, hellenistic timing techniques, Vedic methods, and citable chart facts across browser, edge, Node, and MCP clients, without Swiss Ephemeris code, AGPL licensing, or ephemeris files.
Compute a chart
You pass a date, a UT time, a latitude, and a longitude, and the engine returns a chart object your app, API, or AI tool can read.
caelus-wheel: 1990-06-10 14:30 UT, Tampa.Full walkthrough in the Quickstart, or try it live in the Playground. For a complete app, the caelus-starter template is a Next.js project with a birth form, timezone handling, and a chart wheel, deployable to Vercel in one click.
What it computes
- Charts
Sun through Pluto, Chiron, and the nodes; twelve house systems; tropical and seven sidereal zodiacs.
- Events
Rise, set, and transit; stations; lunar phases; solar and lunar eclipses with local circumstances.
- Derived charts
Returns, progressions, solar arc, composite, Davison, harmonics, dignities, and sect.
- Hellenistic time-lords
Lots, profections, firdaria, zodiacal releasing, and primary directions.
- Vedic & Jyotish
Nakshatras, the Vimshottari, Yogini, and Ashtottari dashas, divisional charts, and yogas.
- Interpretation layer
Ranked, citable fact atoms, a pluggable rule corpus, and LLM briefs with citation auditing.
- Sky View
The visible sky from a place and moment as a pixel-precise prompt for AI image generation.
- Chart provenance
Declare what a chart is (forecast, mythic, archetypal) and route to the ephemeris or the compiler.
- MCP server
caelus-mcpgives Claude, Cursor, and other MCP clients thirty-five chart tools. - In-browser computation
Charts compute entirely in the browser, so an app never has to send birth data to a server.
The full capability list, along with a comparison against the other engines, is on Features.
The packages
caelusThe chart math: positions, houses, and aspects. It has no runtime dependencies and is ~153 KB gzipped with the embedded data.
caelus-mcpThirty-five chart tools for AI agents: natal charts, transits, synastry, event search, electional, lots, time-lords, directions, and the Vedic layer (nakshatras, dashas, vargas, yogas).
caelus-birthResolves a local birth time and place to UT, applying DST and historical timezone rules.
caelus-wheelA React SVG chart wheel that is SSR-safe and ~2.2 KB gzipped.
How it is checked
CI checks the engine in two stages. A Python reference engine is first calibrated against Swiss Ephemeris, and the TypeScript port is then replayed against 3,397 golden checks derived from it. The worst deviation recorded across that suite is 0.61 nano-arcsecond, which sits far below any astronomically relevant scale, so a porting bug fails the build instead of reaching a release. The tables and the methodology behind them are on Validation, and the bugs this suite has caught are written up in the Build Notes.
Frequently asked questions
Is Caelus free to use in commercial projects?
How accurate is it?
Do I need Swiss Ephemeris or ephemeris files?
What date range does it cover?
unavailable field rather than guessed. See Edge Cases.Does it support Vedic astrology, or only Western?
Can charts be computed without sending birth data to a server?
Can I use it with AI assistants like Claude or Cursor?
caelus-mcp exposes thirty-five chart tools over the Model Context Protocol, available hosted or as a local stdio server. See MCP Setup.Does it interpret a chart, or just compute it?
Can it chart a forecast, a fictional character, or an archetype?
Realm) and how its time and place are known. realize() routes to the ephemeris or the geometric compiler, and passes certainty into the interpretation layer so a forecast reads as provisional and an inexact birth time down-weights the Moon and angles.