CF ChatFate developer access · same runtime
One runtime · three surfaces · classical Chinese Sanhe-school Ziwei Doushu

Start on the website, then connect the same runtime to your agent.

ChatFate is a fate consultation layer for both people and AI agents. A normal user can start on the website, verify the past, and keep drilling into career, love, wealth, family, or housing. A builder can install the same runtime into Claude Code, Codex, or OpenClaw without rewriting the domain logic.

The Chinese skill name is 算了吗. The install slug stays chatfate, so the public website, hosted skill, helper script, API route, and plugin bundle all point to one backend instead of splitting into parallel products.

For people
Open the site, verify one real turning point, then keep asking follow-ups instead of restarting.
For builders
Install the hosted skill into Claude Code or Codex and let the same server-side runtime do the hard work.
For distribution
Use the same invoke endpoint behind wrappers, plugins, API keys, credits, and future paid access.
What people feel web first
Question

"Review my last ten years. Why did career and relationships keep repeating the same knot?"

What the runtime should do

Not jump straight into one random year. First identify the decade frame, then compare turning points, then explain why the same pattern repeated, and only after that suggest the next concrete question.

What builders integrate same backend
Runtime path
  1. Planner decides the consultation shape from the user’s natural question.
  2. Evaluator gathers evidence from palace structure, search, scoring, and year comparison.
  3. Composer turns that decision into a follow-up-friendly answer in the user’s language.
Base URL
https://chatfate.life
The website, hosted skill, and plugin bundle all hit the same production host.
Invoke endpoint
https://chatfate.life/api/fateclawd/invoke
One non-streaming invoke route for Codex, Claude Code, OpenClaw-style wrappers, and custom clients.
Access model
Anonymous access enabled
Public callers can start without a key. Credits apply once keyed access is enabled.
For people

The website is the first product surface.

If someone does not care about SDKs, they should still understand the product immediately: enter birth details, verify one real past event, then keep asking about career, love, wealth, family, or housing. That first web experience is what creates trust and sharing.

Start here
Use chatfate.life first if you only want to feel the consultation quality.
Why it converts
The web app verifies the past before making claims about the future, so the product earns trust before it asks for deeper usage.
Why it spreads
A strong answer creates a shareable unit: a concise summary, a sharper follow-up question, and a link the next person can try on their own chart.
For builders

The skill and API are distribution surfaces.

Builders should not have to port expert rules into prompts. The hosted skill, helper, OpenClaw plugin, and raw invoke endpoint all exist to expose the same consultation runtime wherever an agent already lives.

Install
One hosted SKILL.md and one helper script give Claude Code or Codex a remote consultation tool in one command.
Continuity
The helper persists client_id, reuses session_id, and keeps follow-up questions on the same remote thread.
Business model
The website stays the consumer entry, while API keys and credits let the same runtime scale across agent tools and future paid distribution.
Install

Install the hosted skill

This is the shortest path if you want the same backend logic inside Claude Code or Codex instead of rebuilding a local prompt stack.

Hosted install command

          
Local control

What the helper adds

Continuity
One local profile maps to one remote session by default, so follow-up questions keep context.
Isolation
Use --profile career, love, or family to keep separate tracks for the same chart.
Reset
Use --new-session when you explicitly want a clean thread with no prior context bleed.
Debug
Use --json to inspect the raw server payload, local session info, and the remote response together.
Optional API key step
mkdir -p ~/.chatfate && chmod 700 ~/.chatfate && \
printf '%s' 'cf_sk_xxx' > ~/.chatfate/api_key && \
chmod 600 ~/.chatfate/api_key
Usage

How people should actually use it

The best guidance is simple: ask one concrete question, let the runtime choose the consultation path, then keep drilling by follow-up.

1. First turn
Give birth date, birth hour, gender, and one real question. Example: "I was born on 1990-06-15 at midnight, male. Start with my career structure."
2. Follow-up
After the first turn, keep asking naturally: "What about 2028?" "What changes in relationships?" The helper keeps the same remote session by default.
3. Same chart, new thread
If you want another topic track for the same chart, switch to another --profile instead of overloading one thread.
4. Clean restart
If the user explicitly asks for a fresh consultation, add --new-session and start clean.
Direct helper examples
python3 scripts/chatfate_query.py \
  --birth-date 1990-06-15 \
  --birth-time midnight \
  --gender male \
  --question "Start with my career structure"

python3 scripts/chatfate_query.py \
  --birth-date 1990-06-15 \
  --birth-time midnight \
  --gender male \
  --question "What does wealth look like over the next three years?"

python3 scripts/chatfate_query.py \
  --birth-date 1990-06-15 \
  --birth-time midnight \
  --gender male \
  --profile love \
  --new-session \
  --question "Look only at the next ten years of relationships"
Identity model

What identity means in practice

client_id
Stable identity for one local Claude/Codex installation. The helper creates and persists it automatically.
session_id
One remote conversation thread. Follow-ups reuse it unless the caller explicitly resets the session.
profile
Local alias that lets the same chart have multiple isolated threads without collisions.
user_id
Future account identity for cross-device continuity. It is not required for the current public route.
Invoke API

One request shape, server-side decision making

The caller only sends birth data plus a natural-language question. Routing, planning, evidence gathering, search, expert logic, memory, and final composition stay on the server side.

cURL

          
Website chat Hosted skill Wrapper plugins Custom clients
Suggested prompts

Keep the question natural

  • Analyze my career structure
  • Review my last ten years
  • Which year is strongest for wealth?
  • Show me my relationship and marriage pattern
  • Analyze the next ten years of family and housing
  • Verify what changed in my career in 2020
Access and credits

Use the website first, key the API when needed

Public web
The website is the easiest way to feel the product quality before you care about transport or installation.
API keys
If keyed access is enabled, the runtime expects a valid ChatFate key via the configured header. The website experience remains the consumer trial surface.
Current policy
The live status is shown above in the hero facts so builders can see whether anonymous access is still open.
Required fields

Minimal request schema

birth_date
YYYY-MM-DD
birth_time_index
0-12 where 0=Zi / midnight, 6=Wu / noon, 12=Early Zi
gender
male or female
question
A natural-language consultation request, not a rigid template.
OpenClaw plugin

Use the plugin when the host wants a bundle, not a skill file

The plugin is a thin transport layer. It does not reimplement Sanhe-school Ziwei Doushu locally. It forwards requests to the same ChatFate runtime used by the website and hosted skill.

OpenClaw install

          
OpenClaw config