AI-powered Saju (Four Pillars of Destiny / 四柱八字) fortune Chrome extension — daily, weekly, monthly, and yearly readings.
SajuGist is a Chrome extension that generates Korean traditional Myeongri (명리학 / 四柱八字) fortunes based on your birth date & time, using LLM providers (Anthropic Claude or any OpenAI-compatible endpoint). It streams the analysis in real time and supports specifying arbitrary target dates, weeks, months, or years.
- Four fortune types: Daily, Weekly, Monthly, Yearly
- Target date picker: Next to each fortune type you can pick a specific day / ISO week / month / year and launch it with the ▶ trigger button
- Ganzhi (干支) engine: Computes year / month / day pillars, ISO week range (Mon–Sun), and Korean formatted dates — built into
ganzhi.js - Streaming output: First-token, total time, chunk count, and tokens-per-second stats
- Multi-provider LLM: Anthropic Claude (native streaming) or any OpenAI-compatible API (works with OpenAI, LM Studio, Ollama, etc.)
- Customizable system prompts: Per-type prompts (base / daily / weekly / monthly / yearly) editable in Options
- Solar & Lunar calendar input, optional leap month, time-unknown support
- i18n: Korean / English UI and configurable fortune output language
- Privacy-first: Birth data and API keys stored in the browser only; data is only sent to the LLM endpoint you configure
- Clone this repository
git clone https://github.com/SangLeeGitHub/SajuGist.git
- Open
chrome://extensionsin Chrome / Edge / Brave - Enable Developer mode
- Click Load unpacked and select the
sajugist-extension/folder - Open Options and set:
- Birth date & time (solar/lunar)
- LLM provider, API key, model, base URL
Click the SajuGist toolbar icon. The popup shows four fortune types with an inline date picker next to each:
| Menu | Default button | Trigger button (▶) |
|---|---|---|
| 오늘의 운세 / Daily | today | 지정일 specific date |
| 이번주 운세 / Weekly | this week | 지정주 specific ISO week |
| 이달의 운세 / Monthly | this month | 지정월 specific month |
| 올해의 운세 / Yearly | this year | 지정년 specific year |
The result page streams the analysis and shows the resolved target in the header/subtitle. When a target is specified, a · 지정 badge is displayed and the LLM prompt is force-anchored to that period.
sajugist-extension/
├── manifest.json # MV3 manifest
├── popup.html/js/css # Toolbar popup
├── fortune.html/js/css # Streaming result page
├── options/ # Settings UI
├── ganzhi.js # Ganzhi / ISO-week / Korean date utilities
├── i18n.js # Korean / English UI strings
├── providers/ # anthropic.js, openai.js, index.js
└── lib/ # marked.min.js (Markdown renderer)
- Birth date / time and API keys are stored in Chrome's local/sync storage only
- Fortune generation sends the target date context, your saju-derived context, and your prompt to the LLM endpoint you configured — nothing else
- No analytics, no external tracking
See repository for license details.