Not in the top 1,000 by GitHub stars
aryaminus/astro
Astrology MCP server & Agent Skill — birth charts, transits, synastry across Western, Vedic/Jyotish & Chinese BaZi. Deterministic zero-dependency Python engine. 18 MCP tools, 31 REST endpoints, ChatGPT Action. Free & self-hostable.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/astrology/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 82df4c1c285c
No earlier version was observed for comparison.
Verified commit 82df4c1c285cb470625373a716bab86c343e4b6e
git clone --filter=blob:none --no-checkout https://github.com/aryaminus/astro.git .hotskills/aryaminus-astro && git -C .hotskills/aryaminus-astro checkout --detach 82df4c1c285cb470625373a716bab86c343e4b6e
# Copy each selected skill directory from .hotskills/aryaminus-astro into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/aryaminus/astro.git .hotskills/aryaminus-astro && git -C .hotskills/aryaminus-astro checkout --detach 82df4c1c285cb470625373a716bab86c343e4b6e
# Copy each selected skill directory from .hotskills/aryaminus-astro into .agents/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/aryaminus/astro.git .hotskills/aryaminus-astro && git -C .hotskills/aryaminus-astro checkout --detach 82df4c1c285cb470625373a716bab86c343e4b6e
# Copy each selected skill directory from .hotskills/aryaminus-astro into .cursor/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/aryaminus/astro.git .hotskills/aryaminus-astro && git -C .hotskills/aryaminus-astro checkout --detach 82df4c1c285cb470625373a716bab86c343e4b6e
# Copy each selected skill directory from .hotskills/aryaminus-astro into .gemini/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/aryaminus/astro.git .hotskills/aryaminus-astro && git -C .hotskills/aryaminus-astro checkout --detach 82df4c1c285cb470625373a716bab86c343e4b6e
# Copy each selected skill directory from .hotskills/aryaminus-astro into .github/skills/<skill-name>/Heat
4.0- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- astrology
skills/astrology
How it works
astrology
When your agent uses it
Trustworthy multi-tradition astrology. Casts mathematically real charts (Western tropical, Vedic/Jyotish sidereal, Chinese BaZi) from birth data via a deterministic ephemeris engine — never guessed positions — then interprets them with grounded classical rulesets and counsels like a real astrologer. Use for horoscopes, natal/birth-chart readings, kundli, zodiac signs, nakshatras, compatibility/synastry, daily & yearly transits, vimshottari dasha, four pillars of destiny, solar/lunar returns, navamsa/D9, panchang, moon phases, numerology, aspect patterns (Grand Trine, Yod, T-Square), Part of Fortune, Vertex, and "what do the stars say" questions about love, career, money, timing, health, or life purpose.
What it loads into context
Frontmatter
616 tokensAlways available to the agent
SKILL.md
5,195 tokensWhen the skill is activated
Reference documents
30,075 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- The non-negotiable workflow
- Trust discipline — the anti-Barnum rules
- Output style
- If the engine errors
Scripts executed separately
__init__.pyscripts/__init__.pyscripts/api.pyscripts/astro_engine.pyscripts/build-skill.shscripts/mcp_server.py
Files
../../.claude-plugin/marketplace.jsonasset643 bytes../../.claude-plugin/plugin.jsonasset516 bytesREADME.mddoc4,105 bytesSKILL.mdcore20,084 bytesSKILL.mdcore20,084 bytesSKILL.mdcore20,084 bytesSKILL.mdcore20,084 bytes__init__.pyruns0 bytesassets/profile-template.mddoc1,954 bytesreferences/bazi.mddoc5,531 bytesreferences/consultation.mddoc13,716 bytesreferences/health.mddoc9,736 bytesreferences/specialty-systems.mddoc37,917 bytesreferences/synastry-and-timing.mddoc9,840 bytesreferences/tibetan.mddoc6,782 bytesreferences/vedic.mddoc17,543 bytesreferences/western.mddoc11,894 bytesscripts/__init__.pyruns0 bytesscripts/api.pyruns35,676 bytesscripts/astro_engine.pyruns166,015 bytesscripts/build-skill.shruns935 bytesscripts/mcp_server.pyruns19,785 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills included
- astrology
Repository facts
- License
- No license detected
- Created
- Jun 7, 2026
- Last pushed
- Jun 8, 2026
- Forks
- 5
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 3 notes
skills/astrology/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/astrology/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/astrology/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- 1 broad permissionin 1 file: astrology/SKILL.md:1
- 2 dangerous shell commandsin 1 file: astrology/scripts/build-skill.sh:14
- 24 network referencesin 5 files: .claude-plugin/marketplace.json:3 astrology/scripts/api.py:608 astrology/scripts/mcp_server.py:183 and 2 more
- No hidden or obfuscated text
- No instruction overrides
- 6 executable scriptsin 6 files: astrology/__init__.py:1 astrology/scripts/__init__.py:1 astrology/scripts/api.py:1 and 3 more
- 40 references to secretsin 2 files: astrology/scripts/api.py:5 astrology/scripts/mcp_server.py:45
- No requests to vote in Hot
Show all 73 signals by file
.claude-plugin/marketplace.json
- Network accessline 3
"owner": { "name": "aryaminus", "url": "https://github.com/aryaminus" - Network accessline 4
"name": "aryaminus", "url": "https://github.com/aryaminus" }, - Network accessline 5
"url": "https://github.com/aryaminus" - Network accessline 18
"source": "./", "category": "lifestyle", "homepage": "https://github.com/aryaminus/astro" - Network accessline 19
"category": "lifestyle", "homepage": "https://github.com/aryaminus/astro" } - Network accessline 20
"homepage": "https://github.com/aryaminus/astro"
.claude-plugin/plugin.json
- Network accessline 6
"name": "aryaminus" }, "homepage": "https://github.com/aryaminus/astro", - Network accessline 7
}, "homepage": "https://github.com/aryaminus/astro", "repository": "https://github.com/aryaminus/astro", - Network accessline 8
"homepage": "https://github.com/aryaminus/astro", - Network accessline 9
"repository": "https://github.com/aryaminus/astro",
skills/astrology/SKILL.md
- Broad permissionsline 1
Bash(python3 *) - Network accessline 101
POST https://astro-api-a2rc.onrender.com/chart/natal - Network accessline 157
Read the chart through the **reference rulesets**, not from vibes. Use the `get_astrology_reference(system)` tool (if available via MCP) or read the markdown files directly from `references/` in the skill directory. For REST-only hosts, loa
skills/astrology/__init__.py
- Executable scriptline 1
Executable file
skills/astrology/scripts/__init__.py
- Executable scriptline 1
Executable file
skills/astrology/scripts/api.py
- Executable scriptline 1
Executable file - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 172
[Credential-related source omitted] - Access to secretsline 173
[Credential-related source omitted] - Access to secretsline 175
[Credential-related source omitted] - Access to secretsline 179
[Credential-related source omitted] - Access to secretsline 309
[Credential-related source omitted] - Access to secretsline 323
[Credential-related source omitted] - Access to secretsline 367
[Credential-related source omitted] - Access to secretsline 371
[Credential-related source omitted] - Access to secretsline 380
[Credential-related source omitted] - Access to secretsline 389
[Credential-related source omitted] - Access to secretsline 398
[Credential-related source omitted] - Access to secretsline 407
[Credential-related source omitted] - Access to secretsline 416
[Credential-related source omitted] - Access to secretsline 425
[Credential-related source omitted] - Access to secretsline 434
[Credential-related source omitted] - Access to secretsline 443
[Credential-related source omitted] - Access to secretsline 452
[Credential-related source omitted] - Access to secretsline 462
[Credential-related source omitted] - Access to secretsline 472
[Credential-related source omitted] - Access to secretsline 481
[Credential-related source omitted] - Access to secretsline 490
[Credential-related source omitted] - Access to secretsline 499
[Credential-related source omitted] - Access to secretsline 508
[Credential-related source omitted] - Access to secretsline 518
[Credential-related source omitted] - Access to secretsline 527
[Credential-related source omitted] - Access to secretsline 536
[Credential-related source omitted] - Access to secretsline 548
[Credential-related source omitted] - Access to secretsline 565
[Credential-related source omitted] - Access to secretsline 582
[Credential-related source omitted] - Access to secretsline 602
[Credential-related source omitted] - Network accessline 608
import urllib.request, json as j, urllib.parse query = urllib.parse.quote(city) url = f"https://geocoding-api.open-meteo.com/v1/search?name={query}&count=1&format=json" - Network accessline 609
query = urllib.parse.quote(city) url = f"https://geocoding-api.open-meteo.com/v1/search?name={query}&count=1&format=json" try: - Network accessline 610
url = f"https://geocoding-api.open-meteo.com/v1/search?name={query}&count=1&format=json" try: req = urllib.request.Request(url, headers={'User-Agent': 'Astro-API'}) - Network accessline 611
try: req = urllib.request.Request(url, headers={'User-Agent': 'Astro-API'}) with urllib.request.urlopen(req, timeout=5) as resp: - Network accessline 612
req = urllib.request.Request(url, headers={'User-Agent': 'Astro-API'}) - Network accessline 613
with urllib.request.urlopen(req, timeout=5) as resp: - Access to secretsline 628
[Credential-related source omitted] - Access to secretsline 718
[Credential-related source omitted] - Access to secretsline 788
[Credential-related source omitted]
skills/astrology/scripts/astro_engine.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/astrology/scripts/build-skill.sh
skills/astrology/scripts/mcp_server.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Network accessline 183
import urllib.request, json, urllib.parse query = urllib.parse.quote(city_name) url = f"https://geocoding-api.open-meteo.com/v1/search?name={query}&count=1&format=json" - Network accessline 184
query = urllib.parse.quote(city_name) url = f"https://geocoding-api.open-meteo.com/v1/search?name={query}&count=1&format=json" try: - Network accessline 185
url = f"https://geocoding-api.open-meteo.com/v1/search?name={query}&count=1&format=json" try: req = urllib.request.Request(url, headers={'User-Agent': 'Astro-MCP'}) - Network accessline 186
try: req = urllib.request.Request(url, headers={'User-Agent': 'Astro-MCP'}) with urllib.request.urlopen(req) as response: - Network accessline 187
req = urllib.request.Request(url, headers={'User-Agent': 'Astro-MCP'}) - Network accessline 188
with urllib.request.urlopen(req) as response: - Access to secretsline 480
[Credential-related source omitted]
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 2 facts
- Contacts geocoding-api.open-meteo.com, which SKILL.md, the README and the plugin manifest do not mentionastrology/scripts/api.py:610High confidence
- Contacts geocoding-api.open-meteo.com, which SKILL.md, the README and the plugin manifest do not mentionastrology/scripts/mcp_server.py:185High confidence
Signal confidence: 63 facts
- Broad permissions in the frontmatter of the SKILL.mdastrology/SKILL.md:1High confidence
- Network access in code of the SKILL.mdastrology/SKILL.md:101High confidence
- Network access in prose of the SKILL.mdastrology/SKILL.md:157Low confidence
- Executable script in prose of a file that runsastrology/__init__.py:1Low confidence
- Executable script in prose of a file that runsastrology/scripts/__init__.py:1Low confidence
- Executable script in prose of a file that runsastrology/scripts/api.py:1Low confidence
- Access to secrets in prose of a file that runsastrology/scripts/api.py:5Low confidence
- Access to secrets in code of a file that runsastrology/scripts/api.py:26High confidence
- Access to secrets in code of a file that runsastrology/scripts/api.py:56High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:80Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:172Low confidence
- Access to secrets in code of a file that runsastrology/scripts/api.py:173High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:175Low confidence
- Access to secrets in code of a file that runsastrology/scripts/api.py:179High confidence
- Access to secrets in code of a file that runsastrology/scripts/api.py:309High confidence
- Access to secrets in code of a file that runsastrology/scripts/api.py:323High confidence
- Access to secrets in code of a file that runsastrology/scripts/api.py:367High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:371Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:380Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:389Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:398Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:407Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:416Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:425Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:434Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:443Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:452Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:462Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:472Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:481Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:490Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:499Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:508Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:518Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:527Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:536Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:548Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:565Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:582Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:602Low confidence
- Network access in code of a file that runsastrology/scripts/api.py:608High confidence
- Network access in code of a file that runsastrology/scripts/api.py:609High confidence
- Network access in code of a file that runsastrology/scripts/api.py:610High confidence
- Network access in code of a file that runsastrology/scripts/api.py:611High confidence
- Network access in code of a file that runsastrology/scripts/api.py:612High confidence
- Network access in code of a file that runsastrology/scripts/api.py:613High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:628Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:718Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueastrology/scripts/api.py:788Low confidence
- Executable script in code of a file that runsastrology/scripts/astro_engine.py:1High confidence
and 13 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Native | Path .cursorrules | .cursor/skills/<skill-name>/ |
| Gemini CLI | Native | Manifest gemini-extension.json | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Native | Manifest .github/copilot-instructions.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/astrology/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.