Install
openclaw skills install astro-natal-chartCalculates and interprets the natal chart by date, time and place of birth with the positions of planets, houses and main aspects. Windows OS 10/11 Required.
openclaw skills install astro-natal-chartThis skill uses pyswisseph 2.10.3.2, the Python binding for the Swiss Ephemeris — the gold standard of astrological computation.
| Requirement | Details |
|---|---|
| OS | Windows (x64) — tested on Windows 10/11 |
| Python | 3.14.x (bundled .pyd compiled for CPython 3.14) |
| Runtime | Microsoft Visual C++ Redistributable 2015–2022 (x64) — required for the bundled native extension |
Installation steps:
winget install Microsoft.VCRedist.2015+.x64)python3.14 scripts/natal_chart_swe.py <date> <time> <city>Note: The
.pydbinary is bundled inscripts/asswisseph.cp314-win_amd64.pyd.dat(renamed to.pydfor ClawHub compliance). The loading code auto-copies it to a temporary.pydbefore import — original.datfile stays untouched.
Compared to simplified formulas (e.g., Meeus approximations or fixed-position lookup tables):
| Feature | Simplified formulas | Swiss Ephemeris (pyswisseph) |
|---|---|---|
| Source data | Mathematical approximations | NASA JPL DE431 ephemerides |
| Sun accuracy | ~0.5–1° | ~0.001° |
| Moon accuracy | ~1–5° | ~0.005° |
| Planet accuracy | ~1–15° (outer planets) | ~0.003° |
| House system | Often Static Equal / Whole Sign | Iterative Placidus (swe.houses_ex) |
| Retrograde detection | Basic sign-based | Precise velocity (FLG_SPEED) |
| Time coverage | Limited (~0–3000 AD) | 13201 BC – AD 17191 |
| Computation | Analytical approx. | Numerical integration |
In practice this means:
.pyd file is bundled locally in scripts/ — no system-wide installation neededIf the birth time is unknown, use 12:00 (noon), but warn the user that house cusps and ASC will be approximate.
swe.julday()swe.calc_ut() with FLG_SWIEPH | FLG_SPEEDswe.houses_ex() (Placidus system)python scripts/natal_chart_swe.py 24.04.1983 06:00 Ижевск
🌟 NATAL CHART [Swiss Ephemeris vX.XX]
📅 Date: [date] ⏰ Time: [time] 📍 Place: [city]
🌍 Coordinates: [lat], [lon] 🕐 Timezone: [tz] (UTC+/-offset)
📊 JD: [julian_day]
⬆️ ASC — [sign] [degrees]′
🜨 MC — [sign] [degrees]′
PLANETS:
☀️ Sun — [sign] [degrees]′ [house] [℞] (speed °/day)
🌙 Moon — [sign] [degrees]′ [house]
☿ Mercury — [sign] [degrees]′ [house]
♀ Venus — [sign] [degrees]′ [house]
♂ Mars — [sign] [degrees]′ [house] [℞]
♃ Jupiter — [sign] [degrees]′ [house] [℞]
♄ Saturn — [sign] [degrees]′ [house] [℞]
♅ Uranus — [sign] [degrees]′ [house] [℞]
♆ Neptune — [sign] [degrees]′ [house] [℞]
♇ Pluto — [sign] [degrees]′ [house] [℞]
HOUSES:
I house — [sign] [degrees]′
... (all 12 houses)
MAJOR ASPECTS:
☌ Conjunction: [planet]-[planet] (orb: X.X°)
□ Square: [planet]-[planet] (orb: X.X°)
△ Trine: [planet]-[planet] (orb: X.X°)
☍ Opposition: [planet]-[planet] (orb: X.X°)
✶ Sextile: [planet]-[planet] (orb: X.X°)
INTERPRETATION:
[detailed interpretation]
| Aspect | Symbol | Orb |
|---|---|---|
| Conjunction | ☌ | ±8° |
| Opposition | ☍ | ±8° |
| Square | □ | ±7° |
| Trine | △ | ±7° |
| Sextile | ✶ | ±5° |
| Semisextile | ⚺ | ±2° |
| Quincunx | ⚹ | ±2° |
| Semisquare | ∠ | ±2° |
When interpreting, consider:
This is an entertainment/educational tool, not a scientific method. Do not make medical or financial predictions based on astrological readings.
.pyd.dat loading on Windows — importlib.util.spec_from_file_location does not recognize non-standard extensions; added auto-copy to temporary .pyd before loading.pyd compiled with MSVC 14.44 requires vcruntime140.dll and friendsswe.calc_ut() using NASA JPL DE431 ephemeridesswe.houses_ex() (exact iterative Placidus) instead of analytical approximationsFLG_SPEED flag (velocity sign)swisseph.cp314-win_amd64.pyd (2 MB) in scripts/ — no system-wide pip installation requiredswe.__version__ returns int 20230604 — formatted as vYY.MM.BLD stringswe.julday()natal_chart.py, placidus_iterative.py, placidus_meeus.py and all debug/fix scripts (11 files)