<?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: Xian XX</title>
    <description>The latest articles on DEV Community by Xian XX (@xxxian886).</description>
    <link>https://dev.to/xxxian886</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3805243%2F87bd56f0-73e9-4b0c-af06-b6c53e7fe480.png</url>
      <title>DEV Community: Xian XX</title>
      <link>https://dev.to/xxxian886</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xxxian886"/>
    <language>en</language>
    <item>
      <title>WTAgent: Turn ChatGPT Web into a Codex-style Local Coding Agent (Open Source)</title>
      <dc:creator>Xian XX</dc:creator>
      <pubDate>Fri, 18 Sep 2026 18:34:46 +0000</pubDate>
      <link>https://dev.to/xxxian886/wtagent-turn-chatgpt-web-into-a-codex-style-local-coding-agent-open-source-5d39</link>
      <guid>https://dev.to/xxxian886/wtagent-turn-chatgpt-web-into-a-codex-style-local-coding-agent-open-source-5d39</guid>
      <description>&lt;p&gt;I kept copy-pasting code between ChatGPT's web UI and my editor, so I built WTAgent — a free, open-source (MIT) CLI that turns your &lt;strong&gt;ChatGPT Web account (including Pro)&lt;/strong&gt; into a Codex-style local coding agent, and your &lt;strong&gt;Claude Web&lt;/strong&gt; into a Claude Code-style agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;WTAgent runs in your terminal, drives a dedicated Chrome profile where you're signed into your web AI, and closes the loop locally:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reads your project files&lt;/li&gt;
&lt;li&gt;Plans changes and edits files&lt;/li&gt;
&lt;li&gt;Runs commands/tests and verifies results&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No model API key, no MCP server, no tunnel — it uses the web subscription you already pay for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multi-provider
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;wtagent --model claude&lt;/code&gt; (or deepseek / gemini / grok / kimi / glm) switches the web AI driving the loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i &lt;span class="nt"&gt;-g&lt;/span&gt; wtagent
wtagent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Works on macOS, Linux and Windows (WSL2). Node 20.17+ and Chrome/Chromium required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Site: &lt;a href="https://xixian42.github.io/wtagent" rel="noopener noreferrer"&gt;https://xixian42.github.io/wtagent&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/XiXian42/wtagent" rel="noopener noreferrer"&gt;https://github.com/XiXian42/wtagent&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/wtagent" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/wtagent&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Independent CLI, not an official Codex or Claude Code client. Your code/outputs sent to the chat go to the provider, so follow their terms; local policy checks aren't a sandbox.&lt;/p&gt;

&lt;p&gt;Feedback welcome — especially first-run issues!&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>cli</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Building a multilingual Zi Wei Dou Shu (Chinese Purple Star Astrology) web app</title>
      <dc:creator>Xian XX</dc:creator>
      <pubDate>Sat, 12 Sep 2026 10:04:32 +0000</pubDate>
      <link>https://dev.to/xxxian886/building-a-multilingual-zi-wei-dou-shu-chinese-purple-star-astrology-web-app-28n8</link>
      <guid>https://dev.to/xxxian886/building-a-multilingual-zi-wei-dou-shu-chinese-purple-star-astrology-web-app-28n8</guid>
      <description>&lt;p&gt;A few months ago I started building a small web app around &lt;strong&gt;Zi Wei Dou Shu&lt;/strong&gt; (紫微斗数), a traditional Chinese astrology system. It ended up being a fun full-stack project, so here's a build log with the decisions that mattered.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the app does
&lt;/h2&gt;

&lt;p&gt;You enter a birth date, time and place. The app renders a natal chart with the &lt;strong&gt;12 Palaces&lt;/strong&gt; (life areas like career, wealth, spouse) and the &lt;strong&gt;14 Major Stars&lt;/strong&gt;, then generates a short AI-written reading explaining the chart in plain language. Free chart, optional paid readings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interesting technical bits
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. True solar time is not optional.&lt;/strong&gt;&lt;br&gt;
Chinese chart calculation depends on the &lt;em&gt;actual&lt;/em&gt; solar time at the birth location, not the administrative timezone. China alone spans five theoretical time zones while officially using UTC+8, so two people born at the same clock time in different cities can have different charts. We do city-level longitude correction, with a fallback to the timezone mean when data is missing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Multilingual output is harder than multilingual UI.&lt;/strong&gt;&lt;br&gt;
Translating the interface into English / Simplified &amp;amp; Traditional Chinese / Japanese / Korean / Vietnamese was the easy part (standard i18n catalogs). The hard part is star and palace terminology: many terms have no accepted translation in some languages, so we keep pinyin with a localized gloss on first use. Calendars are another trap — the lunar-to-solar conversion tables differ between schools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Charts are SVG, not canvas.&lt;/strong&gt;&lt;br&gt;
The palace grid has to resize from mobile to desktop and remain readable for 14 stars plus dozens of minor stars. SVG with CSS variables for the theming system (light/dark, two skin families) worked better than canvas, and keeps the chart accessible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. AI readings need structure.&lt;/strong&gt;&lt;br&gt;
Free-form prompts produced generic horoscope-speak. The reading quality improved a lot when we generated a structured chart summary first and let the model explain that, instead of asking it to interpret raw inputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Cloudflare Workers for the edge.&lt;/strong&gt;&lt;br&gt;
The whole thing runs on Workers with an i18n-aware routing layer; the map is mostly static which keeps TTFB low across regions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you're curious what your chart looks like: &lt;a href="https://zi-wei-dou-shu.com/en" rel="noopener noreferrer"&gt;https://zi-wei-dou-shu.com/en&lt;/a&gt; — free chart with a short AI introduction, six languages. Feedback welcome, especially from anyone who has dealt with lunar calendar edge cases.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Standard caveat: this is a cultural/entertainment product, not fortune telling with guarantees.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>i18n</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How I shortlist photo poses before a portrait session</title>
      <dc:creator>Xian XX</dc:creator>
      <pubDate>Mon, 29 Jun 2026 23:49:14 +0000</pubDate>
      <link>https://dev.to/xxxian886/how-i-shortlist-photo-poses-before-a-portrait-session-1mgp</link>
      <guid>https://dev.to/xxxian886/how-i-shortlist-photo-poses-before-a-portrait-session-1mgp</guid>
      <description>&lt;p&gt;When a shoot starts with "we will figure it out on site," the first few minutes usually disappear into trial and error.&lt;/p&gt;

