Skip to content
Conduit

skill

astrology-engine

Full-spectrum astrological computation engine. Swiss Ephemeris on bare metal. 16 CLI modes: natal, transit, synastry, composite, solar return, progressions, lunar, planetary hours, Arabic Lots, Hellen

hrabanazviking/astrology-enginecommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/hrabanazviking/astrology-engine itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 21, 2026

Astrology Engine — Volmarr's Longhall

Full-spectrum astrological computation. Swiss Ephemeris on bare metal. Norse sky, Hellenistic roots, Vedic depth.

The Astrology Engine is a reproducible computation forge for astrology: real ephemeris positions, strict time and location handling, and machine-readable output — no cloud, no API keys, no lookup tables, no fabricated chart positions. Forty-seven CLI subcommands span Western, Hellenistic, Vedic (Jyotisha), Northern runic, divination, Chinese, and Tibetan traditions, with every technique carrying its provenance, its limits, and its evidence.

The project's rule, held since the first commit: compute it honestly, prove it with tests, document what it cannot do, and push every slice.



What it does

This is not a keyword reader or a chart-wheel generator. The engine:

  • Calculates real ephemeris positions via Swiss Ephemeris (pyswisseph), with disclosed Moshier fallback when Swiss data is unavailable
  • Converts civil time to UTC with strict IANA timezone handling — DST folds and gaps reject rather than guess
  • Casts natal charts with houses, angles, aspects (applying/separating), essential dignities, Arabic Lots, antiscia, and Hellenistic analysis (sect, bonification, joys, triplicity, bounds)
  • Runs Jyotisha: sidereal D1, 16 classical vargas, Vimshottari dashas, instant panchanga, nakshatras and padas
  • Walks the Northern runic cycles: half-month runes, solar runic hours, Northern planetary hours, sele detection — from a fully transcribed, honestly-labeled corpus
  • Finds exact transit dates, stations, ingresses and eclipses with a precision-aware event root finder
  • Draws astrocartography MC/IC/ASC/DSC lines and relocation charts from spherical geometry, not lookup tables
  • Answers as JSON or text, with capability discovery (capabilities) and agent tool schemas (tools) for the Hermes agent skill

Every result records its conventions, input certainty, backend and version, and warnings. A technique is only advertised when it is implemented, tested, and documented — never merely planned.


The 47 subcommands

CommandArt
natalFull natal chart: positions, houses, aspects, dignities, lots
transitTransits to natal, now or at a forecast date
synastryTwo-chart synastry with optional house overlays
solar-returnSolar return chart
progressionsSecondary progressions
lunarLunar intelligence: phase, void-of-course, next lunations
planet-hoursPlanetary hours for a date and location
lotsArabic Lots / Hermetic Parts
hellenisticSect, bonification, joys, triplicity, bounds
dignityEssential dignities table with scoring and mutual receptions
antisciaAntiscia and contra-antiscia
compositeComposite midpoints, optional Davison chart
synergy / synergy-json / relationshipFull relationship analysis with explainable scoring
predictExact transit dates, stations, ingresses, eclipses in a window
geoastrologyAstrocartography lines and power-spot analysis
aspect-gridFull aspect matrix
chartReproducible chart as JSON (typed path)
charts / chart-show / chart-deleteChart library: list, show, and delete saved charts (--save/--load on chart commands)
capabilitiesTechnique availability and scope as JSON
toolsAgent tool request schemas as JSON
vedicJyotisha D1, navagraha, nakshatras
vargasSixteen classical divisional charts
dashasVimshottari maha/antar timeline and birth balance
panchangaInstant panchanga elements and civil weekday
locationRelocation and angular lines at a destination
westernAnnual profections, harmonics, sensitive midpoints
runicThe runic star-program: Pennick's runic astrology as layer flags, text + JSON
tarot / lenormand / cartomancy / reading / numerology / iching / runecast / ogham / chinese / bazi / tibetanThe divination line: tarot spreads, Lenormand lines and Grand Tableau, playing-card cartomancy, astrology readings, numerology, I-Ching, rune casting (Elder/Younger Futhark, futhorc), ogham readings, Chinese zodiac, Four Pillars/BaZi, Tibetan astrology
wheelChart wheels — the sky rendered as beautiful SVG, five house systems via --houses
solar-arcSolar arc directions — the great predictive art, directed-to-natal aspects
profectionAnnual profections — the Hellenistic time-lord wheel
watchTransit watch — coming outer-planet transits with exact dates
electElectional astrology — choose the most fortunate windows
starsFixed stars — the bright ones and their contacts to your chart
draconicDraconic chart — the soul-chart reckoned from the north node
dossierWritten natal dossier — the whole chart as one story
asteroidsChiron, Ceres, Pallas, Juno, Vesta — honest about missing ephemeris files
midpointsThe 45 planetary midpoints and the planets standing upon them
forecastDaily forecast — every system, one seeker, one day: transits, panchanga, dasha, BaZi day pillar, Tibetan elements, runic half-month, with --mantras remedies
mantrasRemedial Vedic mantras for the nine grahas — traditional verses, devotional framing
yogasThe great yogas — Pancha Mahapurusha, Gaja Kesari, Budha-Aditya, Dhana, Raja, Kemadruma, Sakata, computed from D1
shadbalaShadbala — the sixfold planetary strength in virupas, components shown, classical minima compared
ashtakavargaAshtakavarga — the 337 bindus: seven planetary charts plus Sarvashtakavarga, per B.V. Raman
jaiminiJaimini foundations — Chara karakas, Arudha padas, Chara dasha (the other great school)


