<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shunshi Peter</title>
    <description>The latest articles on DEV Community by Shunshi Peter (@shunshi_peter).</description>
    <link>https://dev.to/shunshi_peter</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3873712%2F809bc772-4474-44a0-ad86-2e7c158e100e.png</url>
      <title>DEV Community: Shunshi Peter</title>
      <link>https://dev.to/shunshi_peter</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shunshi_peter"/>
    <language>en</language>
    <item>
      <title>I Open-Sourced a Chinese Astrology Engine and Wired It Into Every AI Coding Tool</title>
      <dc:creator>Shunshi Peter</dc:creator>
      <pubDate>Mon, 13 Apr 2026 01:06:25 +0000</pubDate>
      <link>https://dev.to/shunshi_peter/i-open-sourced-a-chinese-astrology-engine-and-wired-it-into-every-ai-coding-tool-e9</link>
      <guid>https://dev.to/shunshi_peter/i-open-sourced-a-chinese-astrology-engine-and-wired-it-into-every-ai-coding-tool-e9</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; I built &lt;a href="https://www.npmjs.com/package/shunshi-bazi-core" rel="noopener noreferrer"&gt;&lt;code&gt;shunshi-bazi-core&lt;/code&gt;&lt;/a&gt; — a TypeScript library that calculates Chinese Four Pillars of Destiny (八字 / 四柱推命 / 사주팔자) charts with true solar time correction. Then I wrapped it as an &lt;a href="https://www.npmjs.com/package/shunshi-bazi-mcp" rel="noopener noreferrer"&gt;MCP server&lt;/a&gt; for Claude Desktop / Cursor / Cline, and a &lt;a href="https://clawhub.ai/shunshi/shunshi-bazi-analysis" rel="noopener noreferrer"&gt;Claude Code skill&lt;/a&gt; for the CLI. Everything is MIT-licensed.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Bazi?
&lt;/h2&gt;

&lt;p&gt;Bazi (八字, literally "eight characters") is a system from Chinese metaphysics that maps a person's birth date and time into a chart of heavenly stems and earthly branches. Think of it as the Chinese equivalent of a natal chart in Western astrology — except it operates on a completely different calendar system (the sexagenary cycle) and has its own analytical framework involving Ten Gods (十神), Five Elements (五行), and Dayun (大运, ten-year fate periods).&lt;/p&gt;

&lt;p&gt;It's known as &lt;strong&gt;四柱推命&lt;/strong&gt; (Shichū Suimei) in Japan and &lt;strong&gt;사주팔자&lt;/strong&gt; (Saju Palja) in Korea. Hundreds of millions of people across East Asia consult Bazi readings — it's one of the most widely practiced forms of divination in the world.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Why Existing Libraries Fall Short
&lt;/h2&gt;

&lt;p&gt;When I started building &lt;a href="https://shunshi.ai" rel="noopener noreferrer"&gt;Shunshi.AI&lt;/a&gt; (an AI-powered Bazi reading platform), I surveyed every open-source Bazi library I could find in JavaScript, Python, and TypeScript. They all had at least one of these issues:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. No True Solar Time Correction
&lt;/h3&gt;

&lt;p&gt;This is the big one. Bazi charts are based on &lt;strong&gt;solar time&lt;/strong&gt;, not clock time. If you're born in Urumqi (western China, UTC+8) at 14:00 clock time, your actual solar time is closer to 12:00 — a &lt;strong&gt;two-hour&lt;/strong&gt; difference that shifts the entire hour pillar and changes the reading completely.&lt;/p&gt;

&lt;p&gt;Most libraries just take the clock time as-is. This gives wrong charts for anyone born far from their timezone's standard meridian: western China, Hokkaido, the U.S. West Coast, Western Europe...&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The Midnight Problem (子時分日)
&lt;/h3&gt;

&lt;p&gt;What happens when someone is born at 23:30? Is that "today" or "tomorrow" in Bazi terms?&lt;/p&gt;

&lt;p&gt;Different schools disagree (早子時 vs 晚子時). Most libraries don't even let you choose — they silently pick one convention, and you discover the discrepancy only when your chart disagrees with a professional practitioner's.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. No Parity Baseline
&lt;/h3&gt;