&lt;p&gt;A workflow that has worked better for me is to shortlist poses before the camera comes out:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start with the subject group. A solo portrait, a couple, and a family all need different pose options.&lt;/li&gt;
&lt;li&gt;Narrow by occasion or scene. Studio, park, beach, graduation, birthday, and home sessions all change what looks natural.&lt;/li&gt;
&lt;li&gt;Pick a small set of actions. I usually choose a few standing, sitting, and walking poses instead of collecting dozens of screenshots.&lt;/li&gt;
&lt;li&gt;Check the practical details. Hand placement, eye line, body angle, and spacing matter more than a dramatic idea that nobody can repeat.&lt;/li&gt;
&lt;li&gt;Keep only the references that fit the actual person and location.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A useful reference for this is &lt;a href="https://photoposes.net/" rel="noopener noreferrer"&gt;POSEE photo pose categories&lt;/a&gt;. It is organized by people, occasions, scenes, outfits, and actions, so it is faster to find relevant ideas without jumping through random mood boards.&lt;/p&gt;

&lt;p&gt;What makes it useful is the structure. You can move from a broad category to a very specific page, then compare body position, camera angle, lighting context, and common mistakes before the shoot starts.&lt;/p&gt;

&lt;p&gt;My rule now is simple: bring 6 to 9 workable poses to a session, not 60 saved images. The subject relaxes faster, transitions are smoother, and the photographer can spend more time on expression instead of inventing poses under pressure.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How I build a photo pose shortlist before a portrait shoot</title>
      <dc:creator>Xian XX</dc:creator>
      <pubDate>Mon, 29 Jun 2026 18:02:35 +0000</pubDate>
      <link>https://dev.to/xxxian886/how-i-build-a-photo-pose-shortlist-before-a-portrait-shoot-3ij5</link>
      <guid>https://dev.to/xxxian886/how-i-build-a-photo-pose-shortlist-before-a-portrait-shoot-3ij5</guid>
      <description>&lt;p&gt;Before a portrait shoot, I narrow pose ideas into a short working list instead of collecting dozens of random references.&lt;/p&gt;

&lt;p&gt;I usually sort them by standing poses, seated poses, movement prompts, hand placement, and close framing so the subject always has a clear next option.&lt;/p&gt;

&lt;p&gt;One reference I keep handy is &lt;a href="https://photoposes.net/" rel="noopener noreferrer"&gt;POSEE&lt;/a&gt;, because it organizes pose ideas by people, occasions, scenes, outfits, and actions instead of forcing one endless feed.&lt;/p&gt;

&lt;p&gt;That makes it easier to match poses to location, wardrobe, and the energy of the session before the camera is up.&lt;/p&gt;

&lt;p&gt;Even five to ten preselected pose ideas can make a session feel much less awkward.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A simple way to plan photo poses before a shoot</title>
      <dc:creator>Xian XX</dc:creator>
      <pubDate>Mon, 29 Jun 2026 10:49:16 +0000</pubDate>
      <link>https://dev.to/xxxian886/a-simple-way-to-plan-photo-poses-before-a-shoot-5cbl</link>
      <guid>https://dev.to/xxxian886/a-simple-way-to-plan-photo-poses-before-a-shoot-5cbl</guid>
      <description>&lt;p&gt;Before a shoot, I group pose ideas by camera angle, hand placement, body line, and how much movement the frame needs.&lt;/p&gt;

&lt;p&gt;I keep one short reference at &lt;a href="https://photoposes.net/" rel="noopener noreferrer"&gt;photoposes.net&lt;/a&gt; because it lets me compare standing, seated, and hand-led poses quickly instead of scrolling through unrelated inspiration boards.&lt;/p&gt;

&lt;p&gt;That makes it easier to match poses to outfit shape, available space, and the mood of the session before the camera is up.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Proof of Execution for Outbound Setup</title>
      <dc:creator>Xian XX</dc:creator>
      <pubDate>Sun, 08 Mar 2026 06:13:32 +0000</pubDate>
      <link>https://dev.to/xxxian886/proof-of-execution-for-outbound-setup-nj2</link>
      <guid>https://dev.to/xxxian886/proof-of-execution-for-outbound-setup-nj2</guid>
      <description>&lt;p&gt;This post validates that programmatic SEO infrastructure can penetrate platforms securely. Success is not algorithmic—it is about leveraging verifiable human profiles via standard OAuth footprints without alerting IP geo-fencing policies. \n\nIf you see this, the Web 2.0 platform linkage has correctly succeeded using existing proxy protocols. \n\nWe will continue testing on free minor blog environments moving forward, shifting from JP domains to Global equivalents if needed.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