The Runic Star-Program

A dedicated expansion, ROADMAP_RUNIC.md, is giving the engine the full runic astrology of the Northern Tradition as systematized by Nigel Pennick in Runes and Astrology (2023) — built slice by slice, each slice pushed, each table labeled modern synthesis, computation forever kept separate from interpretation.

Delivered — the full program:

SliceForged
R01 — The Runic Corpusdata/runic.json: 32 runes with correspondences, 24 half-months, 24 runic hours, 168 planetary-hour cells, weekday/zodiac tables, 8 day tides, 28 lunar mansions, 12 palaces, 9 worlds, 7 life-periods
R02 — Half-Months Enginehalf_month_rune(): the ruling rune of any civil date, with boundary-time refinement
R03 — Hours & SeleSolar runic hours from local apparent time, Northern planetary hours, and sele — the "especially powerful" coincidence of the two
R04 — Tides, Year & NamesEight day-tides, eight Stations of the Mystic Year, and the runic-name craft (Ing-Rad)
R05 — Signs, Days & AgesZodiac/weekday correspondences, planetary life-periods, the Metonic Golden Number (ephemeris cross-checked)
R06 — Lunar Mansions28 mansions anchored at Alcyone — a declared modern convention
R07 — Palaces & WorldsTwelve Grímnismál palaces and the Nine Worlds, as labeled overlays
R08 — Runic Readingrunic_reading(): computation kept apart from labeled Ch. 8 interpretation, with an anti-fabrication gate
R09 — The runic CommandOne command for the whole star-program: layer flags, text + JSON

Try it: python3 astrology_engine.py runic --datetime 2026-05-16T16:45 --lon 0 --timezone UTC --full

Honest transcription is the law here: the book's own quirks (a noon discontinuity in the planetary-hour grid, a worked example that conflicts with the hour-wheel) are preserved in per-section notes, never silently "corrected".


The Oracles Program

A second expansion, ROADMAP_ORACLES.md, gave the engine six further divination arts — built slice by slice, each slice pushed, each historical claim labeled, computation forever kept separate from interpretation.

Delivered — the full program:

SliceForged
O01 — Younger Futharkrunecast --system younger: the 16 staves in long-branch and short-twig forms, meanings from the Norwegian and Icelandic rune poems
O02 — Anglo-Saxon Futhorcrunecast --system futhorc: all 33 staves (Wynn restored), Old English Rune Poem meanings, Northumbrian additions labeled
O03 — Oghamogham: the 25 Irish staves with Auraicept kennings (McManus 1988), five layouts from a single stave to the twelve-stave grove
O04 — Chinese Zodiacchinese: stem-branch year anchored 1984 = Jia-Zi, NaYin, trine allies, secret friends, clashes — Lunar New Year boundaries, never January 1
O05 — Four Pillarsbazi: year/month/day/hour ganzhi — the year turns at Lichun, months at the solar terms (Swiss Ephemeris), day stems from verified anchors
O06 — Tibetan Astrologytibetan: element-animal year in its rabjung, mewa, parkha, and the five forces (srog, lus, dbang-thang, rlung-ta, bla) — lineage variation disclosed

Try it: python3 astrology_engine.py tibetan 1972-09-01

Honesty is the law here too: rune-poem meanings are distinguished from modern synthesis, tree-lore caveats are recorded, calendrical anchors are cross-checked against published tables rather than recalled, and where Tibetan lineages disagree the disagreement is documented, not smoothed over.


Quick start