&lt;p&gt;You compute a chart, compare it against a paid service, get different answers. Who's right? Without golden test cases against authoritative reference tools, there's no way to know.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: &lt;code&gt;shunshi-bazi-core&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;I extracted the calculation engine from Shunshi.AI's production backend and published it as a standalone TypeScript library:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;shunshi-bazi-core
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;getBaziChart&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;shunshi-bazi-core&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;chart&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;getBaziChart&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;year&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1990&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;month&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;day&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;minute&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;gender&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;      &lt;span class="c1"&gt;// 1 = male, 0 = female&lt;/span&gt;
  &lt;span class="na"&gt;city&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;广州&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;    &lt;span class="c1"&gt;// triggers true solar time correction&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;八字&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;四柱&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;          &lt;span class="c1"&gt;// "庚午 己卯 戊子 丁巳"&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;真太阳时&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;修正分钟&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// -33.85 (minutes corrected)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What you get back:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Four Pillars&lt;/strong&gt; with heavenly stems, earthly branches, and hidden stems&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ten Gods&lt;/strong&gt; (十神) for each pillar&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Five Element scores&lt;/strong&gt; with percentages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;40+ Shensha&lt;/strong&gt; (神煞, special stars) per pillar&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dayun&lt;/strong&gt; (大运, ten-year fate periods) with the current period marked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nayin&lt;/strong&gt; (纳音), &lt;strong&gt;Kongwang&lt;/strong&gt; (空亡), and &lt;strong&gt;Xing-Chong-He-Hui&lt;/strong&gt; (刑冲合会)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;True solar time correction&lt;/strong&gt; — just pass a city name or longitude/latitude&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The library is parity-tested against both Shunshi.AI's Python backend and &lt;a href="https://github.com/cantian-ai/bazi-mcp" rel="noopener noreferrer"&gt;&lt;code&gt;cantian-tymext&lt;/code&gt;&lt;/a&gt;'s relation calculations on 5 golden cases covering edge cases like 23:48 births and spring festival boundaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wiring It Into AI Tools
&lt;/h2&gt;

&lt;p&gt;A calculation engine is useful, but the real magic happens when AI agents can call it. I built three integration layers:&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 1: MCP Server (Claude Desktop / Cursor / Cline)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;-y&lt;/span&gt; shunshi-bazi-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add this to your Claude Desktop config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"shunshi-bazi"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shunshi-bazi-mcp"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you can ask Claude in natural language:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Calculate the Bazi chart for someone born on March 24, 1990 at 10:28 AM in Guangzhou, male."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Claude calls the MCP tool, gets the full chart JSON, and gives you a professional-grade reading — complete with Ten Gods analysis, Five Element balance, and Dayun forecast.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp6wyrfkzcix22gwygtm1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp6wyrfkzcix22gwygtm1.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 2: Claude Code Skill (ClawHub)
&lt;/h3&gt;

