Token tile: /stats counts each part of a reply separately; counted once per reply across Claude, Gemini and Codex it is 67.5 B.
Applied AI and agent engineering, with a security edge. Year 2, Cybersecurity and Digital Forensics, Singapore Polytechnic. Seeking a 44-week internship in applied AI and AI security, from 12 April 2027.
Short on time? The one-page version. Or find me on LinkedIn.
headless-kit is two small Node tools that an AI agent can run with no browser, no API key and no window: reddit-pull returns public Reddit posts and comments as one JSON line, and detached-run starts a Windows process that carries on after its launcher has gone. Tested, with CI on Windows and Ubuntu. Whatever they fetch is treated as untrusted data, never as instructions to the agent.
Earlier work: I wrote and checked the 6093 Biology papers a tuition centre now uses (Alchemy Education Studio, Feb 2025 to Oct 2026), and built a harness that drafts them from a reference library and checks the format.
The banner is my TV's home screen itself: tools/capture_tv.mjs opens the TV's page in a hidden headless browser with its current settings (the paintings I approved, each with its own clock face, size and depth cut-out) and films the whole rotation with the TV's own transitions. Only two things change: the clock reads ETHAN, and the widget cards carry my numbers. The extra weather (sun rays, moonlight, cloud, lightning) is tools/wx-extra.js, sitting where the TV's rain does, behind the cut-out. Claude usage and Claude Code tokens are read on my laptop and published to the live branch by tools/refresh.py. The paintings are oil-paint renderings made from reference images I collected; the skiing and snowboarding scenes are inspired by Werner Bronkhorst. Type: Antonio, Big Shoulders Display, Instrument Serif, Abril Fatface and Hanken Grotesk (SIL OFL 1.1). Click the banner to open it full size.