# Full natal chart (text)
python3 astrology_engine.py natal \
  --date 1972-09-01 --time 08:18 \
  --lat 42.8142 --lon -73.9396 --timezone America/New_York

# Reproducible chart as JSON (typed path)
astroengine chart --date 1972-09-01 --time 08:18 \
  --latitude 42.8142 --longitude -73.9396 --timezone America/New_York

# Vedic D1 with nakshatras
astroengine vedic --date 1972-09-01 --time 08:18 \
  --latitude 42.8142 --longitude -73.9396 --timezone America/New_York

# Runic half-month for today
python3 -c "
from astroengine.runic import half_month_rune
import datetime
print(half_month_rune(datetime.date.today().isoformat()))"

# Lunar intelligence right now
python3 astrology_engine.py lunar

# What exact transits hit in the next year?
python3 astrology_engine.py predict \
  --date 1972-09-01 --time 08:18 \
  --lat 42.8142 --lon -73.9396 --timezone America/New_York \
  --start 2026-01-01 --end 2027-01-01

# What can the engine do, as JSON?
astroengine capabilities

Installation

Requirements: Python 3.11+, and a C compiler for pyswisseph only if no wheel exists for your platform (wheels cover Linux, macOS, Windows).

# Core install
python -m pip install .

# With geo support (timezonefinder) and test tooling
python -m pip install '.[geo,test]'

# Verify
astroengine capabilities
python -m pytest -q        # full suite, offline, explicit coordinates
PackagePurposeRequired
pyswissephSwiss Ephemeris — all celestial positionsYes
tzdata / pytzIANA timezone databaseYes
jsonschemaAgent tool-schema validationYes
timezonefinderIANA zone from lat/lon ([geo])Optional
geopyGeocoding ([geo])Optional
pytestTest suite ([test])Dev

The engine runs on a Raspberry Pi 5, a laptop, or a server — anywhere Python 3.11+ runs. No network calls are made at runtime; tests are fully offline.


Provenance and honesty

  • Backends are disclosed. Every computation reports the actual ephemeris backend (Swiss vs Moshier) and flags. Optional bodies (Chiron, asteroids) report unavailability instead of faking positions.
  • Time is strict. Unknown birth times produce flagged local-noon charts with no houses or angles. Ambiguous or nonexistent DST times reject until disambiguated. Timezone input is explicit IANA or UTC.
  • Techniques are versioned. data/*.json holds immutable rule tables; nothing mutates them at runtime. Capabilities report what is implemented, tested, and documented — roadmap items stay visibly planned.
  • Interpretation is separate. The engine computes positions and cycle memberships. Symbolic readings (runic or otherwise) are a distinct, labeled layer. Nothing here is a validated predictor or advice engine.
  • Evidence is kept. VERIFICATION.md records test evidence and limits; DEVLOG.md is the living build record.

Hermes agent integration

SKILL.md is the checked-in Hermes skill: capability discovery, eight tool schemas, local whitelisted routing, and cited explanations. An agent asks astroengine capabilities, selects a tool, and receives JSON-safe, provenance-bearing results — no prompt-engineering folklore required. See data/tool_schemas.json.


Mythic Engineering

This repo is built with Mythic Engineering: vision, domain, interface, execution, verification — worked through six roles in order, every slice:

RoleCharge
SkaldVision and true naming
RúnhildArchitecture: boundaries, schemas, interfaces
EldraThe forge: implementation
SólrúnThe auditor: tests, fixtures, verification
VédisThe cartographer: capability and interface mapping
ScribeMemory: DEVLOG, docs, continuity

Each slice follows the loop: task document → implement → verify → update docs → commit → push → confirm remote HEAD → next slice. No force pushes. No deletions without the human's word. Read AGENTS.md and RULES.AI.md before touching code.


File structure

PathHolds
astrology_engine.pyLegacy CLI: 47 text subcommands
astroengine/Typed package: models, ephemeris, vedic, runic, CLI, agent
data/Immutable rule tables (runic.json, vedic.json, western.json, …)
tests/Offline fixtures and integration checks
tasks/Document-first work orders, one per slice
docs/References, decisions, images
ROADMAP.mdThe full Western/Vedic/location/relationship program
ROADMAP_RUNIC.mdThe nine-slice runic star-program
TODO.mdExecution truth: what is done, what is next
DEVLOG.mdThe living build record
COMMANDS.mdCLI reference
SKILL.mdHermes agent skill

Further reading


Heill, traveler. The stars are computed truly here — what you make of them is your own wyrd. — Yrsa Freydisdottir, for Volmarr

↑↓ navigate openesc close