&lt;p&gt;For &lt;a href="https://docs.anthropic.com/en/docs/claude-code" rel="noopener noreferrer"&gt;Claude Code&lt;/a&gt; (Anthropic's CLI), I published a skill on &lt;a href="https://clawhub.ai/shunshi/shunshi-bazi-analysis" rel="noopener noreferrer"&gt;ClawHub&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/bazi 1993-08-18 14:30 male Guangzhou
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The skill handles everything:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Parses the birth info from natural language (supports Chinese, English, Japanese, Korean)&lt;/li&gt;
&lt;li&gt;Calls the calculation engine with true solar time correction&lt;/li&gt;
&lt;li&gt;Outputs a structured reading with tables, analysis, and actionable advice&lt;/li&gt;
&lt;li&gt;Offers follow-up options: yearly forecast, career advice, compatibility analysis&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It passed ClawHub's security scan with &lt;strong&gt;Benign&lt;/strong&gt; (HIGH CONFIDENCE) from both VirusTotal and OpenClaw — no runtime &lt;code&gt;npm install&lt;/code&gt;, no undeclared dependencies, no credential requests.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 3: Direct Library Usage
&lt;/h3&gt;

&lt;p&gt;If you're building your own Bazi app, just use the core library directly. It's pure TypeScript with zero framework dependencies — works in Node.js and browsers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;shunshi-bazi-core          (npm library — pure calculation)
    ↓
shunshi-bazi-mcp           (MCP server — wraps core for AI agents)
    ↓
Claude Code Skill          (ClawHub — /bazi slash command)
    ↓
Shunshi.AI                 (Production app — full reading platform)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All four layers share the &lt;strong&gt;exact same calculation engine&lt;/strong&gt;. A fix in &lt;code&gt;shunshi-bazi-core&lt;/code&gt; propagates to every integration point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparison with Other Bazi MCPs
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;cantian-bazi&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;shunshi-bazi&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;True solar time&lt;/td&gt;
&lt;td&gt;Clock time only&lt;/td&gt;
&lt;td&gt;Built-in, default on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;子時 default&lt;/td&gt;
&lt;td&gt;sect=2 (23:00 = today)&lt;/td&gt;
&lt;td&gt;sect=1 (23:00 = tomorrow)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shensha (神煞)&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;td&gt;40+ per chart&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dayun fields&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;td&gt;15 fields per decade&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Parity-tested&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;vs production backend + cantian&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The two projects are &lt;strong&gt;complementary, not competing&lt;/strong&gt;. We chose different defaults based on what matches different schools of professional Bazi practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. True Solar Time Is Non-Negotiable
&lt;/h3&gt;

&lt;p&gt;I wasted weeks debugging charts that were "almost right" before realizing the hour pillar was wrong because I was using clock time. The Equation of Time correction (accounting for Earth's orbital eccentricity and axial tilt) can shift times by up to 30 minutes. For Bazi, where each "hour" is a 2-hour window, this regularly changes the chart.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Security Scanning for AI Skills Is Real
&lt;/h3&gt;

&lt;p&gt;ClawHub's OpenClaw scanner flagged my first skill as "Suspicious" because it ran &lt;code&gt;npm install&lt;/code&gt; at runtime. Fair enough — a skill that downloads arbitrary packages at execution time is a legitimate security concern. I restructured to declare dependencies in &lt;code&gt;package.json&lt;/code&gt; with a proper install step, and it passed with HIGH CONFIDENCE.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The MCP Ecosystem Is Growing Fast
&lt;/h3&gt;

&lt;p&gt;When I started, there were maybe 2-3 Bazi-related MCPs. Now there are several, each with different strengths. The Model Context Protocol is becoming the standard way to give AI agents domain-specific capabilities, and the tooling (ClawHub for skills, MCP registries) is maturing quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Multilingual SEO Matters for Niche Libraries
&lt;/h3&gt;

&lt;p&gt;Bazi is searched for as 八字 (Chinese), 四柱推命 (Japanese), 사주팔자 (Korean), and "Four Pillars" (English). By including all four in my package description and README, I get discovered by developers across all four language communities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;npm library&lt;/strong&gt;: &lt;a href="https://www.npmjs.com/package/shunshi-bazi-core" rel="noopener noreferrer"&gt;&lt;code&gt;npm install shunshi-bazi-core&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP server&lt;/strong&gt;: &lt;a href="https://www.npmjs.com/package/shunshi-bazi-mcp" rel="noopener noreferrer"&gt;&lt;code&gt;npx -y shunshi-bazi-mcp&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code skill&lt;/strong&gt;: &lt;a href="https://clawhub.ai/shunshi/shunshi-bazi-analysis" rel="noopener noreferrer"&gt;&lt;code&gt;/bazi&lt;/code&gt; on ClawHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full reading platform&lt;/strong&gt;: &lt;a href="https://shunshi.ai" rel="noopener noreferrer"&gt;Shunshi.AI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source code&lt;/strong&gt;: &lt;a href="https://github.com/cengfanman/bazi-reader-mcp" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything is MIT-licensed. PRs welcome.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I'm building &lt;a href="https://shunshi.ai" rel="noopener noreferrer"&gt;Shunshi.AI&lt;/a&gt; — an AI-powered Bazi reading platform supporting English, Chinese, Japanese, and Korean. If you're interested in Chinese metaphysics, AI tool integration, or multilingual TypeScript libraries, follow me here or on &lt;a href="https://x.com/shunshiai2026" rel="noopener noreferrer"&gt;X&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>opensource</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
