I build Reflow: record a web workflow once and it becomes a step-by-step guide that keeps working when the software's UI changes. It's on the Chrome Web Store and Edge Add-ons with six paying customers in Korea, and its first prototype took 1st place among 3,295 participants at the OpenAI x Primer x Jocoding AI Hackathon 2026. Now I'm working on self-healing guides.
- Codegithub.com/Jayyo
- LinkedInjaycho-reflow
- Companyreflowguide.com
- Community350+ members, 40+ sessions in Sejong
Product
Reflow
Record a workflow once. Clicks, typing and page changes become numbered steps with screenshots, and Reflow replays the guide on the real page, highlighting each field in order.
- Chrome and Edge extension, six paying customers in Korea
- Built for onboarding material, internal manuals and customer how-tos
- One recording becomes a document, PDF, video and an overlay on the live page
- Production code is private
Hackathon prototype · 1st place among 3,295
ChatGPT NavigatorWhere Reflow started
Type a goal such as "create a custom GPT". The extension reads the live page, an LLM plans the steps, and it highlights the next thing to click, moves on as you act and answers questions about the current step.
- 1st place among 3,295 participants, OpenAI x Primer x Jocoding AI Hackathon 2026
- Built in February 2026 as a Manifest V3 extension; works on chatgpt.com only
- Detects wrong clicks and waits for the page to settle
Library · browser agents
agent-page-helper
One dependency-free script for LLM browser agents. It lists a page's controls with short refs and acts on those refs: it fills React-controlled inputs, refuses to click what is covered, and reaches into same-origin iframes and open shadow roots.
> __aph__.snapshot({ format: 'text' }) h1 "Profile settings" [gngc1] textbox "Display name" value="Mina" [gngc2] button "Save changes" covered-by=[gngc3] div#consent [gngc4] button "Accept all" > __aph__.click('gngc2') {"ok":false,"error":{"code":"OCCLUDED","message":"button#save is covered by div#consent", ...}} > __aph__.click('gngc4') {"ok":true,"ref":"gngc4"} > __aph__.click('gngc2') {"ok":true,"ref":"gngc2"}
Game · LLM opponent
Tongue of War강령전쟁
Summon an army by writing a Korean sentence, and an LLM opponent answers with sentences of its own. Both go through the same deterministic parser and a budget compiler, so a sentence can shape an army but never buy it extra stats.
- OpenAI, Gemini, DeepSeek or any OpenAI-compatible server as the opponent
- Fixed 50 ms simulation with a headless balance harness
- three.js renderer with cut-out rigs
